Et almindeligt stillet spørgsmål i website design er "hvordan sætter du højden på et element til 100%"?
Dette kan virke som et let svar. Du bruger simpelthen CSS til at indstille højden af et element til 100%, men det strækker ikke altid elementet, så det passer til hele browservinduet. Lad os finde ud af, hvorfor dette sker, og hvad du kan gøre for at opnå denne visuelle stil.
Pixel og procentdele
Når du definerer højden af et element ved hjælp af CSS-egenskaben og en værdi, der bruger pixels, vil elementet optage så meget vertikalt rum i browseren. For eksempel et afsnit med a
højde: 100px;
vil optage 100 pixel af lodret plads i dit design. Det er ligegyldigt, hvor storere dit browservindue er, dette element vil være 100 pixels i højden. Procentdelerne fungerer forskelligt fra pixel. Ifølge W3C-specifikationen beregnes procentdel højder i forhold til beholderens højde. Så hvis du lægger et afsnit med a højde: 50%;
inde i en div med en højde på 100 px, stykket vil være 50 pixels i højden, hvilket er 50% af dets overordnede element. Hvis du designer en webside, og du har en kolonne, som du gerne vil opsætte vinduets fulde højde, er den naturlige tilbøjelighed at tilføje en højde: 100%;
til det element. Når alt kommer til alt, hvis du indstiller bredde
til bredde: 100%;
elementet vil tage det fulde vandrette rum på siden, så højde
skal arbejde det samme, ikke? Desværre er det slet ikke tilfældet. For at forstå, hvorfor dette sker, skal du forstå, hvordan browsere fortolker højde og bredde. Webbrowsere beregner den samlede tilgængelige bredde som en funktion af, hvor bredt browservinduet åbnes. bredde
Hvis du ikke angiver værdier på dine dokumenter, flytter browseren automatisk indholdet til at fylde hele bredden af vinduet (100% bredde er standard). Højdeværdien beregnes forskelligt fra bredden. Faktisk vurderer browsere slet ikke højden, medmindre indholdet er så langt, at det går uden for visningsporten (dermed kræver rullefelter), eller hvis webdesigneren angiver et absolut for et element på siden. højde
Ellers tillader browseren blot indholdsstrømmen inden for bredden af visningsporten, indtil den kommer til slutningen. Højden beregnes slet ikke. Problemer opstår, når du indstiller en procentdel højde på et element, der har forældreelementer uden højder indstillet - med andre ord, hovedelementerne har en standard. højde: auto;
Du beder faktisk browseren om at beregne en højde fra en ikke-defineret værdi. Da det ville svare til en nullværdi, er resultatet at browseren ikke gør noget. Hvis du vil sætte en højde på dine websider til en procentdel, skal du indstille højden af hver overordnet element i den ønskede højde. Med andre ord, hvis du har en side som denne: Indhold her
Du vil sandsynligvis have det div
og stykket i det for at have en 100% højde, men den div har faktisk to overordnede elementer: og. For at definere højden af div
til en relativ højde, skal du indstille højden af legeme
og html
elementer også. Så du skal bruge CSS til at indstille højden på ikke kun div men også kroppens og HTML-elementerne. Dette kan være en udfordring, da du hurtigt kan blive overvældet med alt, hvad der er sat til 100% højde, kun for at opnå denne ønskede effekt. Nu hvor du ved, hvordan du sætter højden på dine sideelementer til 100%, kan det være spændende at gå ud og gøre det til alle dine sider, men der er et par ting du bør være opmærksom på: For at rette dette kan du også indstille elementets højde. Hvis du sætter det på auto,
rullebjælker vises, hvis de er nødvendige, men forsvinder, når de ikke er.Det løser den visuelle pause, men det tilføjer scrollbars, hvor du måske ikke vil have dem. En anden måde at løse denne udfordring på er at eksperimentere med CSS Viewport Units. Ved at bruge måleenhedens visningshøjde kan du dimensionere elementer for at tage en defineret højde af visningsporten, og det vil ændre sig, da visningsporten ændres! Dette er en fantastisk måde at få dine 100% højde visuelle på en side, men stadig få dem til at være fleksible til forskellige enheder og skærmstørrelser. Hvorfor procentdel højder fejler
Nogle ting at bemærke, når du arbejder med 100% højder
Brug af Viewport Units