CSS-groottefuncties: calc(), min(), max(), clamp() en viewport-eenheden

Lab voor CSS-groottefuncties

CSS calc(), min(), max(), clamp(), vh vs dvh, fit-content | We.Inc

Sleep een slider voor de viewportbreedte en zie calc(), min(), max() en clamp() omgezet in pixels. Plus vh vs svh, lvh en dvh, fit-content en min-content live, gap en recepten voor fluid typografie.

Met CSS-rekenfuncties past één waarde zich aan het scherm aan. calc() combineert eenheden, zoals in calc(100% - 2rem). min() kiest de kleinste optie, dus width: min(100%, 640px) loopt nooit over. max() kiest de grootste, en clamp(min, preferred, max) houdt een vloeiende waarde tussen twee grenzen. dvh volgt de veranderende werkbalk van de mobiele browser, in tegenstelling tot gewone vh.

Welke functie voor welke taak

In plaats van uw browser te verkleinen om een formule te testen, sleept u de gesimuleerde viewportbreedte en ziet u elke functie direct omgezet in pixels, met het punt gemarkeerd waar clamp() zijn grenzen raakt. De pagina tekent ook wat vh, svh, lvh en dvh op een telefoon meten en laat de intrinsieke sleutelwoorden werken op echte vakken.

Veelgestelde vragen

Wat is het verschil tussen vh, svh, lvh en dvh?

Op telefoons wordt de browserwerkbalk groter en kleiner. svh is 1% van de kleine viewport, met de werkbalk zichtbaar. lvh is 1% van de grote viewport, met de werkbalk verborgen. dvh volgt wat op dat moment geldt en wordt bijgewerkt terwijl u scrolt. Klassieke vh is meestal gelijk aan lvh, en daarom worden secties van 100vh op mobiel afgesneden.

Worden clamp(), min() en max() overal ondersteund?

Ja, alle drie werken sinds 2020 in elke grote browser. De kleine, grote en dynamische viewport-eenheden kwamen later, in de loop van 2022, en zitten nu in alle actuele grote browsers. Zet er een gewone vh-regel als fallback voor als u nog oudere apparaten ondersteunt.

Hoe schrijf ik een vloeiende lettergrootte met clamp()?

Kies de grootte op een smal scherm en op een breed scherm, en schrijf dan clamp(klein, voorkeur, groot). De voorkeurswaarde combineert rem en vw, zoals 1rem + 2vw, zodat de grootte meegroeit met het venster maar tussen de twee grenzen blijft. Het lab hieronder toont de exacte breedtes waarop de grenzen het overnemen.

Wat doet fit-content?

width: fit-content maakt een vak zo groot als zijn inhoud, zoals een krimpfolie-inline-block, maar nooit breder dan de beschikbare ruimte. Het is hetzelfde als min(max-content, max(min-content, beschikbare ruimte)). De fit-content()-functie in grid tracks doet hetzelfde met een grens die u zelf kiest.

Kan gap met flexbox gebruikt worden?

Ja. gap, row-gap en column-gap werken in alle actuele browsers in flex containers, niet alleen in grid. Gap wordt alleen tussen items toegevoegd, nooit aan de buitenranden, wat eenvoudiger is dan marges op elk child.

Hoe calc() wordt berekend

Intrinsieke groottes: min-content, max-content en fit-content

Vloeiende witruimte naast vloeiende typografie

vh vs svh, lvh en dvh

Viewport-percentage-eenheden

Een mobielveilige hero op volle hoogte

De eerste regel is de fallback voor browsers zonder de nieuwere eenheden. De tweede overschrijft die waar ze ondersteund worden.

Voorbeelden van calc(), min(), max() en clamp()

Een leesbare kolom zonder media query

min() begrenst de breedte; de padding gebruikt max() zodat die nooit onder 12px zakt. Beide regels passen zich vanzelf aan de framebreedte aan.

calc() voor een vaste zijbalk naast een vloeiend hoofdgebied

Het hoofdgebied neemt wat overblijft na de zijbalk van 120px en de gap van 12px.

min-content, max-content en fit-content

Intrinsieke sleutelwoorden voor grootte

gap in flex en grid

Dezelfde gap in een afbrekende flex-rij en een grid

row-gap en column-gap kunnen verschillen. Geen van beide voegt ruimte toe aan de buitenranden.

Vloeiende schaal voor typografie en witruimte

Een kleine vloeiende schaal als custom properties

Elke stap groeit tussen ongeveer een telefoon van 360px en een desktop van 1280px. Pas de getallen aan in het lab hierboven.

Viewportlab

Gesimuleerde viewportbreedte (px)

Vloeiende kop bij {px}px

Berekende waarden bij de gesimuleerde breedte

Functie

Declaratie

Bij {vp}px

clamp-minimum (rem)

clamp-maximum (rem)

voorkeur: rem-deel

voorkeur: vw-deel

Het maximum ligt onder het minimum, dus het minimum wint bij elke breedte.

Blijft op {min}rem tot ongeveer {from}px breed, groeit tot ongeveer {to}px en blijft dan op {max}rem.

Zonder vw-deel verandert de waarde nooit met het venster.

Kopiëren

Wat 100 van elke eenheid op een telefoon beslaat

Drie telefoons: 100svh vult de ruimte tussen zichtbare werkbalken, 100lvh vult het hele scherm alsof de werkbalken verborgen zijn, 100dvh volgt de werkbalken als ze veranderen

werkbalken zichtbaar

werkbalken verborgen

volgt werkbalken

Grijze banden zijn browserwerkbalken. Blauw is het gebied dat 100 eenheden vullen.

Content sizing, live

Sleutelwoord voor breedte

Beschikbare ruimte (px)

Gratis bezorging op elke bestelling dit weekend

Gratis beginnen · Geen creditcard nodig

Gerelateerd: Gidsen

Product

Voor wie

Functies

Bronnen

Bedrijf

Sitemap