Jednostki CSS

Podczas poprzednich lekcji wielokrotnie korzystaliśmy z dwóch bardzo popularnych jednostek występujących w CSS, czyli px oraz %. Dzięki nim opisywaliśmy m.in. wymiary znaczników (np. width, height) lub wartości charakterystyczne dla box modelu (padding, margin, border). W CSS mamy do dyspozycji dużo więcej jednostek, które znajdą swoje zastosowanie w różnych scenariuszach. Wszystkie te jednostki dzielą się na dwie podstawowe grupy:

  • bezwzględne (absolutne, ang: absolute)
  • względne (relatywne, ang: relative)

Jednostki bezwzględne (absolutne)

Jednostki te mają swoje stałe, niezmienne wymiary. Przykładami takich jednostek mogą być cm (centymetry) lub px (piksele). Niezależnie od tego na jak dużym ekranie będzie wyświetlać element na stronie opisany tymi jednostkami, to zawsze będzie to dokładnie ten sam rozmiar. Jednostki takie są dość kłopotliwe w przypadku tworzenia stron responsywnych, czyli takich, które dostosowują wymiary swoich elementów do rozmiaru ekranu. Wszystkie jednostki bezwzględne zostały zebrane w poniższej tabeli:

Jednostka bezwzględna Opis
px (piksel) 1px = ok. 0.03cm
pt (point) 1pt = ok. 0.035cm
pc (pica) 1pc = 12pt
cm (centymetr) 1cm = 10mm
mm (milimetr) 1mm = 0.1cm
in (inch, cal) 1in = 2.54cm

Jednostek bezwzględnych będziemy używali tam, gdzie responsywność nie jest dla nas ważnym czynnikiem. Zdecydowanie najczęściej używaną jednostką w tej grupie (jak i prawdopodobnie w całym CSS) jest oczywiście piksel. Jednsotki takie jak centymetr, milimetr bądź cal najczęściej będą użyteczne w sytuacjach, gdzie tworzymy stronę, która będzie miała możliwość wydruku – wtedy za pomocą tych jednostek możemy ustalać wymiary pasujące pod różne rozmiary kartek (A4, A3 itp.).

Jednostki względne (relatywne)

Skoro jednostki absolutne nie nadawały się za bardzo do stron responsywnych, to znaczy, że jednostki relatywne są wręcz dla nich stworzone. Jednostki te są uzależnione od rozmiaru swojego “rodzica” bądź ekranu, na którym są wyświetlane. Dzięki temu zwiększają one swoje wartości wraz ze zwiększaniem rozmiaru ekranu i vice versa. Ich użycie jest nieco bardziej skomplikowane niż jednostek absolutnych, więc opiszmy sobie je dokładnie w poniższej tabeli:

Jednostka względna Opis
% (procent) Wartość procentowa odnosząca się do rodzica. Przykładowo width: 50% oznacza, że element będzie miał szerokość ustawioną na połowę aktualnej szerokości swojego rodzica.
em Wartość odnosząca się (proporcjonalna) do rozmiaru czcionki rodzica wybranego elementu. 1em = aktualny rozmiar czcionki ustawiony na rodzicu.
rem Wartość odnosząca się (proporcjonalna) do rozmiaru czcionki ustawionej na tagu <html> (“rem” = “root em”). 1rem = aktualny rozmiar czcionki na tagu <html>
ch (character) Wartość określająca szerokość pojedynczego znaku. Jak znak wzorcowy wybrany jest znak “zero” (0) aktualnie używanej czcionki.
vh (viewport height) Jednostka proporcjonalna do wysokości okna przeglądarki. Wartość height: 100vh oznacza wysokość równą 100% wysokości okna przeglądarki.
vw (viewport width) Jednostka proporcjonalna do szerokości okna przeglądarki. Wartość width: 100vw oznacza szerokość równą 100% szerokości okna przeglądarki.
vmin Jednostka równa mniejszej z wartości vh oraz vw. Przykładowo w telefonie trzymanym w “normalnej” pozycji, szerokość otwartej na nim przeglądarki jest mniejsza niż wysokość. W tym przypadku vmin = vw
vmax Jednostka równa większej z wartość vh oraz vw. Używając przykładu z telefonem, vmax = vh
ex Wartość określająca wysokość pojedynczego znaku. Jak znak wzorcowy wybrany jest znak “x” (mała litera) aktualnie używanej czcionki.

Zobaczmy teraz te wszystkie jednostki w praktyce:

Na poniższym krótkim wideo możemy zauważyć, jak zachowują się powyższe jednostki podczas zmiany szerokości ekranu. Widzimy, iż szerokości elementów wyrażone w jednostkach bezwzględnych są całkowicie obojętne na aktualną szerokość okna przeglądarki. W momencie, gdy element na stronie jest szerszy niż okno, wtedy pojawia nam się możliwość poziomego przesuwania strony, co nie jest zbyt wygodne dla użytkownika.

Z kolei elementy względne skalują się odpowiednio do szerokości strony. Dotyczy to zarówno szerokości elementów, jak i rozmiaru czcionki, której rozmiar został uzależniony od szerokości okna. Jak to wygląda w praktyce można zauważyć na poniższym video:

Masz pytania lub uwagi?

discord icon Przejdź na Discord
Masz pytanie? Napisz do nas 👇
kontakt@frontstack.pl
Copyright © 2023 Frontstack