CSS jednotky, barvy, proměnné, písma a ligatury
Vlastnosti CSS (CSS properties) jsou parametry, které definují, jak má prvek vypadat. Každé pravidlo má tvar vlastnost: hodnota; a každá vlastnost má vlastní pravidla, jaké hodnoty přijímá.
p {
color: red; /* barva textu */
font-size: 16px; /* velikost písma */
margin: 1rem; /* vnější odsazení */
}
CSS dnes obsahuje stovky vlastností, ale ovládat jich aktivně potřebuješ jen pár desítek. Důležité je rozumět, jak fungují hodnoty a jednotky, které do vlastností dosazuješ.
Jednotky určují číselné hodnoty (rozměry, velikosti písma, mezery). Dělí se na absolutní (pevně dané) a relativní (závisí na kontextu).
| Jednotka | Popis | Kdy použít |
|---|---|---|
px |
CSS pixel, logická jednotka | Univerzální, nejpoužívanější |
cm, mm, in |
Fyzické délky | Tiskové stylesheets |
pt |
Bod, 1pt = 1/72 palce | Tisk, typografie |
pc |
Pica, 1pc = 12pt | Tisk |
Pozor: CSS pixel není fyzický pixel. Na HiDPI displejích (Retina, OLED telefonech) odpovídá více fyzickým pixelům. Prohlížeč to řeší automaticky, ale je dobré o tom vědět při práci s
image-renderingnebo<canvas>.
| Jednotka | Závisí na | Příklad |
|---|---|---|
em |
font-size rodičovského prvku |
Mezery uvnitř textu |
rem |
font-size kořenového <html> |
Globální konzistentní velikosti |
ex |
Výšce "x" v aktuálním písmu | Vertikální zarovnání |
ch |
Šířce znaku "0" v aktuálním písmu | Šířka inputu pro N znaků |
lh |
Aktuální line-height |
Vertikální mezery podle řádku |
cap |
Výšce kapitálky | Mřížka podle velkých písmen |
html { font-size: 16px; }
.rodic {
font-size: 20px;
}
.rodic .dite {
font-size: 1.5em; /* 1.5 × 20px = 30px (závisí na rodiči) */
margin: 1rem; /* 1 × 16px = 16px (závisí na :root, předvídatelné) */
}
rem je předvídatelnější, protože nezávisí na vnořování. Doporučení:
rem pro font-size, margin, padding, gap (globální mezery)em pro vlastnosti, které mají škálovat s textem (např. border-radius u tlačítka)px pro tenké okraje (border: 1px solid) a stínítka| Jednotka | Co znamená |
|---|---|
vw |
1 % šířky viewportu |
vh |
1 % výšky viewportu |
vmin |
1 % menší ze stran viewportu |
vmax |
1 % větší ze stran viewportu |