Homepage » Coding » Útmutató a CSS Viewport egységhez vw, vh, vmin, vmax

    Útmutató a CSS Viewport egységhez vw, vh, vmin, vmax

    Viewport-százalékos hossz, vagy nézetablak-egységek mivel ezek gyakrabban hivatkoznak, olyan érzékeny CSS egységek, amelyek lehetővé teszik a méretek meghatározását a nézetablak szélességének vagy hosszának százalékában. A Viewport egységek nagyon hasznosak lehetnek olyan esetekben, amikor más érzékeny CSS egységek, mint például a százalékok nehéz dolgozni.

    Habár A W3C dokumentációja a nézetablak-egységek mindent tartalmaznak, amit elméleti szempontból lehet bevezetni, ez nem túl nagy. Tehát ebben a cikkben megnézzük, hogy ezek a CSS-egységek hogyan a gyakorlatban.

    Viewport magassága (vh) & viewport szélessége (vw)

    W3C meghatározza a nézetablakot mint “a kezdeti tartalmú blokk mérete”. Más szóval, a nézetablak a terület a böngészőablakban vagy bármely más megtekintési terület a képernyőn.

    A vw és vh egységek álljon a tényleges nézetablak szélességének és magasságának százalékos aránya. Értéket kaphatnak 0 és 100 között a következő szabályok szerint:

     100vw = 100% a nézetablak szélességének 1vw = 1% -a nézetablak szélességének 100vh = 100% -a nézetablak magasságának 1vh = 1% -a nézetablak magassága 
    Különbségek a százalékos egységekhez

    Szóval, hogyan különböznek a nézetablakok a százalékos egységektől? Százalékos egységek örökölje a szülőelem méretét míg a nézetablak-egységek nem. A Viewport egységeket mindig a (z) a nézetablak méretének százalékos aránya. Ennek eredményeként a viewport egységek által definiált elem meghaladhatja a szülő méretét.

    Példa: Teljes képernyős szakaszok

    Teljes képernyős szakaszok valószínűleg a nézetablak-egységek legismertebb felhasználási esetei.

    A A HTML nagyon egyszerű; csak van három szakasz egymás alatt és azt akarjuk, hogy mindegyikük legyen fedje le a teljes képernyőt (de nem több).

      

    A CSS-ben használjuk 100vh mint a magasság érték és 100% mint szélesség. Nem használjuk vw alapértelmezés szerint, a görgetősávok is hozzáadódnak a nézetablak méretéhez. Tehát, ha ezt használjuk szélesség: 100vw; a szabály vízszintes görgetősáv megjelenik a a böngészőablak alján.

     * margó: 0; párnázás: 0;  szekció háttérméret: borító; háttérpozíció: központ; szélesség: 100%; magasság: 100vh;  .section-1 háttérkép: url ('https://assets.hongkiat.com/uploads/css-viewport-units-vw-vh-wmin-vmax/img1.jpg');  .section-2 háttérkép: url ('https://assets.hongkiat.com/uploads/css-viewport-units-vw-vh-wmin-vmax/img2.jpg');  .section-3 háttérkép: url ('https://assets.hongkiat.com/uploads/css-viewport-units-vw-vh-wmin-vmax/img3.jpg');  

    Az alábbi gif demóban láthatjuk ezt vh jelentése valóban érzékeny egység.

    A fent említett W3C dokumentumok szerint vízszintes görgetősáv kérdés megoldható a túlcsordulás: auto; szabály a gyökér elemre. Ez a megoldás csak részben működik, bár. A vízszintes görgetősáv valóban eltűnik, de szélesség jelentése A nézetablak szélessége alapján még mindig kiszámítható (az oldalsáv is benne van), így az elemek kissé nagyobbak lesznek, mint amilyennek kellene lennie.

    Azt mondanám, nem merném használni vw egység be a teljes képernyős elemek méretezése emiatt. Nem is kell rá, mint a szélesség: 100%; szabály tökéletesen működik. A teljes képernyős elrendezésekkel az igazi kihívás mindig az volt, hogy hogyan állítsa be a megfelelő magasságértéket és a vh az egység ragyogó megoldást kínál erre.

    Egyéb felhasználási esetek

    Ha érdekel egyéb felhasználási esetek vw és vh Lullabotnak van egy nagyszerű cikke, amely felsorolja az a maroknyi valós példák (a Codepen demókkal), például:

    • Rögzített arányú kártyák.
    • Az elem rövidebb, mint a képernyő.
    • Szöveg méretezése.
    • Lépjen ki a tartályból.

    Az Opera.dev-nek is van egy rövid bemutatója arról, hogyan lehet a tőkeáttételét kihasználni vw egység érzékeny tipográfia létrehozása.

    Nem csak a viewport egységeket használhatja a szélesség és magasság tulajdonságait, de bármely másra. Például lehet állítsa be a párnák és margók méretét használni a vw és vh egységeket is.

    Viewport min.vmin) & viewport max.v)

    A vmin és v az egységek lehetővé teszik a a kisebb vagy nagyobb oldal mérete nézetablak, az alábbi szabályok szerint:

     100vmin = 100vw vagy 100vh, attól függően, hogy melyik kisebb 1vmin = 1vw vagy 1vh, attól függően, hogy melyik kisebb 100vmax = 100vw vagy 100vh, attól függően, hogy melyik nagyobb 1vmax = 1vw vagy 1vh, attól függően, hogy melyik nagyobb 

    Tehát az a álló tájolás, 100vmin egyenlő 100vw, mint a nézetablak kisebb, mint függőlegesen. Ugyan azért az okért, 100vmax egyenlő lesz 100vh.

    Hasonlóképpen az a táj tájolás, 100vmin egyenlő 100vh, mint a nézetablak kisebb, mint vízszintesen. És természetesen, 100vmax egyenlő lesz 100vw itt.

    Példa: Hős szövegek olvasása minden képernyőn

    A vmin és v sokkal kevésbé ismertek, mint a vw és vh. Ezek azonban kiválóan használhatók helyettesíti az orientációt @média lekérdezések. Például, vmin és v hasznos lehet, ha olyan elemei vannak, amelyek furcsaak lehetnek különböző képarányokban.

    Az új kódnak nagyszerű bemutatója van, amelyben megvitatják, hogyan lehet tartsa a hős szöveg olvashatóvá minden képernyőn a vmin egység. A hős szövegek hajlamosak kinézni túl kicsi a mobilon és túl nagy a nagy monitorokon.

    Itt van a megoldásuk ötlete:

     h1 font-size: 20vmin; font-család: Avenir, sans-serif; font-súly: 900; szöveg-igazítás: központ;  

    A Codepen demóban megtekintheti, hogyan vmin megoldja a hősszövegek olvashatósági problémáját. Hozzáférés a “Teljes oldal” akkor nézd meg a Codepent átméretezheti a böngésző ablakát vízszintesen és függőlegesen, hogy megnézze, hogyan változik a hős szöveg.

    Böngésző támogatás

    Mint látható az alábbi CanIUse diagramon, A böngésző támogatása viszonylag jó a viewport egységekhez. Ne feledje azonban, hogy az IE és az Edge egyes verziói nem támogatják v. Az iOS 6 és 7 is problémát okoz a vh egység, amelyet iOS 8-ban rögzítettek.