Are you using the right CSS units?

Sdílet
Vložit
  • čas přidán 17. 05. 2024
  • There are a lot of different units that we can use when writing CSS, in this video I give some general rules of thumb of which ones are best suited for which situations.
    Zell's article on media queries: zellwk.com/blog/media-query-u...
    Em vs. Rem: • CSS em and rem explain...
    Using clamp() for fonts: • min(), max(), and clam...
    The issue with em with font sizes: • Why you shouldn't set ...
    Viewport units: • CSS Units: vh, vw, vmi...
    The ch unit: • The ch unit is the mos...
    #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
    ---
    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 CZcams channel, make sure to follow me on Instagram and Twitter.
    Instagram: / kevinpowell.co
    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!

Komentáře • 463

  • @einfachnurlegendar7947
    @einfachnurlegendar7947 Před 3 lety +1655

    Summary:
    font-size: rem
    width: % in combination with a max-width, ch
    height: question urself "do i rly need to set height" if yes -> use a min-height
    padding/margin: rem or em, kevin often uses em for padding of buttons
    media queries: em
    px only for little things like shadows, borders etc.
    Great Video :)

  • @TheBigCheez365
    @TheBigCheez365 Před 3 lety +604

    This is such a solid channel. Literally my go-to for any and all things CSS. You da man Kevin.

  • @andreschavarria7091
    @andreschavarria7091 Před 3 lety +354

    Ok so I’m 37 years young and decided to learn html/css with absolutely 0 experience and knowledge about coding or programming. Your channel has made things way easier for me to understand. So I guess I just want to say thank you and recognize the importance of sharing and the impact you’re making.... thanks!

    • @toddhoward5947
      @toddhoward5947 Před 3 lety +7

      All the best man ❤

    • @samuelgoncalves5616
      @samuelgoncalves5616 Před 3 lety +6

      Love that you are trying to learn! That's the way to go. Just out of curiosity, why did you start learning?

    • @rellison68
      @rellison68 Před 3 lety +17

      Hi Andres. I am 52 and am returning to development after about 10 years off. I really appreciate channels like this to help out. Good luck!

    • @andreschavarria7091
      @andreschavarria7091 Před 3 lety +3

      @@rellison68 thanks Robert, and good luck to you too! Agree with you, channels like this show some of the greatest benefits of platforms like CZcams... sharing IS caring

    • @andreschavarria7091
      @andreschavarria7091 Před 3 lety +6

      @@samuelgoncalves5616 thanks Samuel! My wife started doing volunteering at her job, but one requirement is that whoever they’re volunteering for, must have a website and must of them don’t have one... so I said to her... I can build them a website, I’m sure that’s easy! Ha, little did I know... lol. And so I started learning literally 32 days ago. It’s a win win situation, they get the website and I get to learn.

  • @Brunoenribeiro
    @Brunoenribeiro Před 3 lety +103

    .kevin__coat {
    display: flex;
    justify-content: flex-start;
    }

    • @ivanberdichevsky5679
      @ivanberdichevsky5679 Před 3 lety +3

      I think this has align-items: flex-end actually 😂

    • @akifcankara2225
      @akifcankara2225 Před 3 lety +2

      .kevin__tshirt:nth-child(even){
      background: pink;
      }
      .kevin__tshirt:nth-child(odd){
      background: whitesmoke;
      }
      .kevin__tshirt:nth-child(3n){
      background: grey;
      }

    • @sumitpurohit8849
      @sumitpurohit8849 Před 3 lety +3

      .kevin__coat {
      align-items: space-between;
      }

    • @ari-mcbrown
      @ari-mcbrown Před 3 lety +4

      weird flex, but okay

  • @lordyc8393
    @lordyc8393 Před 2 lety +12

    I discovered this channel a few days ago, I learned more about mobile responsive design than anywhere else and feel more confident using CSS. Kevin, you're a real one

  • @jackr9122
    @jackr9122 Před 3 lety +1

    Kevin thank you so much man - the clarity I get from these videos is unreal. Keep it up, my friend!

  • @TheMatcap1
    @TheMatcap1 Před 3 lety +6

    After deploying some sites on html and css i started watching your tutorials and i´m totally impressed, you really helped me a lot improving my css styling an writing. Thanks!

  • @cmyk8964
    @cmyk8964 Před 2 lety +19

    For basic HTML games, I define a custom variable in the root relative to the viewport width/height (e.g. min(4vw, 3vh)) and calc everything else relative to that

  • @kiggi__
    @kiggi__ Před 3 lety +9

    I am playing catch up with everything HTML, CSS, Javascript. Your video's are fantastic at helping me get to grips with all that has changed, keep up the awesome content!

  • @patriknordberg1259
    @patriknordberg1259 Před 3 lety +15

    I think you missed out on CSS Grid and using fractions or fr. Which I think should be very relevant at this time. People really need to start embracing CSS Grid as it makes your layout so much cleaner and allows you to keep your HTML semanticly correct.
    Appreciated the comment about ch. I hadn't used that so much and it really makes sense for column sizes.

  • @maitolehrer2613
    @maitolehrer2613 Před 3 lety +1

    I've been looking for this kind of video for a long long time now. Thank you so much for this!

  • @TheJacklwilliams
    @TheJacklwilliams Před 2 lety +8

    The ironic thing, as newb, I've used pixels for most everything because? I haven't the slightest idea of the definition and proper usage of the units you mentioned... Which of course, calls out the immediate need for me to, learn them, and use them accordingly. Thanks for this Kevin. I'm enjoying your content very much.

  • @erichobbs4042
    @erichobbs4042 Před 3 lety +7

    I learned about Ch from one of Kevin's other video's last year. It's my go to unit for designing text layout now.

  • @antoniomasotti8060
    @antoniomasotti8060 Před rokem

    I love this man and his videos.
    You see immediately how experienced he is and still humble and willing to help. And the advices are always top, they greatly improved the way I use css.

  • @CodingNuggets
    @CodingNuggets Před 3 lety +58

    The CSS GOAT bringing everyone some very useful info. Appreciate you Kevin. See you soon!

  • @VasilyPavlik
    @VasilyPavlik Před 3 lety +3

    Man, after your videos I started to use REMs. And it's marvelous. Because you can change only one font-size for body in media-query. And that's all. It works like variables even in IE.
    Now I'm thinking in REMs everywhere. Our body default font size is 10px, so it's quite easy to calculate. But it's also easy to scale layouts for any screen size depends on media.
    Thank you a lot!

  • @Priority64
    @Priority64 Před 3 lety

    In addition to awesome content you put out constantly, I also have to admire that your videos are CRISP! Love that not only your content is hiqh quality but your video quality too.

  • @aceandember
    @aceandember Před 2 lety

    So, today something clicked and I owe it all to you Mr Powell. I have been doing CSS/SCSS almost every day for a few years but I didn't grasp the concept of parent height affecting the height of children until I watched one of your videos (you do great btw, ty). I struggled with dealing with it for a long time and today I was tackling a typical challenge, one where a div dynamically pops up from the bottom and I had to size the content above so that it could handle a custom scrollbar etc. Anyway, due to your videos, I walked it through and it worked the first time! Often I'd struggled over this similar scenario with other elements and had to guess, refresh, and just sort of luck my way into it. Now I get it! TY TY TY!!

  • @Reckless917
    @Reckless917 Před 3 lety +1

    Amazing video as always. Super concise and well explained, thanks a lot!!

  • @TheMoonLayingLow
    @TheMoonLayingLow Před 3 lety

    This is so helpful! Thank you for sharing your knowledge, Kevin.

  • @Springfielde
    @Springfielde Před 3 lety +8

    I really like that you add your face to your content. It makes things much more direct, so it's easier to learn. :)

  • @necroowl3953
    @necroowl3953 Před 2 lety +2

    Thanks a lot, Kevin, your videos are awesome and very complete. This used to be super boring to me, and your content got me interested in actually learning SCSS.

  • @theorycreative
    @theorycreative Před 3 lety +8

    Great video! It definitely gets confusing sometimes, especially if you’re hours into a project, getting tired and start making mistakes. I’m still a designer at heart, even though I’ve been writing code for decades, it’s not often enough to keep track of everything... and then throw math into the mix after a long day, d’oh!

  • @rohitkf8474
    @rohitkf8474 Před 2 lety +8

    Font size : use rem
    Width : coupled with max width, use ch unit(75 or less)
    Height : set min height
    Padding or margin : em(padding for buttons) or rem
    Medi queries : em

  • @troelsrasmussen7457
    @troelsrasmussen7457 Před 3 lety

    Realy nice example with the button where padding is defined using em! Good job and nice videos - thanks!

  • @tomasjsierra
    @tomasjsierra Před 2 lety +6

    After watching this I improved my site by a lot, I think.
    Such a big difference in just 6 minutes of video.
    Many thanks.

    • @lordyc8393
      @lordyc8393 Před 2 lety

      Same!! made a new css which went from 1000 lines to 700 for my website

  • @asdfasdfsdflk
    @asdfasdfsdflk Před 2 lety

    This is so useful for how short it is; I really appreciate this content.

  • @penggunayoutube2580
    @penggunayoutube2580 Před 2 lety

    I always check a video or two from this channel. All of them is really helpful in my road on web development learning
    Love your content

  • @nymusicman
    @nymusicman Před 3 lety

    Been a rem user for a long time and love it. First time learning about ch. I'm very excited to start using it in some of my websites.

  • @wickedwifestre
    @wickedwifestre Před 2 lety

    this was extremely helpful. i’m pretty new to css so this gives me a lot of good stuff to think about. thank you!

  • @dimitrys.2494
    @dimitrys.2494 Před 3 lety

    i thought you had like a million plus followers. you are my go to guy if i don't understand something in css.
    let's try and bring you to at least half a mil.
    i'm sharing for sure all the time !
    you go man!

  • @cmdaltctr
    @cmdaltctr Před 3 lety

    THANK YOU THANK YOU! I have been wondering about this as a beginner and this helped me termendously!

  • @yahayaoyinkansola8258
    @yahayaoyinkansola8258 Před 2 měsíci

    Thank you so much Kevin for this particular video!, it really clarified a lot for me

  • @lieutenantlascivious1992

    Thank you so much! I learn so many little tricks and get so many great suggestions from your videos!

  • @doubledeckercouch6251
    @doubledeckercouch6251 Před 3 lety +2

    Excellent video - and something which needed a quick reference point to "flick back to". Thanks Big K :)

  • @MasayaShida
    @MasayaShida Před 3 lety +12

    Thanks so much for this I'm always insecure about what units to use

  • @arceniocornejo6779
    @arceniocornejo6779 Před 3 lety +1

    I'm trying to learn more about css "little tiny details" for many years. I know your videos will be helpful to learn the subtle details hidden in this languages. Thanks very much for your efforts to disseminate these important techniques. PD I am a retired professor from Panama.

  • @shahshail12
    @shahshail12 Před 2 lety +5

    Hey Kevin, your videos are awesome 👌, just wanted to ask you that is it a good practice to give margin top & bottom in vw?

  • @Coco-ii2pu
    @Coco-ii2pu Před rokem +2

    You're the best tutor online Kevin. And somehow you have all the answers 😂. Thank you

  • @imluctor5997
    @imluctor5997 Před 3 lety +1

    You can also make a function in scss to calculate the pixels to rem. I always use that and call the function px-to-rem() if you take this in use make sure you don't have to put a value with px at the end to make it faster to write it.

  • @mikaockerman832
    @mikaockerman832 Před měsícem

    Our designers want things to look consistent across sizes, fully responsive, and they also make very complex designs. This means the headings, boxes, margins, padding all needs to adjust to screen size. I find myself using Calc with VW quite often. I don't know of that's the best way, but it has been working for me. I do use REM for font size whenever I can though. Thanks!!

  • @ru2979
    @ru2979 Před 2 lety

    Sir .This is a ultimate web dev channel . Kudos to your hard work and love your videos ❤️☺️

  • @0the0ambient0
    @0the0ambient0 Před 3 lety

    Kevin ~ You are amazing . So much ambiguity yet you find clarity

  • @doug7897
    @doug7897 Před 3 lety +17

    Due to writing a lot of wordpress stuff, I've avoided using the 62.5% font-size trick since that breaks certain styles in the admin. Instead I have a SASS function called rem(), which just takes whatever pixel value I want to have, and devides by 16 to convert to rems. Definitely a few more characters to type (painfully so), but I've honestly gotten used to it and outside of the awkwardness using them in things like long padding declarations, it's been pretty nice.
    Untill the designer uses inspector to figure out size adjustments and gives me values in REMs that I have to convert back to pixel values. Then it's hell.

  • @kblyr
    @kblyr Před 3 lety

    Awesome! This is really very helpful, thank you!

  • @RahulKumar-jx5ku
    @RahulKumar-jx5ku Před 2 lety

    You are making my job easier, Kevin. Thank you very much for that.

  • @mrx-qi8th
    @mrx-qi8th Před 3 lety

    Nice,thanks for sharing your information. I've always clicked the like button even if i didn't have the time to watch it at the moment

  • @40ozTea
    @40ozTea Před 8 měsíci

    Great explanation!

  • @90kidsgamezone76
    @90kidsgamezone76 Před 3 lety

    You are the man who learn me a lot of love with css

  • @AnandKumarChaudhary
    @AnandKumarChaudhary Před 2 lety

    Kevin has unparalleled skill of explaining highly complex concepts in very simple manner. Great Work!!!!

  • @shivanshshalabh
    @shivanshshalabh Před 3 lety +1

    Hi! First of all thanks for this awesome video🙂.
    I have a question that whether we should use percentage as a unit for margin and padding or rem?

  • @stevepiraud7629
    @stevepiraud7629 Před 3 lety +2

    Awesome, like always!

  • @ViorelMocanu
    @ViorelMocanu Před 3 lety

    My rules of thumb are:
    » % or vw for box widths
    » % or vh for box heights (indeed, rarely)
    » rem or em for font sizes, leadings, and other type-related dimensions (e.g. image sizes sometimes)
    » em for paddings and margins
    » px for border widths (especially when aiming for that 1px crisp) and media queries (will take a look at the article you recommended, but in principle, it worked well for me so far) and widths and heights (even if I override them in CSS in other units)
    » ch for paragraph max-widths

  • @DANNFIGDESIGNS
    @DANNFIGDESIGNS Před rokem

    This was the video I was looking for. I know how the units work, but where to use them busted my brain. For the most part I was using vh and vw to much. Also, I was using em for my font sizes, and the parents all the way up were using em as well. Also the whole concept presented here will stick. Thank you Kevin. Big fan.
    Update: I read the article regarding the media queries and I'm curios if it's still relevant today. It definitely was written a long time ago. I'm using Webflow and was surprised to see them using px for media queries.

  • @A_Lesser_Man
    @A_Lesser_Man Před 3 lety +2

    css is the bane of my existence, you make it bareable!

  • @PaulNieman
    @PaulNieman Před rokem

    Brilliant and helpful advice. Thank you.

  • @jovanlaguitao3384
    @jovanlaguitao3384 Před rokem

    Very helpful Kevin thank you so much!!

  • @PlayRiteProductions
    @PlayRiteProductions Před 3 lety

    Video is gold, thanks so much!

  • @snaydenoff
    @snaydenoff Před 3 lety +3

    Great video! As a product designer who has just started writing my own html/css, I find your videos really useful!
    It would be great for beginners if you could expand on the issues with examples, such as what issues using the viewport width would cause. ✌️

  • @mreclecticguy
    @mreclecticguy Před 3 lety

    Extremely helpful, thank you.

  • @williamboshi1855
    @williamboshi1855 Před 3 lety

    This topic interested so much I liked before watching, I hope the algorithm gods noticed

  • @GR_BackingTracks
    @GR_BackingTracks Před rokem

    @ 4:21 is my favorite of the tips... I'm a brand newbie to this stuff and this seems perfect for the site I'm making.

  • @Football__Junkie
    @Football__Junkie Před 3 lety

    Great video. Actionable and to the point

  • @tommy6322
    @tommy6322 Před 3 lety +1

    I am not sure. But hopefully you will clear things up for me! :) Love your videos!

  • @TheDMaciek
    @TheDMaciek Před rokem

    Thanks man! Great video

  • @georgiosg9464
    @georgiosg9464 Před rokem

    this cool person is the only one who making me enjoy his content , describe it as much as simple he can!

  • @m12652
    @m12652 Před 3 lety

    Excellent as always... Side tracking a bit, I recently moved back part-time onto Windows machines (well Macs running windows). what I noticed is that Microsoft like to mess with the zoom on your screen, I.e. ignore your resolution and display stuff at say 150% normal size (or whatever). This can make small images, like profile pics look terrible so I’m making them about 75% bigger than what the img size is set at. This does get a bit annoying with performance testing on google chrome for example as it nags about image sizes not being the same as their display size. I know we can have different images for different resolutions etc. but does that take into account the zoom level set by the OS?

  • @mechmaverick
    @mechmaverick Před 3 lety

    literally subbing because the "ch" explanation

  • @huynh4128
    @huynh4128 Před 3 lety

    This is the video i needed right now

  • @guillermoandradaFSD
    @guillermoandradaFSD Před 3 lety +2

    Thank you so much... You channel is awesome

  • @thewadegreen
    @thewadegreen Před 3 lety

    Another great video topic! Thanks!

  • @micahhlc
    @micahhlc Před rokem

    the best CSS teacher in youtube.

  • @mabelwin4779
    @mabelwin4779 Před měsícem

    THANKS U SO MUCH❤😢WITH your videos, now I become understanding about front end working .the videos are right to the point and save time❤🎉

  • @mountainslopes
    @mountainslopes Před 3 lety +1

    I like the idea of px for html font size (can change with breakpoints), rem for components, and em for elements within those components.

    • @KevinPowell
      @KevinPowell  Před 3 lety

      For accessibility reasons, it's really important not to set the html font size with a pixel value. Assume the default is 16, and use a percentage. You can still scale that number up and down within breakpoints :)

  • @tonybell1597
    @tonybell1597 Před 6 měsíci

    Thankyou! I’ve very recently arrived at coding a website for a group of people, having managed to avoid html, css and Java since Sir Tim B-L invented it! (Odd as I’ve been in this business for 40+ years) and now I’m here! Wow…. Thank you so much for your vids, they have been superb at explaining principles … keep up the grand work…

  • @ax-coding631
    @ax-coding631 Před 2 lety

    Really useful, thank you!

  • @stefanofrontani2220
    @stefanofrontani2220 Před 2 lety

    So clear. You've just won a new subscriber.

  • @joulesgarcia400
    @joulesgarcia400 Před 3 lety

    THANK YOU SO MUCH MAN!

  • @Vreth6
    @Vreth6 Před 3 lety +2

    You nailed the thumbnail on this one 😂

  • @maxwellandyaffanyi7499

    🙌🙌🙌👏.... You be CSS bossu 🥳🥳 😄Kudos from Ghana🇬🇭

  • @lostcarpark
    @lostcarpark Před 2 lety

    That's really helpful.
    I occasionally need to design things for print, and sometimes for label printers, so need to be able to control exact size on the page. I generally use cm or mm with media queries for these.

    • @KevinPowell
      @KevinPowell  Před 2 lety +1

      I come from a print background, and the idea of using fixed units like that in CSS scares me so much, lol. But it does the job!

    • @lostcarpark
      @lostcarpark Před 2 lety

      @@KevinPowell Absolutely. I think in most cases fixed units are to be avoid. There are just occasions when something needs go to a printer, and needs to fit precise measurements. Mostly this will be for admin pages that end users will never see.

  • @LuisReyes-zs4uk
    @LuisReyes-zs4uk Před 3 lety

    You're awesome, Kevin!

  • @haliszekeriyaozkok4851

    When ı wasn't know the difference between relative and absolute units ı used to the absolute units and because of that struggled with media queries. Thanks to Allah ı learned them and now my layouts even more responsive and ı don't use media queries too much.

  • @gikujo2659
    @gikujo2659 Před 10 měsíci

    Hi ! Thanks for this useful video. What about clamp for the font-size ? Do you think it's useful to adapt without using a media query, or using units like em and doing media querries would be enough ?

  • @troika_473h
    @troika_473h Před 3 lety

    Thank you for the video!

  • @md.farukuzzaman3911
    @md.farukuzzaman3911 Před rokem

    Kyle(WDS) said, you are the guru of css, i think you are also the guru in presentations.

  • @vasiovasio
    @vasiovasio Před 2 lety

    Great video! Thank you!

  • @DrewBombard
    @DrewBombard Před 2 lety

    Just found Kevin last week. Wow… so awesome and easy to understand examples and tutorials and … just amazing.

  • @irinakats8008
    @irinakats8008 Před rokem

    Hugely helpful for me as a newbie in CSS! Do we still use pixels to set dimensions of icons or position of absolute elements, the way I was taught in a course that I did?

  • @intelo6251
    @intelo6251 Před 3 lety

    Just love this guy!

  • @mmelimahlobo7656
    @mmelimahlobo7656 Před 10 měsíci

    I am forever grateful for having such people like you,every time I am stuck with css I know you will be the solution to my problem may the Lord increase you more and more

  • @TazExprez
    @TazExprez Před rokem

    Thanks a lot for this.

  • @claasgreeneye
    @claasgreeneye Před 3 lety

    I use pixels alot, thanks for sharing!

  • @centrumsaiyan7623
    @centrumsaiyan7623 Před 2 lety +1

    Noooooooooooo Why didn't I came across this channel earlier in my life.

  • @juanmadelaflor6406
    @juanmadelaflor6406 Před 3 lety

    Thanks Kevin!

  • @dragonore2009
    @dragonore2009 Před 3 lety

    Same here I don't use pixels as much anymore. For when I do use them, it's usually some margin left or right that needed 4px or something. The only big use I have for pixels is sometimes I will use them for min-widths where appropriate.

  • @angeh100
    @angeh100 Před 2 lety

    helped me very much. thanks

  • @0ddb1rd
    @0ddb1rd Před 2 lety

    Thank you so much!

  • @CharlesSmall
    @CharlesSmall Před 3 lety

    Thank you I never knew it at all.

  • @kudaykumar1261
    @kudaykumar1261 Před 2 lety

    Thank you so much sir.