Use these instead of vh

Поделиться
HTML-код
  • Опубликовано: 4 фев 2025
  • Looking to step up your CSS game? 👉 kevinpowell.co... I have a bunch of courses, including several free ones.
    I see people use `vh` a lot, and then complain that it doesn’t work the way they thought it would, so in this one, I explore a few other options that we have, which are `dvh`, `svh`, and `lvh`. Along with these, you could also use `dvb`, `svb`, and `lvb`, which are the logical property version of the height units, but for the block-size.
    🔗 Links
    ✅ The example page: viewport-unit-...
    ✅ The GitHub repo: github.com/kev...
    ✅ Up to date browser support: caniuse.com/md...
    #css
    --
    Come hang out with other dev's in my Discord Community
    💬 / discord
    Keep up to date with everything I'm up to
    ✉ www.kevinpowel...
    Come hang out with me live every Monday on Twitch!
    📺 / kevinpowellcss
    ---
    Help support my channel
    👨‍🎓 Get a course: www.kevinpowel...
    👕 Buy a shirt: teespring.com/...
    💖 Support me on Patreon: / kevinpowell
    ---
    My editor: VS Code - code.visualstu...
    ---
    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.
    Twitter: / kevinjpowell
    Codepen: codepen.io/kev...
    Github: github.com/kev...
    ---
    And whatever you do, don't forget to keep on making your corner of the internet just a little bit more awesome!

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

  • @fersahahmet9597
    @fersahahmet9597 Год назад +452

    You are King of CSS not necessarily because you know everything but a very deep understanding of what you are talking about which i personally love and admire the most about you. Thank you Kevin for every single effort of you

    • @BGdev305
      @BGdev305 11 месяцев назад

      ditto!

  • @TomasMisura
    @TomasMisura 10 месяцев назад +23

    As a casual web developer, it's challenging to keep up with all the changes and recommendations, so I'm grateful that someone like you is undertaking this and providing us with all that information.

  • @Glittery_Magic
    @Glittery_Magic 11 месяцев назад +12

    I normally ALWAYS have questions when learning. You cover all the nuances so well I have no questions only full clarity. Excellent Ive subscribed.

  • @arjunjayakumar4841
    @arjunjayakumar4841 Год назад +167

    The timing. I was fixing a layout and was experimenting with dvh. Will surely try out svh as well. Thanks Kevin

    • @ryrilya2289
      @ryrilya2289 Год назад +1

      Same here 😅

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

      How did it go?

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

      How did it go?

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

      bro can you tell me difference between vh, Lvh, svh and dvh.coz i am not understanding it

  • @Hataken999
    @Hataken999 Год назад +5

    The timing couldn't be more perfect. I was creating a "Coming Soon" page and when I was working on the mobile version, the footer and hamburger menu sidebar were overflowing with 100vh. I was stuck trying to find a solution, but then I came up with a dynamic vh solution using JavaScript, and it worked really well (even though it took me almost 3 hours to figure it out).
    And now you post a video, showing me a super simple way to fix it 😂😂

  • @bossaddict08
    @bossaddict08 Год назад +24

    You know what, your content is a step above most other channels regardless of content type. Keep doing what you do please. I think you're excellent.

  • @jaimemartin1932
    @jaimemartin1932 Год назад +5

    I just started using dvh to avoid some issues, and now I discover that svh is even better. Thanks.

  • @houssembenothmen7250
    @houssembenothmen7250 Год назад +66

    svh is not just better
    u have to do it as for the performance tests you will always find the CLS (cumulative layout shift) and definetly the dvh may cause problem there in tests

  • @Dexter101x
    @Dexter101x Год назад +534

    Just when I got to use the vh properly, lol

    • @Rhidayah
      @Rhidayah Год назад +38

      Me with big brain using 100%

    • @elpioterro
      @elpioterro Год назад +5

      I have the same situation haha

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

      The guy is a developer - streamer, not the CSS god who is commanding you something. If 100vh that’s working for you and you do it right, keep it up.

    • @rokoderechte
      @rokoderechte Год назад +5

      Well its the same thing anyways

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

      😂

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

    You are the best tutor in teaching CSS. The one reason being you explain in detail and help to understand better the properties and their use cases :D

  • @abhishek_23685
    @abhishek_23685 6 месяцев назад +1

    1:09 DVH - Dynamic
    2:26 SVH - Smallest
    3:11 LVH - Largest

  • @EvgenyOrekhov
    @EvgenyOrekhov Год назад +137

    Even better: use dvb/svb/lvb.
    These are called "logical units", and they will respect the writing mode.
    "b" stands for "block", which is the dimension perpendicular to the flow of text within a line, i.e., the vertical dimension in horizontal writing modes, and the horizontal dimension in vertical writing modes.

    • @msweblearner
      @msweblearner Год назад +1

      Thanks

    • @tebesvet
      @tebesvet Год назад +4

      It's just a different use case, I assume? The video describes a situation when you need an element with 100% height of viewport.

    • @matt42hughes
      @matt42hughes Год назад +3

      why would you want any element to be 100% height with horizontal writing mode but 100% width when it’s vertical. isn’t that what respecting the writing mode would do?

  • @hariskhan2454
    @hariskhan2454 Год назад +2

    Amazing Man... I just had an issue and from 100vh went to 95vh for Mobile view, but now I think I'll use svh for mobile view !

  • @Wynorrific1
    @Wynorrific1 Год назад +2

    Great content, you helped me learn HTML, CSS and, SCSS. I'm now learning JavaScript. Have a blessing day.

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

    Luckily and accidentally i used svh through vs code suggestions, and it fixed the issue i had with the vh in mobile screens. I didn't really knew what svh was back then but i was super pumped up to see that it worked like a charm

  • @deliriumcode
    @deliriumcode Год назад +3

    Believed or not - one of your most powerful videos. Short and sorts a years of problems. :)

  • @a1white
    @a1white Год назад +1

    Useful! Looks like I’ll be switching my vh to svh from now on. Thanks

  • @gabydewilde
    @gabydewilde Год назад +6

    Welcome to another episode of new units to work around issues with old units but have issues of their own. Of course you could also use: bottom but I get that that isn't the point of the exercise.
    We kinda needed a new way to make pages jump up and down now that most of the old methods have been fixed.

    • @Lumiden
      @Lumiden 11 месяцев назад +1

      Not really, these units were just not necessary before mobiles started having a dynamic height.

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

    Thank you, I have dealt with the vh problem quite a bit, and didn't know about the new dimensions.

  • @worthsalive
    @worthsalive Год назад +4

    I think applying transition on the Hight property will take care of the jumps in with dvh. It will be cool if the jump is rather a smooth stretch.

  • @truthteachers
    @truthteachers Год назад +1

    Love all the short hints and help from you, bro. Shor, simple nd extremely helpful. Keep them coming. I try to give back something whenever i can.

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

    When I saw the thumbnail, I thought this is absolutely clickbait. What could be better then vh? But this is really great!

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

    Thanks Kevin. I had this exact problem and I just skipped it, because I couldn't find the perfect solution. Now this video showed up to me and it's so easy :)

  • @martinlottering9048
    @martinlottering9048 11 месяцев назад

    Thanks for the easy to understand explanation. I used to think these concepts would just be out of reach for me. 🎉 I struggle a bit with html and css. I think it is because I started with winforms and then later xaml.

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

    I have been using dvh and didn't realize that it was causing the layout shift, I guess I will be using svh instead. Thanks for the video.

  • @andreasorourke4252
    @andreasorourke4252 Год назад +3

    I'm getting into freelance development and your channel is super helpful!

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

    Oh ya! Did I struggle with this a while ago till I found those units. Thanks for the reminder.

  • @SolidWorksMastery-hr4sg
    @SolidWorksMastery-hr4sg 10 месяцев назад +1

    Fun Fact : the :D sign or emoji (in the chrome toolbar) instead of numbers it mean like there is already more than 99+ tab opened
    funny that Kevin too have the habit of not closing tabs XD..........sometimes i make it change to this emoji ;) if in incognito but i don't know the number

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

    Will certainly try this out. Have been using 95vh or so for mobile to fix this, but it's a bit unpredictable.

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

    omg, someone who actually taught me something i didn't know, thanks kev!

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

    I like to use an outer element with 100vh to prevent page to shift height, and then use an inner element with 100dvh to adjust the for objects placement in the wiewport.

  • @mefesto_
    @mefesto_ Год назад +1

    I tried to use 100dvh, but my clients don't like to see layout jump when scrolling the page. I will try to use 100svh :)
    Nice video!

  • @stefan5673
    @stefan5673 Год назад +5

    Thank you for your Videos

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

    you help us so much Powell ........wish i had financial means to support you☺☺☺

  • @kuan-weihuang5214
    @kuan-weihuang5214 4 месяца назад

    Thank you, you solved my problem.
    really helpful. I wish you a good day.

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

    Apparently it's already supported more than 98% by now. Really comes in handy to know about it right now. Working on my first mobile application.

  • @refeals
    @refeals Год назад +1

    love how they made it super trivial to solve a problem that was super annoying to handle

  • @katlegomonama5824
    @katlegomonama5824 Год назад +1

    We having that CSS convo , About that time!

  • @pagarevijayy
    @pagarevijayy 11 месяцев назад

    good one. i didn't even know this existed. no time to catchup. thanks for this!

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

    I had no idea about vh, never mind dvh, svh, lvh. Very clear explanations and demo!
    I would subscribe, except I'm already subscribed :)

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

    Thank you for explanation, 0:57

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

    My No.1 channel for CSS content!

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

    This is awesome!!! Way better than using calc(100vh - computed height of UI element ). Thanks ))

  • @МухамметКурбаназаров

    Life saving. I was having headache with it. Thank you soooooo much❤

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

    For me this is useful in media queries since you've mentioned that vh doesn't have problem on desktops but only on mobile view

  • @smorebytes
    @smorebytes Год назад +2

    God such great content I need to support you like yesterday.

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

    Anyway Everyone can do they own way of CSS - The Dev Tool is way to test and see what's new and what values and units are included and supported by your Browser Inspect Tool. Especially for CSS - when you type your new or select class or id hit the Tab and you will see all available values for the CSS attribute you want to edit, change or check.

  • @TysonBrady
    @TysonBrady 8 месяцев назад +1

    I used svh, dvh and lvh for a project a few months ago and during user testing had complaints from everyone using Apple devices because they weren't working properly (like not at all). Never again, at least not for a few years.

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

    I used dvh in one of my projects, it was my first time using it, when i saw the scrolling in mobile i had no idea what was happening, took me some time to discover the issue was being caused by this dynamic heights, and yeah, svh solved the issue

  • @iam_spaceCabbage
    @iam_spaceCabbage Год назад +1

    I just spent a few hours today working on this exact issue and suddenly i find this in my feed, the algorithm is pranking me

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

    Great content and a big plus for the Star Wars + the 'too many' tabs in Chrome.😁

  • @twentytwoalchemy
    @twentytwoalchemy 11 месяцев назад

    Thanks for sharing. Im new to your channel and really enjoy your teaching style.

  • @gbonariva
    @gbonariva Год назад +6

    @KevinPowell, in case you are short of ideas for new videos, I would like to understand how you manage the Cumulative Layout Shift (CLS) issues that occur by adding to the page some dynamic elements, fonts, s, etc.

    • @silent_syntax
      @silent_syntax Год назад +1

      If you are talking about dynamic elements that are loading when the page loads, you could use skeleton loaders like RUclips does to make up for the space they will take once they fully show up. :)

  • @pibbz13
    @pibbz13 Год назад +2

    After you mentioned this svh in an earlier video, i've been in love with it ever since. It's now a staple in all my projects 👍

  • @mlizano6793
    @mlizano6793 7 месяцев назад

    this is very usefull, thanks for te information, greetings from Costa Rica, Pura Vida! ✌

  • @TheBoysMemes123
    @TheBoysMemes123 11 месяцев назад

    I was suffocating but after adding dvh instead of vh it works and love from my heart

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

    Omg having troubles with this kind of problem THANK YOU BIG SO VERY MUCH!!

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

    This is awesome! Solves mobile browser UI overlaps

  • @nathanconlon738
    @nathanconlon738 Год назад +1

    Wow, this is perhaps *the* most helpful video I've seen on CSS. I'm currently building a UI for my university and the vh was an annoying issue. I'd resorted to something like calc(100vh - 170px) for the height, but I can see that svh is much better. Thank you!

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

      you could have used javascript. by setting your div height equals to -- window.innerHeight+"px" --

  • @evansvibetv1237
    @evansvibetv1237 Год назад +4

    I would love to see more videos of javascript from your contents... I love your teachings.

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

    I love your videos, Kevin! You're my goto when I want to learn new things about CSS.

  • @nomadshiba
    @nomadshiba 18 дней назад

    instead use, vb, dvb, svb and lvb
    as well as vi, dvi, svi and lvi
    always use block/inline, over width/height
    also it's useful to have this in your root as default:
    :root {
    overflow-block: auto;
    inline-size: 100%;
    }
    so when you use `writing-mode: sideways-lr;` or other writing modes, everything just works.

  • @gunnercat8045
    @gunnercat8045 7 месяцев назад

    actually, sometime this problem happen on desktop, for example when you have a horizontal scrollbar, and then you set the height to 100vh, it will have this problem

  • @ahooton
    @ahooton Год назад +4

    I've just tested this out in my current project... Indeed, for most things, svh seems to work better on mobile than dvh. The one exception is for my background overlay effect, which covers the mobile viewport more accurately when set to dvh.

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

    He is just like a gold mine but for CSS stuff! Great videos!

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

    Really usefull rules, thank you for informing about these new features of CSS

  • @rand0mtv660
    @rand0mtv660 Год назад +8

    Recently dvh was useful to me for a fixed collapsed menu on mobile. There is no layout shift there because the element is a fixed menu and when I was using vh, bottom of the menu would get cut off in certain cases because of browser UI pushing it down. Using dvh it worked in all cases as I wanted it so that was nice.

  • @mossawirtech2531
    @mossawirtech2531 11 месяцев назад

    Wish i knew that year ago. I code the js hell out of it to fix the address bar issue on iphone.

  • @simonchainbers8943
    @simonchainbers8943 3 месяца назад +1

    I used 100svh in my code and it completely broke my site, spent hours looking for an error only to realise the problem was right infront of me (100svh), these view port units are not supported by all browsers especially old browsers. Fixed it by putting 100vh as a fall back.

  • @tehoko
    @tehoko Год назад +5

    I'm definitely going to be using lvh for one thing: full-page background images. With vh or dvh they'll get resized, which isn't a desirable side effect of scrolling. With lvh the image will always stay the same size.

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

    very useful info, thank you Kevin

  • @rusul.994
    @rusul.994 Год назад

    Oh ,thank you so much .. i was suffering from this problem❤

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

    Love your sweatshirt and the video, of course!

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

    OMG thank you. been trying to find hacks around this for years

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

    New suscriber, this video or the tittle in this one catch my attention . And Later Here you are! Great content

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

    You've fixed my life. Thanks a lot.

  • @DayrateNiterate
    @DayrateNiterate 4 месяца назад

    Really cool I’m gonna try.

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

    Thanks, good to know it wasn't only me that was getting that 'mini-jump' on scroll, thanks - phew!

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

    Oh my god. I was having this exact issue with fenagling vh on a static site that doesn't scroll but fills the viewport, instantly fixed with one extra letter lmao thank you based css god

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

    Interesting useful information about css. Thanks a lot.

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

    Awesome Explanation! Loved It...

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

    This is BRILLIANT. Thank you!

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

    Wow I didn't know or realize there was others besides dvh I thought it was only dvh and vh thanks :)

  • @NaniwaRocky
    @NaniwaRocky Год назад +1

    Hey Kevin, an important question! I haven't seen many CSS guru's on YT tackle this problem and so I am wondering if it is only me that encounters it. I have noticed that most people over the age of 45+ tend to have their windows system set to a zoom of 125% or 150%, this zoom tends to break the original style defined for the site when viewed at a normal zoom of 100%. How do you handle these situations ? I mainly use TailwindCSS for my styling, I don't know if it is a specific problem of TailwindCSS where the class uses pixels instead of rem and such... My only solution up till now is to generate a special media query for these 125 and 150 zoom cases and define a rule to zoom out a bit so it looks more faithful to the original design. Many thanks for your genius content!!!
    (example: @media (-webkit-device-pixel-ratio: 1.25) {
    * {
    zoom: 0.99;
    }
    })

    • @parves
      @parves Год назад +1

      You don't necessarily need a specific zoom media query. If you use relative properties and appropriately implement media queries for different sizes, zoom effects can be minimized, if not entirely mitigated.
      It's important to note that zooming primarily alters the appearance by making the screen pixel size appear larger or smaller. For instance, on my Full HD monitor, the viewport width is normally 1920px. However, at 110% zoom, it becomes 1745px, at 125% it's 1536px, and at 150%, it resembles a HD monitor with 1280px width.
      So, if you've got those media queries set up for different screen sizes, they should still work fine, even when someone zooms in or out.

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

      Thanks for the good explanation! :)@@parves

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

    Thanks for addressing my question!

  • @shohelrana-dev
    @shohelrana-dev Год назад

    I am searching for this solution. thank you.

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

    This has been huge for web GIS applications since they are typically full screen.

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

    Best CSS teacher.

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

    Sadly dvh is bugged on Chrome Android when you make a fullscreen request when the browser header isn’t already visible. It makes the content height even larger than 100vh because it adds the browser header’s height once more in fullscreen when it isn’t supposed to.

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

    Thanks man. This was helpful.

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

    Mr KP! Awesome, always.

  • @FurqanHun
    @FurqanHun 9 месяцев назад

    i recently learned instead of hard coding the values i could use vh/vw and was wondering if there was a way to fix the viewport problem on smaller screens, looks like im gonna use svh a lot, thanks

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

    That’s nice but it’s always worth asking: is it ready for the production?
    I checked caniuse, so looks like there is only one known issue, the major one though:
    Safari 15.6 on macOS has an issue where dvh is larger than expected (242758).

  • @Manas-co8wl
    @Manas-co8wl Год назад

    I was just going to use vh then I saw this. Thanks again

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

    ohhh this could be a nice css puzzle to post about

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

    It's a good solution but which value do you use in 100% height mobile navigations?
    We're using a Javascript solution atm. 😅

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

    Thanks for the explanation 👍

  • @tgdb-ace
    @tgdb-ace Год назад

    Flexbox can do this though, it's cool to know this too

  • @sharkinahat
    @sharkinahat Год назад +1

    There's also svmin, lvmin, and dvmin, as well as svmax, lvmax, and dvmax... Thanks Mr-Who-Invented-The-Auto-Hide-Address-Bar '-_-

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

    WOW, VERY GOOD! I needed that already years ago! Thank you! Is there some way how to affect FONT SIZE (e.g. much LARGER FONTS on much smaller devices?), or on portrait vs landscape?

    • @johan148
      @johan148 Месяц назад

      You can take advantage of using rem as unit and setting those layouts on media querys when setting the px x unit for the rem