Cascading Style Sheets, česky “kaskádové styly” je jazyk, který definuje vzhled HTML dokumentu. V současnosti se používá specifikace verze 3.
Blok deklarace CSS se skládá ze selektoru a bloku deklarací vlastnost: hodnota
oddělené dvojtečkou. Každá z deklarací se ukončuje středníkem. Celý blok je uzavřen do složených závorek { }
.
🌍 Dokumentace na https://www.w3schools.com/css/default.asp
Deklaraci lze do HTML dokumentu umístit třemi různými způsoby (způsoby je možné navzájem kombinovat). Podrobně na https://www.w3schools.com/css/css_howto.asp.
🖥️ Video tutoriál: Tři způsoby vložení CSS na stránku (35 min)
Definice stylů se vkládají do jiného souboru (má příponu .css
). Smyslem tohoto řešení je, že jeden css soubor ovlivní více html stránek - všechny tak mají jednotný vzhled.
Vkládá se značkou <link>
do hlavičky dokumentu (bloku <head>
):
<link rel="stylesheet" href="styly.css">
Definice stylů se o vkládají do hlavičky stránky mezi značky <style></style>
:
<style>
h1 {
color: red; /* cervena barva */
}
</style>
...
</head>
Styl se vkládá přímo ke značce do atributu style="..."
. Pokud vhodná značka není, lze využít neutrální značky:
<span></span>
řádkový element<div></div>
blokový element<p style="color: red;">červený text</p>
<p>text <span style="color: red;">červený</span> text</p>
Inlinový styl má nejvyšší prioritu – “přebije” styly externí i interní a interní styl má vyšší prioritu než externí.
Text odstavce v ukázce níže bude červený a zarovnaný na střed:
<style>
p {
text-align: center;
color: green;
}
</style>
...
<p style="color: red;">...text odstavce...</p>
Selektor je html značka/značky, třída apod., který definuje, které styly se ne něj budou aplikovat.
selektor {
vlastnost: hodnota;
vlastnost: hodnota;
}
🖥️ Video tutoriál: CSS třídy (32 min)
Níže jsou uvedeny běžné typy selektorů (s těmi si vystačíme). Další typy jsou na webu https://www.w3schools.com/css/css_selectors.asp.
Selektor typu aplikuje styl na všechny značky se stejným názvem. Název značky se píše bez lomených závorek h1
, nikoliv <h1>
.
<style>
p {
text-align: center;
color: red;
}
</style>
<p>Červený odstavec zarovnaný na střed.</p>
<h2>Nadpis ovlivněn nebude</h2>
<p>Tento bude také červený a na střed.</p>
Více selektorů se odděluje čárkou (opravdu čárka, mezera by měla jiný význam a tedy výsledný efekt):
<style>
h2, p {
text-align: center;
color: red;
}
</style>
<p>Červený odstavec zarovnaný na střed.</p>
<h2>Nadpis bude také červený a na střed</h2>
<p>Červený odstavec zarovnaný na střed.</p>
Selektor potomka aplikuje styly na potomka rodičovského selektoru. Potomek se odděluje mezerou.
<style>
p a {
color: red;
}
</style>
<p> ... <a href="#">červený odkaz</a> ... </p>
<h2> ... <a href="#">nebude červený</a> ... </h2>
<div> ... <a href="#">nebude červený</a> ... </div>
Selektor třídy aplikuje styly na všechny prvky, které mají stejný atribut třídy (class="nazev"
). Selektor musí začínat tečkou následovaný názvem třídy (.nazev
).
Název třídy v definici začíná tečkou (.abc
), kdežto u značky se píše bez tečky (abc
). Názvy tříd jsou citlivé na velikost písmen a nesmí obsahovat mezery.
<style>
.doprostred {
text-align: center;
color: red;
}
</style>
<h1 class="doprostred">Červený nadpis zarovnaný na střed</h1>
<p class="doprostred">Červený odstavec zarovnaný na střed.</p>
Také lze určit, že třída má ovlivnit pouze určité prvky HTML:
<style>
p.doprostred {
text-align: center;
color: red;
}
</style>
<h1 class="doprostred">Tento nadpis nebude ovlivněn</h1>
<p class="doprostred">Tento odstavec bude červený a zarovnán na střed.</p>
🌍 Dokumentace a ukázka na developer.mozilla.com
:hover
Je jedna z celkem 50 pseudotříd které jsou v CSS dostupné. Vlastnosti uvedené v této konkrétní pseudotřídě se aplikují při přejezdu myši. Lze spojit s jakoukoliv značkou. Běžně se využívá ve spojení s hypertextovým odkazem, pro tvorbu rozbalovacích nabídek na webových stránkách, zvýraznění řádků u tabulek, pro efekty u obrázků a mnoha dalším věcem.
Použití je snadné. Za značku (na kterou se má styl vztahovat) se přidá klíčové klíčové slovo :hover
.
🌍 Více o pseudotřídách na w3schools.com/css/css_pseudo_classes.asp
<style>
a:hover { /* po najetí myší na odkaz se */
color: red; /* písmo odkazu obarví červeně */
text-decoration: none; /* a nebude podrtžené */
}
</style>
Často se využívá v kombinaci se selektorem potomka, kdy rodičovský element je buď značka nebo třída. Tato kombinace umožní vytvořit např. menu na webové stránce.
V ukázce níže se efekt :hover
aplikuje pouze na odkazy (a
) uvnitř elementu div
s třídou .menu
:
<style>
div.menu a:hover {
color: red; /* písmo odkazu obarví červeně */
text-decoration: none; /* a nebude podrtžené */
}
</style>
<div class="menu">
<a href="onas.html">O nás</a>
<a href="kontakty.html">Kontakty</a>
</div>
Existuje velké množství různých CSS vlastností a téměř neomezený počet různých hodnot. Každá vlastnost definuje, jaké jsou platné hodnoty. Pokud je v definici chyba, prohlížeč ji ignoruje – neaplikuje ji.
Některé vlastnosti mají více hodnot v přesně daném pořadí (např. border: 2px solid red;
). Hodnoty se oddělují mezerou.
vlastnost: hodnota;
vlastnost: hodnota_A hodnota_B hodnota_C;
🌍 developer.mozilla.org/en-US/docs/Web/CSS/Reference
🌍 Pojmenované barvy (w3schools.com)