Kaip naudoti CSS, norėdami nustatyti HTML elemento aukštį iki 100%

Dažniausiai užduodamas svetainės dizaino klausimas yra "kaip jūs nustatote elemento aukštį iki 100%"?

Tai gali atrodyti kaip lengvas atsakymas. Jūs paprasčiausiai naudojate CSS, norėdami nustatyti elemento aukštį iki 100%, bet tai ne visada išplečia šį elementą, kad jis atitiktų visą naršyklės langą. Leiskite sužinoti, kodėl taip nutinka ir ką galite padaryti, kad pasiektumėte šį vaizdinį stilių.

Pikseliai ir procentai

Kai nustatote elemento aukštį naudodami CSS savybę ir vertę, kuri naudoja pikselius, tas elementas naršyklėje užims daug vertikalios erdvės.

Pavyzdžiui, pastraipa su aukščiu: 100 pikselių; jūsų dizainas užims 100 pikselių vertikalios erdvės. Nepriklausomai nuo to, kaip didesnis jūsų naršyklės langas, šis elementas bus 100 pikselių aukščio.

Procentai dirba skirtingai nei pikseliai. Pagal W3C specifikaciją, procentinis aukštis apskaičiuojamas atsižvelgiant į konteinerio aukštį. Taigi, jei jūs įtraukiate pastraipą su aukščiu: 50%; Viduje, kurio aukštis 100 pikselių aukštyje, pastraipa bus 50 pikselių aukščio, tai yra 50% jo pagrindinio elemento.

Kodėl procentų aukščio nepavyksta?

Jei kuriate tinklalapį ir turite stulpelį, kuriame norite užpildyti visą lango aukštį, natūraliu slenksiu reikia pridėti aukštį: 100%; prie šio elemento. Galų gale, jei nustatysite pločio plotį: 100%; elementas užims visą horizontalią puslapio erdvę, todėl aukštis turėtų veikti vienodai, ar ne? Deja, taip nėra.

Norėdami suprasti, kodėl taip nutinka, turite suprasti, kaip naršyklės interpretuoja aukštį ir plotį. Interneto naršyklės apskaičiuoja visą turimą plotį kaip funkciją, kiek atidaromas naršyklės langas. Jei nenustatysite jokių dokumentų pločio reikšmių, naršyklė automatiškai sukurs turinį, kad užpildytų visą lango plotį (numatytasis yra 100% plotis).

Aukščio vertė apskaičiuojama kitaip nei plotis. Tiesą sakant, naršyklės apskritai neįvertina aukščio, nebent turinys yra toks ilgas, kad jis eina už peržiūros srities ribų (taigi reikalauja slinkties juostų) arba jei interneto dizaineris nustato puslapio elemento absoliučią aukštį. Priešingu atveju naršyklė paprasčiausiai leidžia srautą matyti peržiūros srities plotyje, kol jis pasibaigs. Aukštis apskritai nėra apskaičiuotas.

Problemos kyla, kai nustatote procentinį aukštį elemente, kurio pagrindiniai elementai nenustatyti aukštyje - kitaip tariant, tėvų elementai turi numatytąsias aukštis: automatinis; . Iš tikrųjų esate paprašę naršyklės apskaičiuoti aukštį nuo neapibrėžtos vertės. Kadangi tai būtų lygi nulio vertei, rezultatas yra tas, kad naršyklė nieko nedaro.

Jei norite nustatyti aukštį savo tinklalapiuose procentais, turite nustatyti kiekvieno tėvo elemento aukštį, kurio norėtumėte nustatyti aukštį. Kitaip tariant, jei turite tokį puslapį:





Turinys čia



Tikriausiai norėtumėte, kad div ir jo dalis būtų 100% aukščio, tačiau div turi du pagrindinius elementus:

ir Norint nustatyti div aukštį santykiniam aukščiui, turite nustatyti kūno aukštį ir html elementus.

Taigi, jums reikės naudoti CSS, norėdami nustatyti ne tik divo aukštį, bet ir kūno ir html elementus. Tai gali būti iššūkis, nes jūs galite greitai įstrigti, jei viskas bus 100% aukščio, kad pasiektumėte pageidaujamą efektą.

Kai kurie dalykai, į kuriuos reikia atkreipti dėmesį, kai dirbate su 100% aukščio

Dabar, kai žinote, kaip nustatyti puslapio elementų aukštį iki 100%, gali būti įdomu išeiti ir tai padaryti visais savo puslapiais, tačiau yra keletas dalykų, kuriuos turėtumėte žinoti:

Norėdami išspręsti šią problemą, galite nustatyti elemento aukštį. Jei jį nustatysite automatiškai, bus rodomos slinkties juostos, jei jos bus reikalingos, bet išnyks, kai jos nebus. Tai sutvarko vizualinę pertrauką, tačiau ji prideda slinkties juostas, kur jūs nenorite jų.

"Viewport" vienetų naudojimas

Kitas būdas, kaip išspręsti šią problemą, yra eksperimentuoti su CSS "Viewport" vienetais. Naudodami peržiūros srities aukščio matavimo vienetą, dydžio elementai gali užimti nustatytą peržiūros srities aukštį, o tai pasikeis, kai keičiasi peržiūros sritis! Tai puikus būdas pasiekti 100% aukščio vaizdo įrašus puslapyje, tačiau jie vis tiek turi būti lankstūs skirtingiems įrenginiams ir ekranų dydžiui.