<p style="color: red;">Text</p>CSS = Cascading Style Sheets
Slouží k oddělení obsahu (HTML) od vzhledu
Ovlivňuje:
barvy
rozložení
typografii
animace
responzivitu
Lepší údržba kódu
Opakované použití stylů
Responzivní design
Přístupnost (accessibility)
CSS1 (1996)
CSS2 / 2.1
CSS3 – modulární přístup
Moderní CSS (Flexbox, Grid, Variables)
<p style="color: red;">Text</p>Nevhodné pro větší projekty
Špatná údržba
<style>
p { color: blue; }
</style><link rel="stylesheet" href="style.css">selector {
vlastnost: hodnota;
}p {
color: green;
font-size: 16px;
}/* Toto je komentář */Element
.class
#id
*
p {}
.box {}
#header {}
* {}Potomek (div p)
Přímý potomek (div > p)
input[type="text"] {}
a[href^="https"] {}Pořadí stylů
Důležitost pravidel
!important (nedoporučeno)
inline > id > class > element
Výpočet skóre
Některé vlastnosti se dědí (color, font)
Jiné ne (margin, border)
content
padding
border
margin

div {
width: 200px;
padding: 10px;
border: 2px solid black;
margin: 20px;
}font-family
font-size
font-weight
line-height
letter-spacing
font-family: 'Roboto', sans-serif;názvy
HEX
RGB / RGBA
HSL
color: #ff0000;
background-color: rgba(0,0,0,0.5);background-color
background-image
background-size
background-position
Volba jednotek v CSS zásadně ovlivňuje:
responzivitu
přístupnost (zoom, změna velikosti písma)
chování layoutu na různých zařízeních
Jednotky dělíme na: absolutní, relativní, viewport jednotky
Nejpoužívanější jednotka v CSS.
Není fyzický pixel displeje
Je relativní k zařízení (CSS pixel)
Nemění se při změně velikosti písma
.box {
width: 200px;
border: 1px solid black;
}okraje (border)
stíny
jemné doladění layoutu
Nevhodné pro nastavemí velikosti textu (zhoršení přístupnosti).
cm, mm, in
pt, pc
Používají se prakticky jen pro tisk (@media print).
Relativní k velikosti písma aktuálního elementu.
.parent {
font-size: 20px;
}
.child {
font-size: 1.5em; /* 30px */
}Vlastnosti:
násobí se (může být nečekané)
ovlivněno zanořením
Použití: paddingy, marginy vázané na text
Relativní k velikosti písma kořenového elementu (html).
html {
font-size: 16px;
}
p {
font-size: 1.25rem; /* 20px */
}Výhody:
předvídatelné
vhodné pro přístupnost
doporučeno pro typografii
Relativní k nadřazenému elementu.
.container {
width: 80%;
}Pozor u height funguje jen pokud má rodič definovanou výšku
Použití pro nastavení šířky layoutu či obrázku.
Viewport = viditelná část okna prohlížeče.
Jednotky:
vw – 1 % šířky viewportu
vh – 1 % výšky viewportu
vmin – menší z hodnot vw/vh
vmax – větší z hodnot vw/vh
.heroW {
width: 100vw;
}
.heroH {
height: 100vh;
}Typické použití u fullscreen sekce nebo responzivní layouty
Pozor u vh na mobilní prohlížeče, adresní řádek mění skutečnou výšku
| Jednotka | Relativní k | Typické použití |
|---|---|---|
px | zařízení | border, shadow |
em | rodičovský font | paddingy |
rem | root font | typografie |
% | rodič | layout |
vw/vh | viewport | fullscreen sekce |
Typografie: rem
Layout: %, vw
Spacing: rem, em
Jemné detaily: px
html {
font-size: 16px;
}
.container {
max-width: 70rem;
margin: 0 auto;
padding: 2rem;
}
.card {
padding: 1.5em;
border-radius: 8px;
}Používání px všude
Kombinování em bez pochopení dědičnosti
height: 100vh na mobilu bez testování
Používat class selektory
Nepoužívat !important
Konzistentní pojmenování
Strukturovat CSS
CSS je základ moderního webu
Responzivita je nutnost
Praxe je klíčová