Why inline-flex is my new favorite display value

แชร์
ฝัง
  • เผยแพร่เมื่อ 17 ม.ค. 2025

ความคิดเห็น • 139

  • @FaizanAli-visiontech
    @FaizanAli-visiontech 3 หลายเดือนก่อน +296

    In this situation, I always create the parent div with flex and control by a gap. That's the way I prefer. I hate margins; I don't use them unless I have to because of RTL and responsiveness. Better to handle responsiveness via parent than with margins

    • @jiysea
      @jiysea 3 หลายเดือนก่อน +43

      I agree, flex + gap ftw!

    • @mistertoups
      @mistertoups 3 หลายเดือนก่อน +16

      yeah but making the parent a flex container affects all other siblings so it will make your layout even more complicated to maintain. inline-flex means writing less css and html, and the css and html you have left stays clearer and easier to parse

    • @marmunator
      @marmunator 3 หลายเดือนก่อน +15

      If you are worried with margins affecting RTL and responsiveness, I recommend reading about margin-inline-start, margin-inline-end, margin-block-start, margin-block-end (same values for padding). These are the same as margin+direction, but will take into account the reading direction.
      For example, lets say you have a multilingual site and you have the sites main language as LTR (left to right), if you were to set a margin right, then change to another language that has RTL (right to left), that margin would still be on the right side, causing layout issues.
      However! If you set the margin as margin-inline-end, the margin-inline-end will take into account the reading direction and converts the margin accordingly without affecting the layout. Meaning a margin-inline-end for LTR is the same as margin-right and for RTL is the same as margin-left. Same principle can be applied to the top and bottom directions with the margin-block values for example margin-block-end

    • @Jongo1
      @Jongo1 3 หลายเดือนก่อน +6

      Same here. And if the items are related, like in this video, then it makes sense to seperate them based on context, it makes your code easier to read and maintain.

    • @SaschaRissling
      @SaschaRissling 3 หลายเดือนก่อน

      This! Avoid padding and margin for single components like the pest

  • @ahooton
    @ahooton 2 หลายเดือนก่อน +30

    I've run into this problem before and used max-width: fit-content to prevent buttons from spanning the width of the parent

  • @mazewinther1
    @mazewinther1 2 หลายเดือนก่อน +31

    I run into this problem frequently too. My typical solution is:
    to stack the links horizontally:
    flex-direction: row
    to prevent buttons from stretching across the full width of the parent:
    width: auto (or fit)

  • @balasuar
    @balasuar 3 หลายเดือนก่อน +10

    Easy to understand video with a very clear example. Thanks.

  • @DaFakerable
    @DaFakerable 2 หลายเดือนก่อน +2

    Ive always struggled with css and this video was amazing. Short and straight to the point. Thank you!

  • @charlescox7672
    @charlescox7672 3 หลายเดือนก่อน +30

    I've run into the exact problem you demonstrated --several times-- and ended up using way too much extra formatting in the parent div to overcome it. Will start using this method! Thank You so much! 🙂

  • @mohammedrizwan8324
    @mohammedrizwan8324 หลายเดือนก่อน

    Ohh I faced this issue many but now i know the solution thanks for giving us such a quality content ❤

  • @pepkin88
    @pepkin88 2 หลายเดือนก่อน +5

    Unless you are putting those `inline-flex` elements inside a text paragraph or in a similar context, `inline-flex` is probably a worse choice than using `flex` for the parent.
    `inline-flex` (like other `inline-...` modes) makes elements sensitive to whitespaces around, so you have to be careful not to add any, to avoid having to deal with unexpected gaps.
    What you are trying to do here is perfectly achievable with the standard `flex`, including wrapping. I encourage you to explore it more.

  • @rbcookingchannel-cg7xs
    @rbcookingchannel-cg7xs 2 หลายเดือนก่อน +1

    Very helpful video. I like this.

  • @Juniper-z2u
    @Juniper-z2u 2 หลายเดือนก่อน

    Amazing CSS tip. Thank you.

  • @d3vilm4ster
    @d3vilm4ster 3 หลายเดือนก่อน +3

    Perfect explanation!

  • @okage_
    @okage_ 2 หลายเดือนก่อน

    love videos like these, even if there is another solution, i like to learn about others

  • @ahmedmohmed6407
    @ahmedmohmed6407 2 หลายเดือนก่อน

    thanks for the easy to understand video !

  • @unitythemaker
    @unitythemaker 2 หลายเดือนก่อน

    you are a lifesaver, thank you!

  • @cykablyat867
    @cykablyat867 2 หลายเดือนก่อน

    Its because its by default flex-row when you flex, if you flex flex-col its working as intended "i think" but inline-flex is so much better thanks !!

  • @KaKaOfficial2
    @KaKaOfficial2 2 หลายเดือนก่อน +2

    In this situation, child elements stretch across the full width of the parent because the parent element uses display: flex and flex-direction: column without align-items. By default child elements will have the same width as the parent element when using flex. Can be fixed by:
    1. add align-items: flex-start in the parent
    or 2. add width: fit-content in the child

  • @herozero777
    @herozero777 3 หลายเดือนก่อน

    Thanks man. A really helpful video.

  • @Nomiindia
    @Nomiindia 3 หลายเดือนก่อน +2

    Sir you are the best concept builder !! ❤❤

  • @shafiq_ramli
    @shafiq_ramli 3 หลายเดือนก่อน +35

    Can't use flex-direction: row for that?

    • @yourlocalhuman3526
      @yourlocalhuman3526 3 หลายเดือนก่อน +18

      You'd need a wrapper that contains the anchor tags. But with inline flex you don't need a wrapper. Haven't tested this out but that's what I understand

    • @paIeville
      @paIeville 3 หลายเดือนก่อน +4

      what the guy above me said, and also row is already the default direction of any flexbox

    • @masterflitzer
      @masterflitzer 3 หลายเดือนก่อน

      ​@@yourlocalhuman3526 with tailwind you'd do flex and flex-row on a parent div, while you'd have to apply inline-flex for every link/button in this example, i wouldn't say the method shown in the video is better than a container, it's always better to define behavior with as little css as possible and even without tailwind when you write the classes yourself it still comes down to apply for parent or all childs

    • @masterflitzer
      @masterflitzer 3 หลายเดือนก่อน

      @@y0urh0mew0rk sry for writing childs, i don't see how it's relevant tho, i am not a css engineer i am a software engineer and have used css when needed for years, about your 2 lines of css more, less lines is not the ultimate goal to make a good product, also 2 css classes on container but 2 less on every child is pretty good if you use css utility classes like tailwind, composition of streamlined styles is just what i prefer and which makes more sense for me, if you didn't notice the whole industry shifts towards tailwind and gotta follow the money, if i create my own classes i always model them around utility so more generic and reusable, of course here and there i use selectors when needed, but when parent can do it it's a better abstraction, also i've used ids and selectors heavily in vanilla html/css/js hobby projects, not something that's much needed in enterprise dev tho, so yeah i know damn well what css ids, classes and selectors are, but utility classes just scale better on bigger projects, i'm not clueless just have a different preference than you

    • @masterflitzer
      @masterflitzer 3 หลายเดือนก่อน

      @@y0urh0mew0rk i am not spamming divs, i only use containers (div/article) when they make sense, not like these big tech websites you see with 20 nested divs
      also i am not a frontend dev and will never do full-time frontend in my life, i am a full-stack dev and happy in my current position
      doesn't matter how hard you try to laugh or talk down in your comment, you're still just some idiot in the comment section like everyone else of us, so calm down and write your lines of css while i work on the features and make money

  • @JustVinayadav
    @JustVinayadav 2 หลายเดือนก่อน

    You can do flex-direction to column

  • @AlexTheDev1
    @AlexTheDev1 3 หลายเดือนก่อน +8

    While watching your example for inline-block, I was wondering if you could've just used "flex-direction: row;". Correct me if I'm wrong :)

    • @coding2go
      @coding2go  3 หลายเดือนก่อน +7

      Yes definitely. You would need a wrapper div for the links to assign a Flexbox layout with flex-direction row. There are always multiple solutions you can go for.

    • @tacyonmorales4566
      @tacyonmorales4566 2 หลายเดือนก่อน

      @@coding2go thanks very much for the video and this response. I'm learning and i hate create html divs or other tags-wrappers only for simple layout problems

  • @24pratikbhagwat68
    @24pratikbhagwat68 3 หลายเดือนก่อน +7

    Man I was really interested to know what is inline flex was and you just dropped the video cool😅

  • @KvikDeVries
    @KvikDeVries 3 หลายเดือนก่อน +1

    Short, on point, clear, concise and well exampled - thank you :)

  • @kenechukwuwisdom8287
    @kenechukwuwisdom8287 3 หลายเดือนก่อน +3

    Pls make a playlist on DOM manipulation 🙏

  • @duoduoo6732
    @duoduoo6732 2 หลายเดือนก่อน +2

    why not inline-block? or just using ?

  • @YannMetalhead
    @YannMetalhead 3 หลายเดือนก่อน +3

    That's really useful.

  • @mhho2336
    @mhho2336 3 หลายเดือนก่อน +55

    Useful, but display: none is better

    • @sunnaga9605
      @sunnaga9605 3 หลายเดือนก่อน

      fr

    • @QwDragon
      @QwDragon 3 หลายเดือนก่อน +1

      Best comment!

    • @anousenic
      @anousenic 3 หลายเดือนก่อน +6

      Also its render performance is the best of them all.

    • @OP-ig1fj
      @OP-ig1fj 3 หลายเดือนก่อน +4

      wait till u hear about display: invisible

    • @mr.k8660
      @mr.k8660 2 หลายเดือนก่อน +2

      I can relate
      what you build becomes so beautiful you can't see it anymore

  • @garvani
    @garvani 3 หลายเดือนก่อน +9

    Very interesting, but wouldn't vertical-align:middle to the icons solve the problem?

    • @kavinkumar
      @kavinkumar 3 หลายเดือนก่อน

      Extra css

    • @eliabexp
      @eliabexp 3 หลายเดือนก่อน

      but you couldn't use gap

    • @gnack420
      @gnack420 3 หลายเดือนก่อน

      Nope. You can try it yourself.

    • @TingleCowboy
      @TingleCowboy 3 หลายเดือนก่อน +1

      Sure it would, but that would be too easy.

  • @Checkmate-www
    @Checkmate-www 3 หลายเดือนก่อน +1

    thanks for the info man. loving ur videos

  • @abdullahfareed3209
    @abdullahfareed3209 2 หลายเดือนก่อน +1

    can you make a video on how to solve distorting problem, like when beginners zoom out the web page all the elements start going here and there :D

  • @MaxAlekseyev
    @MaxAlekseyev 3 หลายเดือนก่อน +1

    Yes, the great feature

  • @joel-rg8xm
    @joel-rg8xm 3 หลายเดือนก่อน +1

    I never thought it that way, cool!

  • @vesterfox5662
    @vesterfox5662 2 หลายเดือนก่อน +5

    2:40 github screamer

    • @LukeWatts85
      @LukeWatts85 2 หลายเดือนก่อน

      😂

  • @girdhar3224
    @girdhar3224 2 หลายเดือนก่อน

    Can you share the complete code of before and after
    Or just after in a link

  • @blazed-space
    @blazed-space 2 หลายเดือนก่อน

    Inline-flex is really the GOAT, along with border radius… making websites before CSS3 was brutal 😂

  • @CottidaeSEA
    @CottidaeSEA 3 หลายเดือนก่อน +4

    You want an inline element, so obviously you use inline-flex instead, because flex is a block element. This really shouldn't come as a surprise.

  • @nickolaizein7465
    @nickolaizein7465 3 หลายเดือนก่อน +1

    Like it! This is similar to inline-block, but in flex world!

  • @radha_pritivatidevidasi
    @radha_pritivatidevidasi 3 หลายเดือนก่อน +2

    flex direction: row ; does it work ...

    • @yourlocalhuman3526
      @yourlocalhuman3526 3 หลายเดือนก่อน +1

      The difference is that you'd need a wrapper that contains the anchor tags. With inline flex you won't. At least from my understanding

    • @AlonGruss
      @AlonGruss 3 หลายเดือนก่อน +3

      @@yourlocalhuman3526 That's not a good thing. The HTML and CSS in this video will be harder to maintain and has no semantic context. Shorter is not better.

    • @masterflitzer
      @masterflitzer 3 หลายเดือนก่อน +1

      ​@@AlonGrussit's technically not even shorter if you'd properly split the css into utility classes, in general i think what the video shows is a bad idea

    • @masterflitzer
      @masterflitzer 3 หลายเดือนก่อน

      @@y0urh0mew0rk you're pretty stupid if you don't know the difference between div spamming and prober use of parent encapsulation

    • @masterflitzer
      @masterflitzer 3 หลายเดือนก่อน

      @@y0urh0mew0rk so you don't know what the diff between css utility classes and semantic classes are? dude why are you acting like you know anything and then asking the dumbest fucking question, you can literally google this, the only one smoking here is you now try to apply for some jobs instead of wasting time here acting like the css god while being clueless

  • @Maxc_
    @Maxc_ 2 หลายเดือนก่อน

    What if you use flex and flex-direction: row?

  • @nikolayrogchev9628
    @nikolayrogchev9628 2 หลายเดือนก่อน +3

    Omg, every time I use display flex, but i need separate wrapper and separate class for the wrapper :@ Thanks, this seems very clean and elegant

  • @_MaiT
    @_MaiT 2 หลายเดือนก่อน

    What if you use flex-direction: column with display: flex;? Wouldn't code make same results? 2:40

  • @M1CK3Y
    @M1CK3Y 3 หลายเดือนก่อน +1

    man i love this channel bro

  • @ademineshat
    @ademineshat 3 หลายเดือนก่อน

    And on smaller screens what will happen to inline buttons

  • @AS-mc2db
    @AS-mc2db 3 หลายเดือนก่อน

    Always great content...big fan❤

  • @aqua-bery
    @aqua-bery 2 หลายเดือนก่อน +1

    I feel like you can just... display: flex; flex-direction: column; (or row, I forget) and get the same result, at least in the example you gave

    • @votati
      @votati 2 หลายเดือนก่อน

      but you would have to create a flex container for that. Instead, if you use inline-flex, you avoid writing another container and keep html and css simpler.

  • @RohitKumar-my4gq
    @RohitKumar-my4gq 3 หลายเดือนก่อน

    One question is that all topic you discuss here are they covered in udemy course?

  • @0xBerto
    @0xBerto 3 หลายเดือนก่อน

    0:56 how is this width of the block 100% I see the input fields are clearly not as wide as the red bar of the H1 tag. Or am I misunderstanding ?

    • @coding2go
      @coding2go  3 หลายเดือนก่อน +1

      Input elements have a lot of default styles like min-width and width that interfere with that. That is why they don't fill 100% like other elements.

  • @YannMetalhead
    @YannMetalhead 3 หลายเดือนก่อน

    Good video.

  • @JohnWickXD
    @JohnWickXD 3 หลายเดือนก่อน

    Thank you so much ❤

  • @ClubMedia
    @ClubMedia 3 หลายเดือนก่อน

    جميل شكراً لك

  • @kamurashev
    @kamurashev 2 หลายเดือนก่อน

    Shouldn’t they be just wrapped in another display flex aligned element?

  • @Angelcona01
    @Angelcona01 3 หลายเดือนก่อน

    No sabía que lo necesitaba jajaja

  • @ronpalmer7260
    @ronpalmer7260 3 หลายเดือนก่อน

    Great explanation.

  • @primodrums7604
    @primodrums7604 3 หลายเดือนก่อน

    I think flex-direction: row; would solve this issue though

    • @wlockuz4467
      @wlockuz4467 3 หลายเดือนก่อน

      No it won't because his a tags are flex not the container of a tags.

    • @primodrums7604
      @primodrums7604 3 หลายเดือนก่อน +1

      Ohhhh I get now, normally…I would enclose all the link elements in a container and apply flex to the container. But this is another way around it

  • @get-web
    @get-web 2 หลายเดือนก่อน

    Офигеть, чел открыл для себя inline-flex... В данном случае, нужно обернуть ссылки в родительский flex блок и добавить к нему gap, чтобы отступы были так же и cнизу display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 10px;

  • @justablank1184
    @justablank1184 2 หลายเดือนก่อน

    so flex-direction: row; works same I think.

  • @galactic_dust42
    @galactic_dust42 2 หลายเดือนก่อน

    Or just use flex-direction: row ?

  • @Arcane_Dragon878
    @Arcane_Dragon878 3 หลายเดือนก่อน

    This is so good man, been a subscriber for a month or two now and damn your content is awesome! i unironically learnt more watching your videos than doing my own research
    Also guys im new to YT streaming and video creation, pop on by and say hello if ya want

  • @gilsonconceicao5201
    @gilsonconceicao5201 3 หลายเดือนก่อน

    Thanks a lot

  • @mado.madeleine
    @mado.madeleine 3 หลายเดือนก่อน

    Life saver 🙌🏽

  • @rejomy
    @rejomy 3 หลายเดือนก่อน

    helpful thanks

  • @rounak308
    @rounak308 2 หลายเดือนก่อน

    we can just use wrap

  • @liasayati-s5u
    @liasayati-s5u 2 หลายเดือนก่อน

    make image slider with keyboard pleease 😢

  • @OJGamingYT
    @OJGamingYT 3 หลายเดือนก่อน +1

    Answer: justify-content:start
    I see no reason to use anything other than regular flex, or grid.

  • @talhaanxari
    @talhaanxari 3 หลายเดือนก่อน

    Great Sir

  • @respise
    @respise 2 หลายเดือนก่อน

    why don't you just use the flex-direction? 🤔

  • @yourlocalhuman3526
    @yourlocalhuman3526 3 หลายเดือนก่อน +1

    You opened my third eye bro 😂

  • @aleksd286
    @aleksd286 2 หลายเดือนก่อน

    I would just display: grid; grid-cols-3

  • @siddharaj3674
    @siddharaj3674 3 หลายเดือนก่อน

    Which Color Theme you use in Vs Code??? please Answer...

  • @rowansteve-ng3fs
    @rowansteve-ng3fs 3 หลายเดือนก่อน

    you would just have changed it to flex-direction: row; then set them to flex: 1; each

  • @sourishdutta9600
    @sourishdutta9600 3 หลายเดือนก่อน

    Thank you so much 😊 can you please 🙏 create video on atomic design and design system please.

  • @roshu551
    @roshu551 3 หลายเดือนก่อน

    source code?

    • @aram5642
      @aram5642 3 หลายเดือนก่อน +1

      Adding the magic word "please" might help you.

  • @Pareshbpatel
    @Pareshbpatel 2 หลายเดือนก่อน

    CSS inline-flex, so well explained. Thanks.
    {2024-10-21}

  • @nomadshiba
    @nomadshiba 2 หลายเดือนก่อน

    "flex" is shorthand for "block flex"
    "inline-flex" is shorthand for "inline flex"
    "block" is shorthand for "block flow"
    "inline" is shorthand for "inline flow"

  • @SunPodder
    @SunPodder 3 หลายเดือนก่อน

    Can you make a tutorial on an infinite carousel with animations?

  • @莊子-e3v
    @莊子-e3v 3 หลายเดือนก่อน

    on my god bro,I benefited greatly from watching your video. If you offer a course, I will purchase it to participate.

  • @thetanertube3482
    @thetanertube3482 3 หลายเดือนก่อน

    flex + *:w-fit = inline flex

  • @anurag_anuraj
    @anurag_anuraj 3 หลายเดือนก่อน

    Tailwind css next

  • @blackshirtsquad7883
    @blackshirtsquad7883 3 หลายเดือนก่อน +1

    Or just add a parent div also with flex. You might say why add a parent div when inline-flex is easier, but this is already what you're doing any time you choose to use flex.

    • @blackshirtsquad7883
      @blackshirtsquad7883 3 หลายเดือนก่อน

      @@y0urh0mew0rk if you're using a utility framework like tailwind, more divs generally makes code more readable. Its good practice. Up to a point obviously

  • @dekuplaysguitar3313
    @dekuplaysguitar3313 2 หลายเดือนก่อน

    I think this overcomplicate the understanding , i would just use flex and gaps

  • @melkiy582
    @melkiy582 2 หลายเดือนก่อน

    table th td /td td /td /th tr td /td td /td /tr let’s gooooooo

  • @Z4KIUS
    @Z4KIUS 3 หลายเดือนก่อน

    flex shouldn't be a display value but something else, that way you'd be able to keep the display you want and still have flex-children
    but we can't change that now so... yeah

  • @gareth2021
    @gareth2021 3 หลายเดือนก่อน

    nice video :)

  • @AlonGruss
    @AlonGruss 3 หลายเดือนก่อน +23

    That's just bad HTML hierarchy 🤦‍♂

    • @jsamperdev
      @jsamperdev 3 หลายเดือนก่อน

      Can you explain? or link?

    • @AlonGruss
      @AlonGruss 3 หลายเดือนก่อน +17

      @@jsamperdev Sure, by controlling the layout from a dedicated container for all the anchor elements (with flex row) it can be a more manageable and flexible HTML (and CSS) that will allow more freedom and granularity in these chip-like links. Having this container will also allow for better semantic tagging for A11y and also for responsive layout design.
      Here they are just having a flat hierarchy where everything is a sibling to everything else, while trying to control layout for multiple elements from inside an element. Which is not a good way to build HTML.

    • @Daniel-nb3kk
      @Daniel-nb3kk 3 หลายเดือนก่อน

      ​@@y0urh0mew0rkCalm down man

    • @TenzaBurabura
      @TenzaBurabura 2 หลายเดือนก่อน

      I think you missed the point, and/or you have some HTML brain rot.
      It is most definitely NOT more manageable to have a container for each multi element thing you want to align on a single row, rather than change the display property of the single row element. Those containers have no visible or functional utility, they are just there because using display: flex provided incorrect positioning information to the browser and you now need to work against that. It is also meaningless to call it more flexible for the example presented, unless you want to make a super button with a carousel in it or something. I also don't see an a11y advantage, you still got a perfectly good button.

  • @nicelydone4319
    @nicelydone4319 2 หลายเดือนก่อน

    I guess inline-block is known only to millennials...

  • @GamerDevIND
    @GamerDevIND 3 หลายเดือนก่อน

    Imagine a new mode called `infinite-flex` 💀

  • @AvisekDas
    @AvisekDas 2 หลายเดือนก่อน

    This is dumb