Skip to main content

De hoogte van een HTML-element instellen op 100%

Responsive Layout: Overview - Google Web Designer (April 2025)

Responsive Layout: Overview - Google Web Designer (April 2025)
Anonim

Een veelgestelde vraag bij het ontwerpen van websites is "hoe stel je de hoogte van een element in op 100%"?

Dit lijkt misschien een eenvoudig antwoord. U gebruikt eenvoudigweg CSS om de hoogte van een element in te stellen op 100%, maar dit element wordt niet altijd uitgerekt om in het volledige browservenster te passen. Laten we uitvinden waarom dit gebeurt en wat u kunt doen om deze visuele stijl te bereiken.

Pixels en percentages

Wanneer u de hoogte van een element definieert met behulp van de CSS-eigenschap en een waarde die pixels gebruikt, neemt dat element zoveel verticale ruimte in de browser in beslag. Een alinea met bijvoorbeeld een

hoogte: 100 px;

neemt 100 pixels verticale ruimte in beslag in uw ontwerp. Het maakt niet uit hoe groter uw browservenster is, dit element zal 100 pixels hoog zijn.

Percentages werken anders dan pixels. Volgens de W3C-specificatie worden de procentuele hoogten berekend met betrekking tot de hoogte van de container. Dus als je een alinea met een zet

hoogte: 50%;

in een div met een hoogte van 100px is de alinea 50 pixels hoog, wat 50% van het bovenliggende element is.

Waarom Percentagehoogten mislukken

Als u een webpagina ontwerpt en u een kolom hebt die u over de volledige hoogte van het venster wilt weergeven, is het de natuurlijke neiging om een

hoogte: 100%;

naar dat element. Immers, als u de

breedte

naar

breedte: 100%;

het element neemt de volledige horizontale ruimte van de pagina in beslag, dus

hoogte

zou hetzelfde moeten werken, toch? Helaas is dit helemaal niet het geval.

Om te begrijpen waarom dit gebeurt, moet u begrijpen hoe browsers hoogte en breedte interpreteren. Webbrowsers berekenen de totale beschikbare breedte als een functie van hoe wijd het browservenster wordt geopend.

breedte

Als u geen waarden op uw documenten instelt, zal de browser de inhoud automatisch laten stromen om de volledige breedte van het venster te vullen (100% breedte is de standaardwaarde).

Hoogtewaarde wordt anders berekend dan de breedte. In feite evalueren browsers de hoogte helemaal niet, tenzij de inhoud zo lang is dat deze buiten het kijkvenster komt (en dus schuifbalken nodig heeft) of als de webontwerper een absoluut element instelt voor een element op de pagina.

hoogte

Anders laat de browser de inhoud eenvoudig binnen de breedte van het kijkvenster stromen tot het einde is bereikt. De hoogte wordt eigenlijk helemaal niet berekend.

Problemen treden op wanneer u een percentagehoogte instelt op een element met bovenliggende elementen zonder hoogteset, met andere woorden, de bovenliggende elementen hebben een standaardwaarde.

hoogte: auto;

U vraagt ​​de browser in feite om een ​​hoogte te berekenen op basis van een ongedefinieerde waarde. Aangezien dat gelijk zou zijn aan een nulwaarde, is het resultaat dat de browser niets doet.

Als u een hoogte op uw webpagina's wilt instellen op een percentage, moet u de hoogte instellen van elk ouderelement van degene die u de hoogte wilt laten definiëren. Met andere woorden, als u een pagina heeft zoals deze:

Inhoud hier

Je wilt waarschijnlijk de

div

en de alinea erin heeft een 100% hoogte, maar die div heeft dat eigenlijk wel twee ouder elementen:

en. Om de hoogte van de te bepalen

div

tot een relatieve hoogte, moet u de hoogte van de

lichaam

en

html

elementen ook. Dus je zou CSS moeten gebruiken om de hoogte in te stellen van niet alleen de div, maar ook de body en HTML-elementen. Dit kan een uitdaging zijn, omdat je snel overweldigd kunt raken door alles op 100% hoogte in te stellen, alleen om dit gewenste effect te bereiken.

Sommige dingen om op te letten bij het werken met 100% hoogtes

Nu u weet hoe u de hoogte van uw pagina-elementen op 100% instelt, kan het spannend zijn om uit te gaan en dat te doen aan al uw pagina's, maar er zijn een paar dingen waar u op moet letten:

  • Marges en opvulling kunnen een schuifbalk toevoegen waar u geen wilt.Een van de meest vervelende dingen die ik heb gevonden bij het werken met percentagehoogten (en breedten) is dat de opvulling en marges op diezelfde elementen schuifbalken kunnen toevoegen aan de pagina, ook al wordt alle inhoud weergegeven zonder dat er schuifbalken nodig zijn. Dit komt omdat de hoogte of breedte van het element het eerste is dat wordt berekend. Vervolgens worden de marges en opvullingen toegevoegd. Dus als je een element hebt met een hoogte van 100% en boven- en ondermarges van elk 10 pixels, zal er een schuifbalk zijn voor de extra 20 pixels. Vergeet niet dat het CSS-kadermodel marge, rand en opvulling aan de grootte van een element toevoegt, dus 100% met een van die andere boxmodelwaarden zal in werkelijkheid meer dan 100% zijn.
  • Als uw inhoud meer in beslag neemt dan de gedefinieerde hoogte, wordt er later alles over overschreven.Met andere woorden, als u een ontwerp hebt met een kolom die 80% hoog is en de inhoud die erin zit 100% van de hoogte in beslag neemt, blijft die extra 20% onder de kolom en breekt het visuele ontwerp van uw pagina. Als er inhoud onder die kolom staat, schrijft de tekst er eenvoudigweg overheen. Ik zie dit vaak gebeuren wanneer een webontwerper de hoogte van een pagina probeert te forceren en het perfect werkt voor de lancering, maar wanneer de inhoud op die pagina in de toekomst verandert, breken hun absolute hoogten de stroom van de pagina volledig. Dit is dubbel waar wanneer u responsieve websites bouwt waarvan de breedte en hoogte moeten veranderen met de grootte van de viewport.

Om dit te verhelpen, kunt u ook de hoogte van het element instellen. Als je het instelt op

auto,

schuifbalken verschijnen als ze nodig zijn maar verdwijnen als ze dat niet zijn.Dat herstelt de visuele onderbreking, maar het voegt schuifbalken toe waar je ze misschien niet wilt hebben.

Viewport-units gebruiken

Een andere manier om deze uitdaging aan te gaan, is door te experimenteren met CSS Viewport Units. Door de meeteenheid van de kijkvensterhoogte te gebruiken, kunt u elementen op maat maken om een ​​gedefinieerde hoogte van het kijkvenster op te nemen, en dat zal veranderen als het kijkvenster verandert! Dit is een geweldige manier om uw 100% hoogte-afbeeldingen op een pagina te krijgen, maar ze zijn nog steeds flexibel voor verschillende apparaten en schermformaten.