4.1. Jednostki długości absolutne (px
, pt
, cm
, mm
, in
, pc
)
px
, pt
, cm
, mm
, in
, pc
)
Wprowadzenie: Stałe wymiary
W CSS, aby określić rozmiary elementów, marginesy, paddingi, rozmiary czcionek i inne wymiary, używamy **jednostek długości**. Dzielą się one na dwie główne kategorie: absolutne i relatywne.
**Jednostki długości absolutne** definiują rozmiar, który jest stały i niezależny od innych elementów na stronie czy rozmiaru okna przeglądarki. Są one powiązane z fizycznymi jednostkami miary lub, w przypadku pikseli, z rozdzielczością urządzenia wyświetlającego.
Chociaż wydają się precyzyjne, ich użycie w projektowaniu stron internetowych jest często ograniczone ze względu na różnorodność urządzeń i potrzebę responsywności.
Rodzaje jednostek absolutnych
Najczęściej spotykane jednostki absolutne to:
px
(piksel): Najpopularniejsza jednostka absolutna w web designie. Teoretycznie odpowiada jednemu pikselowi na ekranie urządzenia. Jednak w praktyce, na ekranach o wysokiej gęstości (HiDPI, Retina), jeden piksel CSS może odpowiadać wielu fizycznym pikselom urządzenia, aby zachować spójny rozmiar wizualny. Uważany za jednostkę względną do urządzenia wyświetlającego, ale absolutną w kontekście layoutu strony.pt
(punkt): Jednostka tradycyjnie używana w druku. 1 punkt = 1/72 cala. Rzadziej stosowana w projektowaniu na ekrany.cm
(centymetr): Jednostka fizyczna.mm
(milimetr): Jednostka fizyczna.in
(cal): Jednostka fizyczna. 1 cal = 2.54 cm = 96px (w standardzie CSS).pc
(pica): Jednostka używana w druku. 1 pica = 12 punktów.
.element {
width: 300px; /* Szerokość 300 pikseli CSS */
font-size: 12pt; /* Rozmiar czcionki 12 punktów */
margin-bottom: 1cm; /* Dolny margines 1 centymetr */
border-width: 1mm; /* Szerokość obramowania 1 milimetr */
padding: 0.5in; /* Wewnętrzny odstęp pół cala */
}
Relacje między jednostkami (w standardzie CSS):
- 1 in = 96 px
- 1 in = 72 pt
- 1 in = 6 pc
- 1 in = 2.54 cm
- 1 cm = 10 mm
- 1 pc = 12 pt
Uwaga: Dokładność fizycznych jednostek (cm, mm, in) na ekranie może się różnić w zależności od urządzenia i jego konfiguracji. Przeglądarka próbuje je przybliżyć, bazując na informacji o DPI ekranu, ale nie zawsze jest to idealne odwzorowanie.
Piksel (px
) - Król jednostek absolutnych (z zastrzeżeniami)
Piksel (px
) jest zdecydowanie najczęściej używaną jednostką absolutną w CSS. Jest łatwy do zrozumienia i daje precyzyjną kontrolę nad rozmiarem elementów na ekranie.
Jednak ważne jest, aby pamiętać, że piksel CSS nie zawsze równa się fizycznemu pikselowi na ekranie. Na nowoczesnych ekranach o wysokiej gęstości (np. smartfony, monitory Retina), przeglądarki skalują piksele CSS, aby elementy wyglądały na podobne rozmiary fizyczne jak na ekranach o standardowej gęstości. Jeden piksel CSS może być renderowany przy użyciu 2, 3 lub więcej fizycznych pikseli (tzw. device pixel ratio).
Mimo tej "względności" do urządzenia, px
jest traktowany jako jednostka absolutna w kontekście layoutu strony, ponieważ jego rozmiar nie zależy od rozmiaru czcionki rodzica czy rozmiaru viewportu (jak jednostki relatywne, które poznamy później).
Kiedy używać jednostek absolutnych?
px
:- Do definiowania rozmiarów elementów, które mają mieć stały wymiar, niezależnie od kontekstu (np. szerokość głównego kontenera strony, rozmiary ikon, grubość obramowań).
- Czasami do definiowania rozmiaru czcionki, chociaż jednostki relatywne (
em
,rem
) są często preferowane dla lepszej skalowalności i dostępności. - Do precyzyjnego pozycjonowania elementów.
pt
,cm
,mm
,in
,pc
:- Głównie w **arkuszach stylów przeznaczonych do druku** (
@media print
), gdzie fizyczne wymiary mają większe znaczenie. - Rzadko używane do stylizowania na ekrany, ponieważ ich renderowanie może być nieprecyzyjne, a brak elastyczności utrudnia tworzenie responsywnych layoutów.
- Głównie w **arkuszach stylów przeznaczonych do druku** (
Wady jednostek absolutnych (szczególnie na ekranach)
- Brak skalowalności: Rozmiary zdefiniowane w jednostkach absolutnych (zwłaszcza
px
dla czcionek) mogą być trudne do skalowania przez użytkownika w ustawieniach przeglądarki, co utrudnia dostępność dla osób słabowidzących. - Problemy z responsywnością: Layouty oparte wyłącznie na jednostkach absolutnych (np.
px
) są sztywne i nie dostosowują się dobrze do różnych rozmiarów ekranów i urządzeń. - Nieprecyzyjność jednostek fizycznych: Jak wspomniano, jednostki fizyczne (cm, mm, in, pt) mogą nie być dokładnie odwzorowane na ekranie.
Z tych powodów, w nowoczesnym web designie często preferuje się **jednostki relatywne** (%
, em
, rem
, vw
, vh
), które pozwalają tworzyć bardziej elastyczne i responsywne layouty. Jednostki absolutne, zwłaszcza px
, nadal mają swoje miejsce, ale należy ich używać świadomie.
Zadania praktyczne
Zadanie 1 (z rozwiązaniem)
Stwórz element <div>
i nadaj mu za pomocą CSS stałą szerokość 400px
, wysokość 100px
oraz czerwone obramowanie o grubości 2px
.
Rozwiązanie:
HTML:
<div class="box"></div>
CSS:
.box {
width: 400px;
height: 100px;
border: 2px solid red;
}
Efekt: Na stronie pojawi się prostokąt o stałych wymiarach 400x100 pikseli z czerwonym obramowaniem grubości 2 pikseli.
Zadanie 2 (do samodzielnego wykonania)
Ustaw rozmiar czcionki dla elementu <h1>
na 24pt
. Następnie ustaw rozmiar czcionki dla elementu <p>
na 16px
. Zaobserwuj różnicę w wyglądzie na ekranie.
Zadanie 3 (do samodzielnego wykonania - dla arkusza druku)
Stwórz regułę CSS w bloku @media print { ... }
, która ustawi marginesy strony (dla elementu body
) na 2cm
podczas drukowania.
Wskazówka: Aby przetestować, użyj opcji "Drukuj" w przeglądarce i wybierz podgląd wydruku lub zapis do PDF.
FAQ - Najczęściej zadawane pytania
Czy px
to najlepsza jednostka dla rozmiaru czcionki?
Choć px
jest łatwy w użyciu, często nie jest najlepszym wyborem dla rozmiaru czcionki ze względu na dostępność. Jednostki relatywne jak rem
lub em
pozwalają użytkownikom łatwiej skalować tekst w przeglądarce. Użycie px
może zablokować tę możliwość w niektórych starszych przeglądarkach lub przy określonych ustawieniach.
Czy 1px zawsze oznacza 1 piksel na moim monitorze?
Niekoniecznie. Na ekranach o standardowej gęstości (ok. 96 DPI) zazwyczaj tak jest. Jednak na ekranach o wysokiej gęstości (HiDPI/Retina), jeden piksel CSS (1px
) jest renderowany przy użyciu wielu fizycznych pikseli (np. 2x2 lub 3x3), aby zachować ostrość i spójny rozmiar wizualny elementów.
Kiedy jednostki fizyczne (cm, mm, in, pt) są przydatne w web designie?
Ich główne zastosowanie to arkusze stylów dla druku (@media print
), gdzie odwzorowanie fizycznych wymiarów jest istotne (np. marginesy strony, rozmiar czcionki w dokumencie). Na ekranach są rzadko używane ze względu na potencjalną nieprecyzyjność i brak elastyczności.
Czy mogę mieszać jednostki absolutne i relatywne?
Tak, jest to bardzo powszechne. Można na przykład ustawić szerokość kontenera w px
, a rozmiar czcionki wewnątrz niego w rem
lub em
, a padding w procentach (%
). Wybór jednostki zależy od tego, jaki efekt chcemy osiągnąć i względem czego dany wymiar ma być zależny.