Jednostki

Liczby

Niektóre polecenia stylów wykorzystują jako wartości liczby całkowite lub rzeczywiste. Są one precyzowane tylko w notacji dziesiętnej. Liczba całkowita składa się z jednej lub więcej cyfr z zakresu od 0 do 9. Liczba rzeczywista może być liczbą całkowitą albo mieć zero lub więcej cyfr po kropce dziesiętnej ("."). Zarówno liczby całkowite jak i rzeczywiste mogą zostać poprzedzone przez "-" lub "+", wskazującym ich znak.

Wiele właściwości przyjmujących jako wartość liczbę całkowitą lub rzeczywistą, wymaga wartości z określonego przedziału, zwykle nie mniejszej od zera.

Długość

Jednostki długości stosuje się w bardzo wielu poleceniach dotyczących stylów, np. wielkość czcionki, marginesów czy rozmiary elementów itd. Format wartości długości składa się z opcjonalnego znaku liczby ("+" - domyślny lub "-"), liczby całkowitej lub rzeczywistej oraz jednostki. Po wartości długości 0 jednostka jest opcjonalna. Należy pamiętać, że nie każdy parametr może przyjąć wartość ujemną!

Są dwa typy jednostek długości: względne (relatywne) i bezwzględne (absolutne). Jednostki względne podają długość w odniesieniu do innego rozmiaru.

Jednostki względne

Względne jednostki długości stosujemy, gdy chcemy się odwołać do rozmiaru innego elementu (np. wysokości aktualnie używanej czcionki).

Jednostki względne czcionki

  • em - wysokość aktualnej czcionki
  • ex - wysokość litery "x", czyli małej litery w aktualnej czcionce
  • ch - szerokość cyfry "0" (zero) w aktualnej czcionce (CSS 3 - interpretuje Internet Explorer 9, Firefox)
  • rem - wysokość czcionki elementu korzenia w drzewie dokumentu (CSS 3 - interpretuje Internet Explorer 9, Firefox, Opera, Chrome); w języku (X)HTML korzeniem jest zawsze element <html>

Jednostka rem może być przydatna w sytuacji, kiedy chcemy, aby definiowana długość (np. szerokość bloku na stronie) odnosiła się do określonego rozmiaru czcionki, ale jednocześnie chcemy ją uniezależnić od wartości wyliczonych zgodnie z zasadą dziedziczenia stylów.

Przykładowo załóżmy, że wysokość czcionki korzenia (element <html>) wynosi 16px, a dla <body> ustalono "font-size: 2em". Jeżeli teraz na stronie wstawimy blok ze stylem "width: 10em", uzyska on faktyczną szerokość: 16px * 2 * 10 = 320px (16px pochodzi o wysokości czcionki korzenia, 2 to względna wysokość czcionki <body>, a 10 - ustalona szerokość bloku). Jak widać, zmiana rozmiaru czcionki dla elementu <body> albo wstawienie dodatkowego potomka z ustaloną wielkością cziconki może nam w tym przypadku całkowicie popsuć wygląd strony, wpływając w niełatwy do przewidzenia sposób na szerokość naszego bloku. Taka sytuacja nie będzie miała jednak miejsca, jeśli zamiast tego wpiszemy "width: 20rem" (16px * 20 = 320px).

Oczywiście opisane problemy nie będą miały również miejsca, gdy ustalimy szerokość bloku bezpośrednio w pikselach - "width: 320px". Jednak w pewnych sytuacjach może zależeć nam, aby wymiary elementów na stronie były zależne od podanego rozmiaru czcionki. Większa czcionka może wymagać szerszych bloków z tekstem. Używając jednostki rem wystarczy, że zmienimy tylko rozmiar czcionki jednego elementu, nie obawiając się czasem trudnych do przewidzenia skutków dziedziczenia stylów, a wymiary elementów strony automatycznie dopasują się do nowych ustawień, bez konieczności ręcznych zmian w wielu miejscach arkusza CSS.

Jednostki procentowe obszaru wyświetlania

(CSS 3)

Jeżeli zawartość strony nie mieści się na ekranie, przeglądarka wyświetla na brzegach okna suwaki lub zapewnia inny mechanizm przewijania wyświetlanego dokumentu, tak aby użytkownik mógł zapoznać się z całą jego treścią. Jednostki procentowe obszaru wyświetlania odnoszą się do wymiarów tej widocznej powierzchni okna, w obrębie której przewijana jest zawartość strony (ang. viewport). Na przykład długość 100vw wynosi tyle co szerokość całego obszaru wyświetlania - 100%.

  • vw - procentowa szerokość obszaru wyświetlania (interpretuje Internet Explorer 9, Chrome)
  • vh - procentowa wysokość obszaru wyświetlania (interpretuje Internet Explorer 9, Chrome)
  • vmin - mniejsza z wartości vw lub vh (interpretuje Internet Explorer 10, Chrome)
  • vmax - większa z wartości vw lub vh

Nie jesteśmy w stanie przewidzieć, z jakiego urządzenia wyświetlającego korzysta użytkownik. Nie znamy wymiarów jego ekranu. Aby tekst strony był czytelny na niewielkim urządzeniu mobilnym (np. smartphone), być może konieczne będzie ustalenie większej czcionki niż w przypadku dużego monitora panoramicznego. Z pomocą przychodzą nam jednostki procentowe obszaru wyświetlania. Dzięki nim, nieważne jakie będą fizyczne wymiary ekranu, ustalając wielkość tekstu jako np. "font-size: 5vh; line-height: 100%" zapewnimy, że na ekranie powinno zmieścić się dokładnie 20 linijek tekstu (bez konieczności przewijania).

Jednostki bezwzględne

Jednostki bezwzględne są użyteczne tylko wtedy, gdy fizyczne własności medium wyjściowego (np. monitor) są znane. Należy ich używać zawsze wtedy, gdy zależy nam, aby wybrany element zajmował zawsze taki sam obszar na ekranie, niezależnie od rozdzielczości i wielkości monitora. Choć rozdzielczość może się zmienić, to jeśli element taki miał wymiar np. 10cm, to tak pozostanie również w nowej rozdzielczości.

  • in - cale (1in = 2.54cm)
  • cm - centymetry
  • mm - milimetry
  • pt - punkty (1pt = 1/72in) - często używane przy definiowaniu rozmiaru czcionki w edytorach tekstu
  • pc - pika (1pc = 12pt)
  • px - piksele (1px = 1/96in)

Porównanie jednostek długości
Jednostki względne
5em (czcionka 10px)wys. czcionki
 
5ex (czcionka 10px)wys. małej litery
 
5ch (czcionka 10px)szer. cyfry "0"
 
5remwys. czcionki korzenia
 
5vw5% szer. "okna"
 
5vh5% wys. "okna"
 
5vmin5% min. szer./wys. "okna"
 
5vmax5% max. szer./wys. "okna"
 
Jednostki bezwzględne
1incale
 
1cmcentymetry
 
10mmmilimetry
 
30ptpunkty
 
3pcpika
 
50pxpiksele
 

Procenty

Format wartości procentowej składa się z opcjonalnego znaku liczby ("+" - domyślny lub "-"), liczby całkowitej lub rzeczywistej oraz znaku procentu ("%"). Należy pamiętać, że nie każdy parametr może przyjąć wartość ujemną!

Wartość procentowa jest zawsze określana względem innej wartości np. długości. Każda właściwość która pozwala podać wartość procentową, definiuje także do czego się ona odnosi. Może ona dotyczyć innej właściwości tego samego elementu, przodka (wyżej w hierarchii drzewa dokumentu) lub wartości kontekstu formatowania (np. szerokość obejmującego bloku).

Kąty

Wartości kątowe są używane przez słuchowe arkusze stylów (aural). Format wartości kątowej składa się z opcjonalnego znaku liczby ("+" - domyślny lub "-"), liczby całkowitej lub rzeczywistej oraz jednostki kąta. Wartość kątowa może być ujemna.

Jednostkami kątów są:

  • deg - stopnie (1deg = 1.11111...grad = 0.01745...rad)
  • grad - gradusy (1grad = 0.9deg = 0.01571...rad)
  • rad - radiany (1rad = 57.29578...deg = 63.66198...grad)
  • turn - obroty (CSS 3)

Kąt pełny: 360deg = 400grad = 2πrad = 1turn

Wartości kątów są normalizowane przez pośrednika użytkownika (przeglądarkę internetową) do zakresu 0-360deg (np. -10deg = 350deg).

Czas

Wartości czasów są używane przez słuchowe arkusze stylów (aural). Format wartości czasowej składa się z liczby całkowitej lub rzeczywistej oraz jednostki czasu. Wartość ujemna jest niedozwolona!

Jednostkami czasu są:

  • ms - milisekundy (1ms = 0.001s)
  • s - sekundy (1s = 1000ms)

Częstotliwość

Wartości częstotliwości są używane przez słuchowe arkusze stylów (aural). Format wartości częstotliwości składa się z liczby całkowitej lub rzeczywistej oraz jednostki częstotliwości. Wartość ujemna jest niedozwolona!

Jednostkami częstotliwości są:

  • Hz - herce (1Hz = 0.001kHz)
  • kHz - kiloherce (1kHz = 1000Hz)

Na przykład: dźwięk o częstotliwości 200Hz (lub 200hz) jest basowy, a o częstotliwości 6kHz (lub 6khz) - sopranowy.

Łańcuchy znakowe

Łańcuchy znakowe (tzw. strings) mogą być pisane w podwójnym cudzysłowie ("...") lub w pojedynczym ('...'). Łańcuchy ograniczone podwójnym cudzysłowem nie mogą już zawierać wewnątrz takiego znaku - wtedy należy użyć znaku odwróconego ukośnika (backslash) przed cudzysłowem wewnątrz. Tzn. aby wpisać następujący string: "123"123" (niepoprawnie!), należy podać: "123\"123" (poprawnie). To samo dotyczy pojedynczego cudzysłowu (zamiast '123'123' należy wpisać '123\'123'). Natomiast dozwolony jest zapis: "123'123" lub '123"123'.

Niedozwolone jest bezpośrednie użycie znaku nowej linii (przez przełamanie linii klawiszem Enter). Należy zamiast tego użyć znaku \A.

Jeśli łańcuch jest bardzo długi, można go przedzielić na dwie linie, ale wtedy trzeba koniecznie postawić na końcu pierwszej linii (w miejscu przedzielenia tekstu) znak odwróconego ukośnika \ (backslash). Po znaku \ ani przed następną linią nie należy już stawiać cudzysłowu. Przykładowo wyrażenie:

"1234567890\
12345"
jest równoważne łańcuchowi:
"123456789012345"

Niestety sposób ten nie zawsze działa poprawnie!

W łańcuchach znakowych można wprowadzać znaki ASCII używając notacji: \HEX, gdzie HEX jest jednobajtową liczbą szesnastkową (maksymalnie dwie cyfry 0-F). Natomiast aby wprowadzić znak Unicode, wpisujemy \HHHH, gdzie HHHH jest dwubajtową liczbą szesnastkową (dokładnie cztery cyfry 0-F), tzn. należy obowiązkowo wpisać cztery cyfry. Na przykład:

"\A"  = "\000A" = Enter
"\22" = "\0022" = '"'
"\27" = "\0027" = "'"

Rozdzielczość

(CSS 3)

Jednostki rozdzielności określają wielkość pojedynczej "plamki" w graficznej reprezentacji obrazu, wskazując ile takich plamek zmieści się na długości odpowiednio: 1in, 1cm lub 1px. Używane są np. do ustawiania jakości wydruku - im większa rozdzielczość, tym bardziej szczegółowy obraz.

Jednostkami rozdzielności są:

  • dpi - plamki na cal (ang. dots per inch)
  • dpcm - plamki na centymetr (ang. dots per centimeter)
  • dppx - plamki na piksel (ang. dots per pixel); 1dppx = 96dpi