Funkcje rozmiaru CSS: calc(), min(), max(), clamp() i jednostki viewportu

Laboratorium funkcji rozmiaru CSS

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

Przesuń suwak szerokości viewportu i zobacz, jak calc(), min(), max() i clamp() przeliczają się na piksele. Do tego vh kontra svh, lvh i dvh, fit-content i min-content na żywo, gap oraz przepisy na płynną typografię.

Funkcje matematyczne CSS pozwalają jednej wartości dopasować się do ekranu. calc() łączy jednostki, jak w calc(100% - 2rem). min() wybiera najmniejszą opcję, więc width: min(100%, 640px) nigdy nie wychodzi poza kontener. max() wybiera największą, a clamp(min, preferred, max) utrzymuje płynną wartość między dwiema granicami. dvh, w przeciwieństwie do zwykłego vh, podąża za zmieniającym się paskiem narzędzi przeglądarki mobilnej.

Która funkcja do jakiego zadania

Zamiast zmieniać rozmiar przeglądarki, aby przetestować formułę, przesuń symulowaną szerokość viewportu, a każda funkcja przeliczy się na piksele na Twoich oczach, z zaznaczonym punktem, w którym clamp() dochodzi do swoich granic. Strona pokazuje też, co mierzą vh, svh, lvh i dvh na telefonie, oraz jak słowa kluczowe rozmiaru wewnętrznego działają na prawdziwych pudełkach.

Najczęściej zadawane pytania

Czym różnią się vh, svh, lvh i dvh?

Na telefonach pasek narzędzi przeglądarki rośnie i się kurczy. svh to 1% małego viewportu, z widocznym paskiem. lvh to 1% dużego viewportu, z ukrytym paskiem. dvh śledzi ten, który jest aktualny, i aktualizuje się podczas przewijania. Klasyczne vh zwykle równa się lvh, dlatego sekcje 100vh są na urządzeniach mobilnych przycinane.

Czy clamp(), min() i max() są obsługiwane wszędzie?

Tak, wszystkie trzy działają w każdej głównej przeglądarce od 2020 roku. Małe, duże i dynamiczne jednostki viewportu pojawiły się później, w 2022 roku, i są już we wszystkich aktualnych głównych przeglądarkach. Dodaj przed nimi linię zastępczą ze zwykłym vh, jeśli nadal obsługujesz starsze urządzenia.

Jak zapisać płynny rozmiar czcionki przez clamp()?

Wybierz rozmiar dla wąskiego ekranu i dla szerokiego ekranu, a potem zapisz clamp(small, preferred, large). Wartość preferowana łączy rem i vw, na przykład 1rem + 2vw, więc rozmiar rośnie z oknem, ale zostaje między dwiema granicami. Laboratorium poniżej pokazuje dokładne szerokości, przy których granice przejmują kontrolę.

Co robi fit-content?

width: fit-content dopasowuje pudełko do treści, jak ściśle opięty inline-block, ale nigdy nie jest szersze niż dostępna przestrzeń. To samo co min(max-content, max(min-content, available space)). Funkcja fit-content() w ścieżkach siatki robi to samo z wybraną przez Ciebie granicą.

Czy gap działa z flexboxem?

Tak. gap, row-gap i column-gap działają w kontenerach flex we wszystkich aktualnych przeglądarkach, nie tylko w grid. Odstęp jest dodawany tylko między elementami, nigdy przy zewnętrznych krawędziach, co jest prostsze niż marginesy na każdym dziecku.

Jak przeliczane jest calc()

Rozmiary wewnętrzne: min-content, max-content i fit-content

Płynne odstępy, nie tylko płynna typografia

vh kontra svh, lvh i dvh

Jednostki procentowe viewportu

Bezpieczna na mobile sekcja hero na pełną wysokość

Pierwsza linia to wartość zastępcza dla przeglądarek bez nowszych jednostek. Druga nadpisuje ją tam, gdzie są obsługiwane.

Przykłady calc(), min(), max() i clamp()

Czytelna kolumna bez media query

min() ogranicza szerokość; padding używa max(), więc nigdy nie spada poniżej 12px. Obie reguły same dostosowują się do szerokości ramki.

calc() dla stałego paska bocznego obok płynnej treści głównej

Główny obszar zajmuje wszystko, co zostaje po pasku bocznym 120px i odstępie 12px.

min-content, max-content i fit-content

Słowa kluczowe rozmiaru wewnętrznego

gap we flex i grid

Ten sam gap w zawijającym się wierszu flex i w siatce

row-gap i column-gap mogą się różnić. Żaden nie dodaje przestrzeni przy zewnętrznych krawędziach.

Płynna skala typografii i odstępów

Mała płynna skala jako zmienne CSS

Każdy stopień rośnie mniej więcej od telefonu 360px do desktopu 1280px. Dostosuj liczby w laboratorium powyżej.

Laboratorium viewportu

Symulowana szerokość viewportu (px)

Płynny nagłówek przy {px}px

Przeliczone wartości przy symulowanej szerokości

Funkcja

Deklaracja

Przy {vp}px

minimum clamp (rem)

maksimum clamp (rem)

preferowana: część rem

preferowana: część vw

Maksimum jest mniejsze od minimum, więc minimum wygrywa przy każdej szerokości.

Zostaje na {min}rem do szerokości około {from}px, rośnie do około {to}px, a potem trzyma się {max}rem.

Bez części vw wartość nigdy nie zmienia się wraz z oknem.

Kopiuj

Co pokrywa 100 każdej jednostki na telefonie

Trzy telefony: 100svh wypełnia przestrzeń między widocznymi paskami narzędzi, 100lvh wypełnia cały ekran, jakby paski były ukryte, 100dvh podąża za zmieniającymi się paskami

paski widoczne

paski ukryte

podąża za paskami

Szare pasy to paski narzędzi przeglądarki. Niebieski to obszar, który wypełnia 100 jednostek.

Rozmiar zależny od treści, na żywo

Słowo kluczowe szerokości

Dostępna przestrzeń (px)

Darmowa dostawa każdego zamówienia w ten weekend

Zacznij za darmo · Bez karty kredytowej

Powiązane: Poradniki

Produkt

Dla kogo

Funkcje

Zasoby

Firma

Mapa strony