Et vanlig spørsmål i webdesign er "hvordan setter du høyden på et element til 100%"?
Dette kan virke som et enkelt svar. Du bruker bare CSS til å sette høyden på et element til 100%, men dette strekker ikke alltid elementet slik at det passer hele nettleservinduet. La oss finne ut hvorfor dette skjer og hva du kan gjøre for å oppnå denne visuelle stilen.
Piksler og prosenter
Når du definerer høyden på et element ved hjelp av CSS-egenskapen og en verdi som bruker piksler, vil elementet ta opp så mye vertikal plass i nettleseren. For eksempel, et avsnitt med a
høyde: 100px;
vil ta opp 100 piksler med vertikal plass i designet. Det spiller ingen rolle hvor større ditt nettleservindu er, dette elementet vil være 100 piksler i høyden. Prosentene fungerer annerledes enn piksler. I henhold til W3C-spesifikasjonen beregnes prosenthøyder i forhold til beholderens høyde. Så hvis du legger et avsnitt med a høyde: 50%;
innenfor en div med en høyde på 100 px, vil avsnittet være 50 piksler i høyden, som er 50% av dets overordnede element. Hvis du designer en nettside, og du har en kolonne som du vil ta opp hele høyden på vinduet, er den naturlige tilbøyeligheten å legge til en høyde: 100%;
til det elementet. Tross alt, hvis du setter bredde
til bredde: 100%;
elementet vil ta opp hele horisontal plass på siden, så høyde
skal fungere det samme, ikke sant? Dessverre er dette ikke tilfelle i det hele tatt. For å forstå hvorfor dette skjer, må du forstå hvordan nettlesere tolker høyde og bredde. Nettlesere beregner total tilgjengelig bredde som en funksjon av hvor bredt nettleservinduet åpnes. bredde
Hvis du ikke angir noen verdier på dokumentene dine, vil nettleseren automatisk flyte innholdet for å fylle hele bredden av vinduet (100% bredde er standard). Høydeverdien beregnes annerledes enn bredden. Faktisk vurderer nettlesere ikke høyden med mindre innholdet er så langt at det går utenfor visningsporten (dermed krever rullestenger) eller hvis nettdesigneren setter en absolutt for et element på siden. høyde
Ellers lar nettleseren innholdsstrømmen innenfor bredden av visningsporten til den kommer til slutten. Høyden beregnes ikke i det hele tatt. Problemer oppstår når du angir en prosenthøyde på et element som har foreldreelementer uten høyder - det vil si at hovedelementene har en standard. høyde: auto;
Du ber i realiteten at nettleseren skal beregne en høyde fra en udefinert verdi. Siden det ville være en nullverdi, er resultatet at nettleseren ikke gjør noe. Hvis du vil sette en høyde på websidene dine til en prosentandel, må du sette høyden på hver Foreldreelementet til den du ønsker definert høyde. Med andre ord, hvis du har en side som dette: Innhold her
Du vil sannsynligvis ha det div
og avsnittet i det å ha en 100% høyde, men det div faktisk har to foreldreelementer: og. For å definere høyden på div
Til en relativ høyde, må du sette høyden på kropp
og html
elementer også. Så du må bruke CSS til å angi høyden på ikke bare div, men også kropps- og HTML-elementene. Dette kan være en utfordring, siden du raskt kan bli overveldet med alt satt til 100% høyde, bare for å oppnå denne ønskede effekten. Nå som du vet hvordan du setter høyden på sidelementene dine til 100%, kan det være spennende å gå ut og gjøre det på alle sidene dine, men det er noen ting du bør være oppmerksom på: For å fikse dette, kan du også angi høyden på elementet. Hvis du setter den til auto,
rullestenger vises hvis de trengs, men forsvinner når de ikke er.Det løser den visuelle pause, men det legger til rullestenger der du kanskje ikke vil ha dem. En annen måte du kan takle denne utfordringen på er å eksperimentere med CSS Viewport Units. Ved å bruke visningsporthøyde måleenhet, kan du formatere elementer for å ta opp en definert høyde på visningsporten, og det vil endres ettersom visningsporten endres! Dette er en fin måte å få 100% høydevisuelle bilder på en side, men de er fortsatt fleksible for forskjellige enheter og skjermstørrelser. Hvorfor prosentandel høyder mislykkes
Noen ting å merke seg når du arbeider med 100% høyder
Bruke Viewport Units