Percentages voor breedteberekeningen op een responsieve site

Veel studenten van responsive webdesign hebben moeite met het gebruik van percentages voor breedtewaarden. Er is met name verwarring over hoe de browser die percentages berekent. Hieronder vind je een uitgebreide uitleg over hoe percentages werken voor breedteberekeningen in een responsive website.

Pixels gebruiken voor breedtewaarden

Wanneer u pixels als breedtewaarde zijn de resultaten heel eenvoudig. Als je gebruikt CSS om de breedtewaarde van een element in de kop van een document in te stellen op 100 pixels breed, wordt dat element de dezelfde grootte als een formaat dat u instelt op 100 pixels breed in de inhoud of voettekst van de website of in andere delen van de pagina. Pixels zijn een absolute waarde, dus 100 pixels is 100 pixels, ongeacht waar in uw document een element verschijnt. Hoewel pixelwaarden gemakkelijk te begrijpen zijn, werken ze helaas niet goed met responsieve websites.

Ethan Marcotte bedacht de term "responsive webdesign", waarin deze benadering wordt uitgelegd als drie hoofdprincipes:

instagram viewer
  1. Een vloeiend raster
  2. Vloeibare media
  3. Mediaquery's

Die eerste twee punten, een vloeiend raster en vloeiende media worden bereikt door percentages te gebruiken in plaats van pixels voor het formaat van waarden.

Percentages gebruiken voor breedtewaarden

Wanneer u percentages gebruikt om een ​​breedte voor een element vast te stellen, is de werkelijke grootte van dat element afhankelijk van waar het zich in het document bevindt. Percentages zijn een relatieve waarde, wat betekent dat de weergegeven grootte relatief is ten opzichte van andere elementen in uw document.

Als u bijvoorbeeld de breedte van een beeld tot 50% betekent dit niet dat de afbeelding op de helft van zijn normale grootte wordt weergegeven. Dit is een veel voorkomende misvatting.

Als een afbeelding daadwerkelijk 600 pixels breed is, betekent het gebruik van een CSS-waarde om deze op 50% weer te geven niet dat deze 300 pixels breed zal zijn in de webbrowser. Deze procentuele waarde wordt berekend op basis van het element dat die afbeelding bevat, niet de werkelijke grootte van de afbeelding zelf. Als de container (die een divisie of een ander HTML-element kan zijn) 1000 pixels breed is, wordt de afbeelding weergegeven met 500 pixels, aangezien die waarde 50% van de breedte van de container is. Als het bevattende element 400 pixels breed is, wordt de afbeelding alleen weergegeven met 200 pixels, aangezien die waarde 50% van de container is. De afbeelding in kwestie heeft een grootte van 50% die volledig afhangt van het element dat het bevat.

Onthoud dat responsive design vloeiend is. Lay-outs en formaten veranderen als de schermgrootte/apparaatwijzigingen. Als je hier fysiek, niet-webtermen over nadenkt, is het alsof je een kartonnen doos hebt die je vult met verpakkingsmateriaal. Als je zegt dat de doos voor de helft gevuld moet zijn met dat materiaal, is de hoeveelheid verpakking die je nodig hebt afhankelijk van de grootte van de doos. Hetzelfde geldt voor procentuele breedtes in webdesign.

Percentages gebaseerd op andere percentages

In het voorbeeld van afbeelding/container hebben we pixelwaarden gebruikt voor het bevattende element om te laten zien hoe de responsieve afbeelding zou worden weergegeven. In werkelijkheid zou het bevattende element ook worden ingesteld als een percentage en de afbeelding, of andere elementen, in die container, zouden hun waarden krijgen op basis van een percentage van een percentage.

Hier is nog een voorbeeld.

Stel dat u een website heeft waar de hele site is opgenomen in een divisie met een klasse "container" (een veel voorkomende praktijk voor webontwerp). Binnen die divisie zijn drie andere divisies die je uiteindelijk zult stylen om weer te geven als 3 verticale kolommen.

Nu kunt u CSS gebruiken om de grootte van die "container" -afdeling in te stellen op 90%. In dit voorbeeld heeft de containerdivisie geen ander element eromheen dan de body, die we niet op een specifieke waarde hebben ingesteld. Standaard wordt de body weergegeven als 100% van het browservenster. Daarom zal het percentage van de "container"-divisie gebaseerd zijn op de grootte van het browservenster. Naarmate dat browservenster in grootte verandert, verandert ook de grootte van deze "container". Dus als het browservenster 2000 pixels breed is, wordt deze indeling weergegeven op 1800 pixels. Dit wordt berekend als 90 procent van 2000 (2000 x 0,90 = 1800), wat overeenkomt met de grootte van de browser.

Als elk van de "col"-divisies in de "container" is ingesteld op een grootte van 30%, dan zal elk van hen in dit voorbeeld 540 pixels breed zijn. Dit wordt berekend als 30% van de 1800 pixels die door de container worden weergegeven (1800 x 0,30 = 540). Als we het percentage van die container zouden veranderen, zouden deze binnenste divisies ook veranderen in de grootte waarin ze worden weergegeven, omdat ze afhankelijk zijn van dat containerelement.

Laten we aannemen dat de browservensters op 2000 pixels breed blijven, maar we veranderen de procentuele waarde van de container naar 80% in plaats van 90%. Dat betekent dat het nu op 1600 pixels breed wordt weergegeven (2000 x 0,80 = 1600). Zelfs als we de CSS voor de grootte van onze 3 "col"-divisies niet wijzigen en ze op 30% laten staan, zullen ze render nu anders, omdat hun bevattende element, de context waarin ze zijn gerangschikt, heeft veranderd. Die 3 divisies worden nu elk weergegeven als 480 pixels breed, dat is 30% van 1600, of de grootte van de container 1600 x .30 = 480).

Als we nog verder gaan, als er zich een afbeelding binnen een van deze "col"-divisies zou bevinden en die afbeelding zou worden verkleind met een percentage, zou de context voor de grootte de "col" zelf zijn. Naarmate die "col" -afdeling in grootte veranderde, veranderde ook de afbeelding erin. Dus als de grootte van de browser of de "container" zou veranderen, zou dat van invloed zijn op de drie "col"-divisies, die op hun beurt verander de grootte van de afbeelding binnen de "col." Zoals je kunt zien, zijn deze allemaal met elkaar verbonden als het gaat om procentuele maatvoering waarden.

Wanneer u bedenkt hoe een element binnen een webpagina wordt weergegeven wanneer een percentagewaarde wordt gebruikt voor de breedte, moet u de context begrijpen waarin dat element zich in de opmaak van de pagina bevindt.

Samengevat

Percentages spelen een cruciale rol bij het maken van de lay-out voor responsieve websites. Of u nu afbeeldingen responsief wilt aanpassen of procentuele breedten gebruikt om een ​​echt vloeiend raster te maken waarvan de afmetingen ten opzichte van elkaar zijn, is het nodig om deze berekeningen te begrijpen om de look te krijgen die u verlangen.

instagram story viewer