Are you using the right CSS units?

Поделиться
HTML-код
  • Опубликовано: 2 июн 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 RUclips 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!

Комментарии • 464

  • @einfachnurlegendar7947
    @einfachnurlegendar7947 3 года назад +1666

    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 3 года назад +606

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

  • @andreschavarria7091
    @andreschavarria7091 3 года назад +358

    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 3 года назад +7

      All the best man ❤

    • @samuelgoncalves5616
      @samuelgoncalves5616 3 года назад +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 3 года назад +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 3 года назад +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 RUclips... sharing IS caring

    • @andreschavarria7091
      @andreschavarria7091 3 года назад +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 3 года назад +103

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

    • @ivanberdichevsky5679
      @ivanberdichevsky5679 3 года назад +3

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

    • @akifcankara2225
      @akifcankara2225 3 года назад +2

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

    • @sumitpurohit8849
      @sumitpurohit8849 3 года назад +3

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

    • @ari-mcbrown
      @ari-mcbrown 3 года назад +4

      weird flex, but okay

  • @jackr9122
    @jackr9122 3 года назад +1

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

  • @lordyc8393
    @lordyc8393 2 года назад +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

  • @patriknordberg1259
    @patriknordberg1259 3 года назад +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.

  • @TheMatcap1
    @TheMatcap1 3 года назад +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 2 года назад +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__ 3 года назад +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!

  • @maitolehrer2613
    @maitolehrer2613 3 года назад +1

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

  • @antoniomasotti8060
    @antoniomasotti8060 2 года назад

    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.

  • @rohitkf8474
    @rohitkf8474 2 года назад +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

  • @erichobbs4042
    @erichobbs4042 3 года назад +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.

  • @TheJacklwilliams
    @TheJacklwilliams 2 года назад +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.

  • @aceandember
    @aceandember 2 года назад

    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 3 года назад +1

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

  • @VasilyPavlik
    @VasilyPavlik 3 года назад +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!

  • @troelsrasmussen7457
    @troelsrasmussen7457 3 года назад

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

  • @Priority64
    @Priority64 3 года назад

    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.

  • @TheMoonLayingLow
    @TheMoonLayingLow 3 года назад

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

  • @yahayaoyinkansola8258
    @yahayaoyinkansola8258 3 месяца назад

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

  • @necroowl3953
    @necroowl3953 2 года назад +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.

  • @wickedwifestre
    @wickedwifestre 2 года назад

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

  • @Springfielde
    @Springfielde 3 года назад +8

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

  • @CodingNuggets
    @CodingNuggets 3 года назад +58

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

  • @lieutenantlascivious1992
    @lieutenantlascivious1992 3 года назад

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

  • @penggunayoutube2580
    @penggunayoutube2580 2 года назад

    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

  • @asdfasdfsdflk
    @asdfasdfsdflk 2 года назад

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

  • @nymusicman
    @nymusicman 3 года назад

    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.

  • @theorycreative
    @theorycreative 3 года назад +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!

  • @arceniocornejo6779
    @arceniocornejo6779 3 года назад +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.

  • @cmdaltctr
    @cmdaltctr 3 года назад

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

  • @tomasjsierra
    @tomasjsierra 2 года назад +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 2 года назад

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

  • @imluctor5997
    @imluctor5997 3 года назад +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.

  • @dimitrys.2494
    @dimitrys.2494 3 года назад

    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!

  • @doubledeckercouch6251
    @doubledeckercouch6251 3 года назад +2

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

  • @Coco-ii2pu
    @Coco-ii2pu Год назад +2

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

  • @0the0ambient0
    @0the0ambient0 3 года назад

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

  • @mikaockerman832
    @mikaockerman832 2 месяца назад

    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 2 года назад

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

  • @kblyr
    @kblyr 3 года назад

    Awesome! This is really very helpful, thank you!

  • @DANNFIGDESIGNS
    @DANNFIGDESIGNS Год назад

    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.

  • @shahshail12
    @shahshail12 2 года назад +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?

  • @MasayaShida
    @MasayaShida 3 года назад +12

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

  • @PaulNieman
    @PaulNieman Год назад

    Brilliant and helpful advice. Thank you.

  • @jovanlaguitao3384
    @jovanlaguitao3384 Год назад

    Very helpful Kevin thank you so much!!

  • @RahulKumar-jx5ku
    @RahulKumar-jx5ku 2 года назад

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

  • @mabelwin4779
    @mabelwin4779 2 месяца назад

    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❤🎉

  • @90kidsgamezone76
    @90kidsgamezone76 3 года назад

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

  • @tonybell1597
    @tonybell1597 6 месяцев назад

    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…

  • @snaydenoff
    @snaydenoff 3 года назад +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. ✌️

  • @ViorelMocanu
    @ViorelMocanu 3 года назад

    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

  • @mrx-qi8th
    @mrx-qi8th 3 года назад

    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

  • @Football__Junkie
    @Football__Junkie 3 года назад

    Great video. Actionable and to the point

  • @PlayRiteProductions
    @PlayRiteProductions 3 года назад

    Video is gold, thanks so much!

  • @TheDMaciek
    @TheDMaciek Год назад

    Thanks man! Great video

  • @stevepiraud7629
    @stevepiraud7629 3 года назад +2

    Awesome, like always!

  • @stefanofrontani2220
    @stefanofrontani2220 2 года назад

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

  • @mreclecticguy
    @mreclecticguy 3 года назад

    Extremely helpful, thank you.

  • @guillermoandradaFSD
    @guillermoandradaFSD 3 года назад +2

    Thank you so much... You channel is awesome

  • @thewadegreen
    @thewadegreen 3 года назад

    Another great video topic! Thanks!

  • @ax-coding631
    @ax-coding631 2 года назад

    Really useful, thank you!

  • @vasiovasio
    @vasiovasio 2 года назад

    Great video! Thank you!

  • @doug7897
    @doug7897 3 года назад +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.

  • @georgiosg9464
    @georgiosg9464 Год назад

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

  • @GR_BackingTracks
    @GR_BackingTracks Год назад

    @ 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.

  • @40ozTea
    @40ozTea 8 месяцев назад

    Great explanation!

  • @tommy6322
    @tommy6322 3 года назад +1

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

  • @DrewBombard
    @DrewBombard 2 года назад

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

    • @KevinPowell
      @KevinPowell  2 года назад

      So glad you're enjoying my content!

  • @huynh4128
    @huynh4128 3 года назад

    This is the video i needed right now

  • @maxwellandyaffanyi7499
    @maxwellandyaffanyi7499 2 года назад

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

  • @A_Lesser_Man
    @A_Lesser_Man 3 года назад +2

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

  • @shivanshshalabh
    @shivanshshalabh 3 года назад +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?

  • @lostcarpark
    @lostcarpark 2 года назад

    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  2 года назад +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 2 года назад

      @@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.

  • @williamboshi1855
    @williamboshi1855 3 года назад

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

  • @troika_473h
    @troika_473h 3 года назад

    Thank you for the video!

  • @haliszekeriyaozkok4851
    @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.

  • @mountainslopes
    @mountainslopes 3 года назад +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  3 года назад

      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 :)

  • @dragonore2009
    @dragonore2009 3 года назад

    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.

  • @SalmanSharieff-One
    @SalmanSharieff-One 3 дня назад

    I tend to use "em" for button padding, When text of my buttons are of different sizes, because if you are using fluid typography "em" will resize based on font size, much better alternative, since i use svg icons for my buttons.

  • @AnandKumarChaudhary
    @AnandKumarChaudhary 3 года назад

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

  • @angeh100
    @angeh100 2 года назад

    helped me very much. thanks

  • @micahhlc
    @micahhlc Год назад

    the best CSS teacher in youtube.

  • @intelo6251
    @intelo6251 3 года назад

    Just love this guy!

  • @LuisReyes-zs4uk
    @LuisReyes-zs4uk 3 года назад

    You're awesome, Kevin!

  • @TazExprez
    @TazExprez Год назад

    Thanks a lot for this.

  • @mechmaverick
    @mechmaverick 3 года назад

    literally subbing because the "ch" explanation

  • @joulesgarcia400
    @joulesgarcia400 3 года назад

    THANK YOU SO MUCH MAN!

  • @Andrei-xb1pz
    @Andrei-xb1pz 3 года назад

    Cool video! I don't like CSS but you make me hate it less

  • @mmelimahlobo7656
    @mmelimahlobo7656 10 месяцев назад

    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

  • @juanmadelaflor6406
    @juanmadelaflor6406 3 года назад

    Thanks Kevin!

  • @claasgreeneye
    @claasgreeneye 3 года назад

    I use pixels alot, thanks for sharing!

  • @rammaheshwari9748
    @rammaheshwari9748 3 года назад

    Very helpful video 👌

  • @slayerd52
    @slayerd52 2 года назад

    Great content!

  • @sundayuchegbu2060
    @sundayuchegbu2060 3 года назад

    Hi Kelvin, have been going through your channel and you are simply amazing

  • @kudaykumar1261
    @kudaykumar1261 2 года назад

    Thank you so much sir.

  • @not_amanullah
    @not_amanullah 3 месяца назад

    This is helpful ❤

  • @0ddb1rd
    @0ddb1rd 2 года назад

    Thank you so much!

  • @YannMetalhead
    @YannMetalhead Год назад

    Good explanation.