5 CSS Tips & Tricks for better Responsive Web Design - lynnvdbo/i-love-web GitHub Wiki

https://www.youtube.com/watch?v=2IV08sP9m3U

1 - Relatove Padding

Using de min() function

Inplaats van dit:

Scherm­afbeelding 2026-01-11 om 22 03 41

Dit:

Scherm­afbeelding 2026-01-09 om 11 58 45

padding: min(5em, 8%);

5em is een fixed unit en met de komma is de 8% een tweede waarde. Dit is nu een relatieve eenheid. This function will calculate welke of values is smaller. on a desktop screen wat is realy wide 5em is smaller dan 8^% paren element en dat is in this case the body. dus 8% van screen maar als je resize window smaller design er is een punt dat 8% van screeen is smaller dan 5em dus min function swtich en kiest 8& voor de padding en omdat 8% een relevant unit is wordt het smaller en smaller als het scherm smaller wordt

2 - Responsive font-sizes

dont use px maar rem

rem = "The root element font-size"

font-=size: 1.5ren; is 16px x 1,5 = 24px

10vw skates the font size to 10% of the viewport

Scherm­afbeelding 2026-01-11 om 22 43 13

maar als je dit toepast is 10% op dekstop heel groot en op mobiel weer veelste klein dus hebben we een minimum size nodig en de beste oplossing daarvoor is een clamp function

Scherm­afbeelding 2026-01-11 om 22 50 23

met clamp you can provide three values

  1. minium valjue - 1.8rem
  2. prefend value - 10vw
  3. max value - 5rem

clamp funtion will always use 10vw width as long as our minimum of maximum value is mot reached

er is alleen een probleem zodra je gaat inzoomen en uitzoomen met je muis bijv dan schaalt hij niet mee groot of klein omdat viewport is based on the viewport en nothing else other untis like rem and pixels for example they can zoom in. dus om dit te fixen moeten we vw combineren met een zoomable unit zoasl rem bijv. Daarvoor gebruik je de Calc function in CSS.

Scherm­afbeelding 2026-01-11 om 23 00 41

3 - Responsive images

by default html img are not responsive. je zou dan je img een max widtg 100% geven maar de img zal dan dunner mee stretchen or disort en dat is vanwege de height and width attribute in html for SE) reasons is het toegestaan om to defind de heigth en widt in HTML.

Scherm­afbeelding 2026-01-11 om 23 12 50 \\

aspect-ratio: Scherm­afbeelding 2026-01-11 om 23 14 06

aspect-ratio: 1/1 Scherm­afbeelding 2026-01-11 om 23 14 25

aspect-ratio: 16/9 Scherm­afbeelding 2026-01-11 om 23 15 01

aspect-ratio 9/16 Scherm­afbeelding 2026-01-11 om 23 15 29

bij de laatste gaan de fotos zien de fotos er stretched uit omdat ze de ruimte willen vullen. als dit gebeurt moet je de object-fit gebruiken.

Scherm­afbeelding 2026-01-11 om 23 19 30

maar dan gebeurt er dit met "contain" omdat de aspect-radio 9/16 is .

Scherm­afbeelding 2026-01-11 om 23 20 36

als je object-fit: cover; gebruikt gaat het wel goed. maar als je dan 1/1 doen zoomt hij wel de foto in en snijd hij dingen af

Scherm­afbeelding 2026-01-11 om 23 21 19

4 - Dynamic viewport height

100vh

als je dit invult "height: 100vh" wordrt het hele scherm bedenkt.

Scherm­afbeelding 2026-01-11 om 23 43 00

maar het probleem is als je op mobiel kijkt je naar beneden moet scrollen. hier is het element groter dan het beeldscherm. je kan dit alleen testen en zien op een echte telefoon, want in browser development ziet het er goed uit. Dit gebeurt omdat mobiele browsers reserve space voor de UI elementen zoals de addres bar en die is niet accounted bij de 100 viewport.

Scherm­afbeelding 2026-01-11 om 23 44 06

om dit te fixen heeft CSS iets nieuws "dvh = dynamic viewport height" Je kan ziet dat de blauwe border nu te zien is ook onderin.

Scherm­afbeelding 2026-01-11 om 23 48 31

als je twijfelt over browser compatibility kan je altijd ze beide opschrijven en de browser zal degene negeren dat niet werkt.

Scherm­afbeelding 2026-01-11 om 23 50 27

5 - HTML inert attribuut

dit is een tool voor je hamburger menu.

normaal zet je je memus op hidden zodat je ze niet zien, maar voor toegangelijkheid is dit niet handig want de tab zal er alsnog doorheen zien.

hidden elements are stil table and remain the accessibility tree. oplossing je kan <nav inert> gebruiken.

Scherm­afbeelding 2026-01-11 om 23 55 01

make sure in javascript to add or remove the inert attribute whenever you hide or show the element.

Scherm­afbeelding 2026-01-11 om 23 55 25 Scherm­afbeelding 2026-01-11 om 23 56 07

this is a more advanced techniek. om een goed en gebruikvriendelijke hamburger menu te maken check deze video!

https://www.youtube.com/watch?v=m7YDWNz65iI

⚠️ **GitHub.com Fallback** ⚠️