CSS#
1. Co je to CSS#
CSS (Cascading Style Sheets) je jazyk, který se používá k definování vzhledu a formátování dokumentů napsaných v HTML.
CSS bylo vytvořeno v roce 1996 organizací W3C (World Wide Web Consortium) s cílem oddělit obsah webu (HTML) od jeho vzhledu (designu), což usnadňuje úpravy designu bez změny samotného kódu stránky.
2. Syntaxe CSS#
Syntaxe CSS stylu se skládá ze selektorů a deklarací stylů. Deklarace stylu pak obsahuje páry vlastnost a hodnota:
selektor {
vlastnost:hodnota;
}
Selektor určuje, na které HTML elementy se daná deklarace stylů vztahuje a deklarace stylů pak popisuje jak se tyto elementy mají zobrazit. CSS vlastnost se v angličtině označuje jako CSS property.
Příklad:
p {
color: red;
font-size: 14px;
}
CSS styly je možné psát i bez odsazování:
p { color: red; font-size: 14px; }
3. Vložení CSS do stránky#
Aby se CSS styly na HTML stránku aplikovaly, je třeba je do HTML stránky vložit. To lze udělat třemi způsoby:
3.1. Vložení stylu přímo do HTML#
CSS lze vložit přímo do HTML souboru pomocí <style> tagu, který se obvykle umisťuje v hlavičce dokumentu <head>:
<!doctype html>
<html lang="cs">
<head>
<style>
h1 { color: blue; }
p { color: red; font-size: 14px; }
</style>
</head>
<body>
<h1>Já jsem modrej</h1>
<p>A já červenej</p>
</body>
</html>
3.2. Vložení pomocí externího souboru#
CSS styly lze také uložit do externího souboru a ten pak vložit na stránku pomocí <link> tagu:
<!doctype html>
<html lang="cs">
<head>
<link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<body>
<h1>Já jsem modrej</h1>
<p>A já červenej</p>
</body>
</html>
3.3. Vložení stylu přímo k elementu#
Téměř každý HTML element má také volitelný atribut style, kterým je možné upravit styl konkrétního elementu:
<h1 style="color: blue;">Já jsem modrej</h1>
<p style="color: red;">A já červenej</p>
Já jsem modrej
A já červenej
Co je lepší?
Všechny tři způsoby jsou funkčně ekvivalentní, obvykle ale bývá preferované ukládání CSS do externího souboru z důvodu lepší přehlednosti a organizace projektu. Znamená to ale, že prohlížeč musí udělat nový dotaz na server a stáhnout CSS soubor. Za některých situací, kdy je třeba CSS stylů málo může být vloženo CSS přímo do stránky a urychlit tak načítání stránky.
Rule of thumb: Pokud si nejste jistí, vkládejte CSS jako externí soubor.
4. Základní možnosti CSS selektorů#
CSS selektory definují, které HTML elementy budou ovlivněny deklarovanými styly. Zde je přehled základních typů CSS selektorů a jejich použití.
4.1. Selektor na jméno elementu#
Selektor na jméno elementu umožňuje stylovat všechny elementy daného jména:
p { /*...*/ }
Styl se v tomto případě aplikuje na všechny <p> elementy.
4.2. Selektor na třídu#
Selektor na třídu umožňuje stylovat všechny elementy, které mají přiřazenou specifickou třídu. Selektory na třídu začínají tečkou ., následovanou názvem třídy:
.my_class { /*...*/ }
Tento styl se aplikuje na všechny elementy, které mají nastaven atribut class na hodnotu my_class. Tedy třeba <div class="my_class"> ... </div>
4.3. Selektor na id#
Selektor na id cílí na konkrétní element, který má přiřazené unikátní id. Selektory na id začínají křížkem # následovaným id:
#my_id { /*...*/ }
Tento styl se aplikuje na element s id my_id , například <div id="my_id"> ... </div>
4.4. Pseudotřídy#
Pseudotřídy se používají k definování speciálního stavu elementu. Příkladem může být pseudotřída :hover, která aplikuje styl až když uživatel najede myší na element:
a { color: green; }
a:hover { color: red; }
Tento styl změní barvu textu všech odkazů na zelenou, když na ně ale uživatel najede myší, změní barvu na červenou. CSS nabízí celou řadu pseudotříd jejich seznam naleznete v CSS Tutoriálu
5. Základní CSS styly#
5.1. Barva textu color#
Vlastnost color definuje barvu textu. V CSS je povoleno několik způsobů zadávání barev (nejen v color ale i v dalších vlastnostech pracujících s barvou):
Hexadecimální hodnoty:
#FFCC33(složení hexadecimálního zápisu složek RRGGBB), případně ve zkrácené verzi #FC3 (což odpovídá #FFCC33)RGB:
rgb(250, 100, 50)RGBA (s alfa kanálem pro průhlednost):
rgba(250, 100, 50, 0.5)(poloprůhledná)HSL (odstín, sytost, jas):
hsl(0, 100%, 50%)(červená)Slovním zápisem barev:
red,blue,green, atd. Úplný seznam dovolených barev naleznete zde.
5.2. Pozadí background#
Vlastnost background umožňuje definovat pozadí. Jeho hodnota může být buď CSS barva, například:
body { background: #FFCC99; }
případně odkaz na obrázek, který je vhodné doplnit o informaci o tom, jak se má obrázek na pozadí opakovat (tiling), případně jak se má napozicovat. Například:
body { background: #FFCC99 url("image.png") repeat-y right top; }
vytvoří pozadí stránky, které se bude vertikálně (repeat-y) opakovat obrázek (image.png) vodorovně, přičemž první obrázek bude umístěn v pravém horním rohu stránky (right top). Na ploše, kde obrázek nebude ze zobrazí barva #FFCC99. Každá ze složek hodnoty vlastnosti background je nepovinná, a pokud není uvedena, použije se výchozí hodnota. Více o vlastnosti background naleznete v referenční příručce.
V CSS je také možné použít odvozené vlastnosti pro specifikaci pozadí. Tento příklad je ekvivalentní výše uvedenému zápisu:
body {
background-color: #FFCC99;
background-image: url("image.png");
background-repeat: repeat-y;
background-position: right top;
}
5.3. Font font#
Vlastnost font popisuje styl písma. Zahrnuje opět řadu odvozených vlastností, zejména:
font-style:normal,italic(kurzíva) nebooblique(taky kurzíva, ale trochu jinak.)font-weight:normal,bold(tučně) nebo číslo, např900font-size: Velikost fontu, buď velikost v pixelech (12px), procentech(90%), em (1.2em), nebo klíčové slovo.font-family: Název písma, např.Arial,Times New Roman,Courier New, atd.
Všechny výše uvedené lze zapsat i inline pouze do vlastnosti font. Pro správné pořadí zápisu jednotlivých hodnot konzultujte referenční příručku.
5.4. Formátování textu#
text-align: Zarovnání textu v rámci bloku (left,right,center,justify).text-transform: Transformace textu na velká/malá písmena (uppercase,lowercase,capitalize)text-indent: Odsazení prvního řádku textu (např.50px)line-height: Výška řádkutext-decoration: Dekorace textu (underline,line-through,overline)
5.5. width a height#
Základními vlastnostmi, které lze nastavit je výška a šířka elementu. Hodnoty se mohou zadávat v několika jednotkách
px: pixely, například100pxem: násobky velikosti písma rodičovského elementu, například1.2em%: procenta rozměru rodičovského elementu, například50%vw,vh: procenta z šířky/výšky viewportu, např.80vw
5.6. margin a padding#
U vlastností padding a margin můžeme nastavit buď jednu hodnotu, která se pak aplikuje na všechny strany boxu, dvě hodnoty, kde se první hodnota použije na horní top a dolní bottom odsazení a druhá hodnota na levé left a pravé right odsazení. Dále je možné zapsat čtyři hodnoty, které se pak aplikují odsazení shora top, zprava right, odspodu bottom a zleva left.
Je možné také použít odvozené vlastnosti margin-left, margin-right, margin-top a margin-bottom a analogicky pro padding padding-left, padding-right, padding-top a padding-bottom. Zápis:
.box { margin: 12px 14px 16px 18px; }
je ekvivalentní zápisu
.box {
margin-top: 12px;
margin-right: 14px;
margin-bottom: 16px;
margin-left: 18px;
}
5.7. border#
Definuje okraj kolem elementu. Lze specifikovat
border-width: šířku rámečkuborder-style: styl okraje, povoleny hodnotysolid,dotted,dashed,double,groove,ridge,insetaoutsetborder-color: barva rámečku