A flexbox trick to improve text wrapping

Checkout iCodeThis 👉 icodethis.com/?ref=kevin
🔗 Links
✅ My finished version: icodethis.com/modes/design-to...
✅ ICodeThis: icodethis.com/?ref=kevin
✅ I have a 4-hour long course that deep dives flexbox: flexboxsimplified.com
Disclaimer: Some of the links above might be affiliate links, which means that I'll receive a commission in case you like and decide to purchase the product or service. This comes at no extra cost for you, and helps support my channel 😊
⌚ Timestamps
00:00 - Introduction
00:45 - Why flex-grow or flex: 1 don't work
01:30 - flex-wrap doesn't solve the issue either
02:00 - min-width to the rescue
04:05 - more about icodethis
#css
--
Come hang out with other dev's in my Discord Community
💬 / discord
Keep up to date with everything I'm up to
✉ www.kevinpowell.co/newsletter
Come hang out with me live every Monday on Twitch!
📺 / kevinpowellcss
---
Help support my channel
👨‍🎓 Get a course: www.kevinpowell.co/courses
👕 Buy a shirt: teespring.com/stores/making-t...
💖 Support me on Patreon: / kevinpowell
---
My editor: VS Code - code.visualstudio.com/
---
I'm on some other places on the internet too!
If you'd like a behind the scenes and previews of what's coming up on my KZread channel, make sure to follow me on Instagram and Twitter.
Twitter: / kevinjpowell
Codepen: codepen.io/kevinpowell/
Github: github.com/kevin-powell
---
And whatever you do, don't forget to keep on making your corner of the internet just a little bit more awesome!

Пікірлер: 246

  • @KevinPowell
    @KevinPowellАй бұрын

    Quick note: I mispoke when I said flex: 1; will make it a flex-shrink: 0. It makes it flex-grow: 1; flex-shrink: 1; and flex-basis: 0; You'd almost never notice the difference as long as the flex-basis is 0, but still, I did make a mistake there, sorry about that!

  • @dashx2

    @dashx2

    Ай бұрын

    I usually use white-space: nowrap; in such scenarios. Is there any difference in this scenario between min-width: fit-content or white-space: nowrap?

  • @eioluseyi

    @eioluseyi

    Ай бұрын

    @@dashx2 I wish I could link replies here, but @jenstornell answered this in a reply on this video

  • @detore

    @detore

    Ай бұрын

    Would setting flex-basis:calc(50% - var(--gap)); fix the small screen being different widths problem without affecting anything else?

  • @ismailcreatvt

    @ismailcreatvt

    29 күн бұрын

    Yes I did catch that mistake! But I guess we can let it slide as you showed us such amazing trick. 👌

  • @dashx2

    @dashx2

    29 күн бұрын

    @@eioluseyi I read his comment. Usually these situtations happen for buttons and most of the time buttons dont have long text taking up more than 100px width so white-space-nowrap rarely is problematic on mobile.

  • @stairjoke
    @stairjoke26 күн бұрын

    I’ve been writing CSS for like 20 years and I feel like I know nothing.

  • @whyisthiscodenotworking

    @whyisthiscodenotworking

    20 күн бұрын

    Yeah correct 💯 💯💯 this guy knows everything in CSS

  • @1lllllllll1

    @1lllllllll1

    13 күн бұрын

    that's because you've been writing CSS since the dawn of time. I'm constantly aghast at the improvements of the cascade behavior and element addressing. Why people still use SCSS is becoming increasingly questionable. If you're a skilled front end dev, there really shouldn't need to be a need for any of the frameworks any longer. same for javascript and HTML.

  • @zayne-sarutobi

    @zayne-sarutobi

    13 күн бұрын

    ​@@1lllllllll1Ease of maintenance is why

  • @kadir572

    @kadir572

    12 күн бұрын

    ​@@1lllllllll1well I challenge you to write a frontend framework from scratch then, let's see if it makes sense to use it or not

  • @MRJMXHD

    @MRJMXHD

    12 күн бұрын

    Bruv 😂

  • @KB04
    @KB04Ай бұрын

    Had the same problem, literally never thought of using fit-content on min/max width.

  • @LePhenixGD

    @LePhenixGD

    Ай бұрын

    Same

  • @peasantlord135

    @peasantlord135

    Ай бұрын

    Yeah, I just rolled with no text break haha

  • @pascalmaranus
    @pascalmaranusАй бұрын

    This is brilliant! Coincidentally, I had to make a small change to an older website today. And I noticed they have a similar issue with two buttons, because the client's changed the text on the buttons. It's bothered me for years at this point. I'm applying this there right away!

  • @artneo7
    @artneo78 күн бұрын

    The "min-width: fit-content;" declaration helped me out on a project, really cool tip when working with the flex layout! Thanks! 🙌🏼

  • @sourabhgupta3811
    @sourabhgupta381128 күн бұрын

    You just saved developers so much time with your solution to this common issue!

  • @Sagan1995
    @Sagan199529 күн бұрын

    Neat! You can also achieve the same results by adding "white-space: nowrap" to the buttons as well.

  • @KlethonioFerreira

    @KlethonioFerreira

    28 күн бұрын

    I think this might even kept the widths the same, I didn't test it

  • @Sagan1995

    @Sagan1995

    27 күн бұрын

    @@KlethonioFerreira it unfortunately doesn't because the minimum width of one button is less than the other. Only giving the buttons a fixed minimum width will keep them equal in size.

  • @jaysonbautista95

    @jaysonbautista95

    22 күн бұрын

    This is what I usually do when I encounter this issue, just text wrapping.

  • @Pixelarter

    @Pixelarter

    15 күн бұрын

    @@Sagan1995 It's a bit overkill, but I think with a CSS grid instead of flexbox, it's possible to keep them the same size and make them properly wrap.

  • @Sagan1995

    @Sagan1995

    14 күн бұрын

    @@Pixelarter I am imagining you can only achieve that in grid by providing a fixed minimum width, which can also be done in flexbox. So unless I'm wrong and there's another way to do it in grid, I am not seeing the advantage.

  • @Feedback406
    @Feedback40629 күн бұрын

    The best css channel on KZread and it’s not even close. Been watching for years Thank you!!!

  • @larrybahr489
    @larrybahr489Ай бұрын

    I love that this solution does not need media queries! Great video as always

  • @poischiche2933
    @poischiche293323 сағат бұрын

    Once you're facing the solution, the reaction is something like "yes, obviously obvious" but I before never tried to put fit-content to a min-width. Great tip 👏

  • @matizbrave
    @matizbrave25 күн бұрын

    That's the stuff! A simple, elegant solution to a common problem. Love it!

  • @FlorinPop
    @FlorinPopАй бұрын

    New lesson for today! Thanks Kevin! 🤩

  • @venomus9286
    @venomus9286Ай бұрын

    I fixed this with white-space: preline; but wasnt a fan how it ended in the end. This solution seems much better. Preline would just force the text not to break, but also had to add prettier ignore so it doesnt break the line. Takes a bit more setup. Thanks a lot Kevin for this solution, much appreciated :D

  • @joshuamitchell6204
    @joshuamitchell6204Ай бұрын

    I used this exact trick on this exact iCodeThis challenge! Love it!

  • @FlorinPop

    @FlorinPop

    Ай бұрын

    Glad to see you in the comments section also! 🤩

  • @iamtharunraj
    @iamtharunrajАй бұрын

    I have had this issue for so long and never knew how to fix them. *Thank you so much, Kevin!*

  • @DevelTime
    @DevelTime29 күн бұрын

    I love this format, short gem, one subject, great for archiving for reminding yourself later. Btw. thank you VERY MUCH for being consistent I don't even remember for how long and presenting code and examples in clear way (i.e. big fonts, big pictures, etc) so your viewer don't have to buy new 40" monitor plus pair of new eyes. Thank you!

  • @fakeyfakerson2000
    @fakeyfakerson20004 күн бұрын

    I appreciate you spelling out the whole thought process. I feel like it’ll really help improve my intuition for solving css issues in general.

  • @marcuszeal
    @marcuszeal29 күн бұрын

    This is clever. I like it! I feel like every video I watch of yours, Kevin, I learn about new CSS variables that I never knew existed or never thought to use the way you're using. Well done and thank you for sharing!

  • @lewybagz
    @lewybagz14 күн бұрын

    Your timing is insane i was literally just struggling with this on a landing page yesterday. The Goat

  • @alexjagi3448
    @alexjagi3448Ай бұрын

    Bloody hell that's a nice solution. I was literally working on the same problem last night. But this blows my solution out of the water. Gonna use this right away. Thanks.

  • @ichiroutakashima4503
    @ichiroutakashima4503Ай бұрын

    I honestly love short contents like these. I had this same issue and your solution was straightforward! I don't have time to watch a 30 minute or 12 hour video and then try to find which chapter and minute is the content I'm looking for. Thanks!

  • @gasparsigma
    @gasparsigmaАй бұрын

    That's great. Very succinct without skipping the details

  • @JeremiahKellogg
    @JeremiahKelloggАй бұрын

    Nice! How glad am I this popped up as a recommended video right now. This solved a similar problem I was having and couldn't quite solve properly. This did exactly what I wanted. Thanks!

  • @jiwoo6788
    @jiwoo6788Ай бұрын

    This came in big time! I'm currently working on something similar! Thanks Kevin!

  • @sanketgawande3667
    @sanketgawande366729 күн бұрын

    I knew this one! Also make sure to add text ellipsis in case text is little longer than available width.

  • @zenu5344
    @zenu534422 күн бұрын

    Great sir! I had this issue some days ago and I just remove the space itself by adding -  and got it solved

  • @fabbahiense
    @fabbahienseАй бұрын

    It's a nice way to solve it. I've been using this trick for a while now, and it works on most cases!

  • @samahgad241
    @samahgad241Ай бұрын

    thanks kevin i faced the same issue ,text wrap not satisfied me also . Awsome solution😍

  • @yarikar
    @yarikar16 күн бұрын

    Amazing! Thank you so much for this tip!

  • @JennyZibreva
    @JennyZibreva28 күн бұрын

    this is so beautiful, thank you Kevin!!!

  • @RahulKumar-te3ob
    @RahulKumar-te3obАй бұрын

    Brilliant! Loved the solution. Going to try this!

  • @invictuz4803
    @invictuz480322 күн бұрын

    Love these videos, tackling the real issues!

  • @srsh12345
    @srsh1234529 күн бұрын

    Loved the breakdown. Thank you for the explanation.

  • @irfanMiral
    @irfanMiral29 күн бұрын

    never thought about this could be a workaround. great solution!

  • @Avean
    @AveanАй бұрын

    Had no idea about min-width: fit-content. Love it!

  • @LetsGenocide
    @LetsGenocide27 күн бұрын

    Thank you very much! This one should be taught in all CSS classes >:o

  • @exactzero
    @exactzero27 күн бұрын

    The amount times I encountered this problem. Thanks!

  • @binoypatel09
    @binoypatel09Ай бұрын

    Simply awesome trick, you are the best

  • @teugene
    @teugene29 күн бұрын

    Thanks for the reminder! Keep forgetting this exists but we kept relying on flex-direction in media queries.

  • @Dipenparmar12
    @Dipenparmar1219 күн бұрын

    Amazing out the box tutorial ❤❤

  • @WilliamShrek
    @WilliamShrek27 күн бұрын

    Thanks. This is really cool!

  • @pnx1990
    @pnx199028 күн бұрын

    I needed to do that for a two column layout, and keep content centered, I also found it worked using flex and min-with as fit-content

  • @orange1890
    @orange189027 күн бұрын

    to fix the "downside" we could make it so that the texts take the same size by adding a fixed margin. really cool as always

  • @jasoncook2715
    @jasoncook2715Ай бұрын

    Your saving my life there. Thank you

  • @user-kw6sv7kf5l
    @user-kw6sv7kf5l29 күн бұрын

    This is beyond cool. Thanks a lot!

  • @Play_Streams
    @Play_Streams22 күн бұрын

    That's genius! Thanks for this

  • @source_out
    @source_outАй бұрын

    Nice! Definitely better than a fixed min-width which is what I would normally do to solve this, but that can just get messy, this is cool 👍

  • @EvestTech
    @EvestTech26 күн бұрын

    0:46 Thanks sooo much for explaining. I finally understand XD

  • @dvillegaspro
    @dvillegaspro28 күн бұрын

    Crazy I was literally dealing with this issue the same day you posted this video

  • @thedigitalceo
    @thedigitalceo28 күн бұрын

    Oooo fit-content. This is perfect. Run into this issue all the time ❤

  • @Imperial_Squid
    @Imperial_SquidАй бұрын

    Oooooh very helpful! I was fiddling around with the youtube CSS the other day because I really hate how it squashes the channel name of there's a join button on the page, had no idea you can tell it like "wrapping text is a last resort, go through all the other rearrangement options first"

  • @curefilms
    @curefilmsАй бұрын

    Thanks Kevin. Great Tip

  • @eduardointech
    @eduardointech12 күн бұрын

    Thank you!

  • @k1mpman
    @k1mpman29 күн бұрын

    Beautiful!

  • @JacksonDiKey
    @JacksonDiKey29 күн бұрын

    Awesome! Thanks for doing our life easier :)))

  • @fexofenadinaGenerica
    @fexofenadinaGenerica29 күн бұрын

    I love these short videos

  • @fredhair
    @fredhairАй бұрын

    I've done this before, it works well exactly for this sort of case! I think I ended up using it fairly recently in a flexy table where I wanted some columns such as email address column to basically take up more space if needed to prevent the text wrapping but otherwise should try and make the columns even width or at least take up space based on their content, I think I may have also used a min-width: max-content; at one point.

  • @xreev0x
    @xreev0x29 күн бұрын

    this was super cool!

  • @GetPsyched6
    @GetPsyched6Ай бұрын

    Great video! great tip as well!

  • @onio907
    @onio907Ай бұрын

    this is great solution, thx for sharing

  • @Cringe_Username
    @Cringe_Username17 күн бұрын

    woaow super useful, thank you

  • @ZiafatAli
    @ZiafatAli28 күн бұрын

    Whooo 🎉 thank you for sharing ❤

  • @mfrodyma1480
    @mfrodyma1480Ай бұрын

    Great!!! Good explanation.

  • @zgo99
    @zgo993 күн бұрын

    Bro! Instant subscribed.

  • @zonaloca
    @zonaloca5 күн бұрын

    This can spare a lot of headaches.

  • @TheLollercaster
    @TheLollercaster29 күн бұрын

    great stuff!

  • @reikooters
    @reikooters28 күн бұрын

    Interesting to see the raw css stuff with flexbox. I started learning HTML 26 years ago, CSS probably been about 20 years and then I never kept up to date or used the newer features like flex and grid etc - by the time I started using those I had switched to tailwind, so I'm used to seeing this type of thing with just a few classes. I must admit if I had to use regular css for flex I wouldn't know what I'm doing. But that fit-content with the width is interesting and will keep it in mind for when it comes in handy one day.

  • @shahfaisal3923
    @shahfaisal392314 күн бұрын

    Thanks Kevin

  • @shreejipaliwal1215
    @shreejipaliwal1215Ай бұрын

    Very precious video

  • @rfryanfavour4369
    @rfryanfavour436926 күн бұрын

    i think you save a lot of us a lot but we just don't find your videos sooner 😂 😂

  • @CristianKirk
    @CristianKirkАй бұрын

    Pretty cool! I've been using fit-content a lot lately for height specially.

  • @alfanur_rizal
    @alfanur_rizalКүн бұрын

    Omg super thank you 😭

  • @hoaxygen
    @hoaxygen25 күн бұрын

    In Tailwind it's "min-w-fit". Super handy!

  • @amilww
    @amilww29 күн бұрын

    Very handy!

  • @R_Y_Z_E_N
    @R_Y_Z_E_N12 күн бұрын

    Wow i guess im good at css , i figured this out when i heard your problem 😅

  • @kebunkarta6257
    @kebunkarta625721 күн бұрын

    Thank you

  • @Javic167
    @Javic167Ай бұрын

    I didn't knew you could use fit-content in a width propperty, that's some real usefull thing

  • @OCEMTechZone
    @OCEMTechZoneАй бұрын

    Useful fix found thanks 🎉

  • @UnoUrong
    @UnoUrong5 күн бұрын

    Aaaahhhggghhhh!!! I wish I knew this 2 months ago!

  • @AdolfRizzler41
    @AdolfRizzler41Ай бұрын

    Father of css

  • @clevermissfox
    @clevermissfoxАй бұрын

    I’m so excited for this. Had the exact same issue on this exact icodethis challenge !

  • @FlorinPop

    @FlorinPop

    Ай бұрын

    Miss!! 🫡

  • @clevermissfox

    @clevermissfox

    Ай бұрын

    @@FlorinPop Pop!!!! Our guy!

  • @IchorDragon
    @IchorDragon6 сағат бұрын

    Thought that I'd use experimental @ container to do such dynamic effect, didn't knew that flexbox can do so!

  • @user-pv3rq5ib3y
    @user-pv3rq5ib3yАй бұрын

    Wow I learned a new thing Kevin

  • @rodrigocorvalan4895
    @rodrigocorvalan4895Ай бұрын

    Nice trick! I use white space but I will try this

  • @modi_hemnt77
    @modi_hemnt7719 күн бұрын

    Very helpful

  • @joyofdevotion
    @joyofdevotion27 күн бұрын

    This is great! I was scratching my head how to do it nicely. One issue I found when there are multiple button. The gap breaks it and keeps space on the right in the container. How do you deal with that?

  • @devonchia5976
    @devonchia597628 күн бұрын

    Cool sharing! Not going to try out now but jus wondering if this works for both chrome and Firefox? Edge case fixes like this sometimes don't work on either one

  • @QwDragon
    @QwDragonАй бұрын

    Very cool!

  • @kirstenellis1693
    @kirstenellis169324 күн бұрын

    fit-content.. what a lovely solution to min-width!

  • @ernestoj.suarezpons9352
    @ernestoj.suarezpons9352Ай бұрын

    K, your videos are greater on time!

  • @keessonnema
    @keessonnemaАй бұрын

    What are the chances! I ran across this problem last week, this will solve it! Thanks

  • @thelaitas
    @thelaitas25 күн бұрын

    It's kinda funny how exciting did I find this haha

  • @patricknelson
    @patricknelson23 күн бұрын

    Awesome tip! A very rare “ah hah!” moment from me. 😅

  • @stokbrood
    @stokbroodАй бұрын

    If you have 3 items next to each other, how can you make them all move under each other right when 1 of them hit that annoying break line

  • @yourlocalhuman3526

    @yourlocalhuman3526

    Ай бұрын

    media query that changes the organisation of the buttons only to flex-direction column at a certain container width? I assume it would need to be placed after the style that is enabling the linebreak(wrap)

  • @hitmusicworldwide
    @hitmusicworldwideАй бұрын

    Are there a transparent characters that can be used to make the length of character lines the same or even them out in some approximate way so that when the boxes themselves are resized due to the length of the text within them the transparent characters will equalise everything out? Back in the old tape setting days when things were printed on paper there were even minor adjustments made between the distances of each letter in a word and between words and a sentence that would be used to justify and even out the amount of space for every container in printing.

  • @AndreaCuchetto
    @AndreaCuchettoАй бұрын

    So smart!

  • @osawereao
    @osawereaoАй бұрын

    So let me just say " I LOVE YOUR INTELIGENCE"

  • @colindante5164
    @colindante5164Ай бұрын

    thanks))

  • @vilijanac
    @vilijanacАй бұрын

    Very good, it works, But media is suddenly an large monitor 8K, now need to increase the font too, lol

  • @AndyGaskin
    @AndyGaskinАй бұрын

    great tip