Wstęp
Każda z tych jednostek ma swoje zalety i zastosowania, a wybór między nimi zależy głównie od kontekstu projektu i preferencji projektanta. Przyjrzyjmy się bliżej obu jednostkom i ich odpowiednim przypadkom użycia rem czy px.
Piksele (px)
Piksele są absolutną jednostką, co oznacza, że ich wartość jest stała i niezmienna. Jeden piksel w CSS odpowiada jednemu pikselowi ekranu. Jest to najbardziej precyzyjna jednostka, co sprawia, że jest wygodna do używania przy precyzyjnym definiowaniu rozmiarów elementów.
Przykład użycia pikseli:
.element {
font-size: 16px;
width: 300px;
height: 200px;
border: 1px solid #000;
}
Rem (root em)
Rem jest jednostką opartą o rozmiar czcionki elementu <html>
, tzn. wielkość bazowej czcionki dokumentu. Wprowadzona jako standard CSS w 2013 roku. Dzięki temu, gdy zmieniasz rozmiar czcionki na stronie, wartości rem również proporcjonalnie się zmieniają, co ułatwia tworzenie responsywnych projektów.
Przykład użycia rem:
html {
font-size: 16px; /* Ustawienie podstawowej wielkości czcionki */
}
.element {
font-size: 1.5rem; /* Wielkość czcionki 1.5 razy większa niż bazowa wielkość */
width: 20rem;
height: 15rem;
border: 1px solid #000;
}
Uzasadnienie wyboru
- Piksele (px) – są idealne do precyzyjnego definiowania rozmiarów, szczególnie w przypadku elementów o stałych wymiarach, takich jak ramki obrazów czy szerokość kontenerów.
- Rem (root em) – idealnie nadają się do tworzenia elastycznych i responsywnych layoutów flexbox, ponieważ ich wartości skalują się proporcjonalnie do wielkości czcionki bazowej. Dzięki temu zapewniają lepszą dostępność dla użytkowników, pozwalając im na dostosowanie wielkości czcionki w przeglądarce.
Inne jednostki w CSS
Oprócz rem i pikseli, istnieje wiele innych jednostek w CSS, które mogą być przydatne w różnych przypadkach projektowych. Oto krótki opis kilku z nich:
- Ch – jest to jednostka równa szerokości znaku „0” w danym font-cie. Ch często używane są w kontekście szerokości tekstu, szczególnie gdy potrzebna jest precyzyjność na podstawie szerokości znaków w tekście.
- Vw (viewport width) i Vh (viewport height) to jednostki, które odnoszą się do szerokości i wysokości okna przeglądarki (viewportu). 1vw to 1% szerokości viewportu, podobnie 1vh to 1% jego wysokości. Są używane do tworzenia responsywnych układów.
- Fr – jest to jednostka określająca elastyczny rozmiar w kontenerach typu grid (siatka). 1fr zajmuje tyle przestrzeni, ile jest dostępnych jednostek fr w danym kontenerze. Pozwala to na tworzenie elastycznych układów opartych na siatce.
Ostatecznie, w projektach zaleca się stosowanie kombinacji obu jednostek. Piksele można wykorzystać do elementów o stałych wymiarach, natomiast rem do definiowania rozmiarów tekstu i elastycznych elementów, zapewniając przy tym responsywność i skalowalność interfejsu użytkownika. Wybór rem czy px musi być świadomy.