Kaskádové styly (Cascading Style Sheets) umožňují formátovat (X)HTML či XML dokumenty.
Ukázky možností CSS:
Kaskádové styly představují pravidla, kterými říkáme:
{}: );Níže uvedené pravidlo se aplikuje na nadpis 1. úrovně, kterému nastaví modrou barvu.

Předpokladem pro tvorbu kaskádových stylů je správně strukturovaný dokument (X)HTML či XML:
Výsledný dokument by měl být přehledný. Začínat nejdůležitějšími informacemi a postupovat k méně důležitým.
Způsob jakým se stránka zobrazí na výstupním zařízení (počítač , tiskárna, hlasový výstup atd.) je možné definovat:
Slouží k definici stylu elementu ve kterém je definován.
Pokud se rozhodnete u elementů používat tyto atributy, je nutné v hlavičce dokumentu definovat typ stylového jazyka.
... <meta http-equiv="content-style-type" content="text/css" /> </head> <body> ... <h2 style="color: red;">Červený nadpis</h2> <p style="color: blue;">Modrý text odstavce</p> ...
Poznámka: V případě HTML dokumentu element meta na konci lomítko nemá.
Uzavřením stylu do komentáře znepřístupníme styly pro prohlížeče, které kaskádové styly (CSS) ještě neznají (CSS je podporováno až od HTML 3.2).
...
<style type="text/css">
<!--
h2 {color: red;}
p {color: blue;}
-->
</style>
</head>
<body>
...
<h2>Červený nadpis</h2>
<p>Modrý text odstavce</p>
... V samotném obsahu elementu nejsou rozeznávány znakové entity.
Uzavřením stylu mezi <![CDATA[ a ]]> zajistíte rozeznávání znakových entit. Protože se ale nejedná o prvky stylu je vhodné je uzavřít do komentářů daného stylového jazyka.
...
<style type="text/css">
/* <![CDATA[ */
h2 {color: red;}
p {color: blue;}
/* ]]> */
</style>
</head>
<body>
...
<h2>Červený nadpis</h2>
<p>Modrý text odstavce</p>
... ... <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> ... <h2>Červený nadpis</h2> <p>Modrý text odstavce</p> ...
Připojený soubor style.css obsahuje:
h2 {color: red;}
p {color: blue;}Pravidlo @import je doporučeno uvádět v CSS vždy jako první.
...
<style type="text/css">
<!--
@import url("style.css");
h2 {color: red;}
p {color: blue;}
-->
</style>
</head>
<body>
...
<h2>Červený nadpis</h2>
<p>Modrý text odstavce</p>
... ...
<style type="text/css">
/* <![CDATA[ */
@import url("style.css")
h2 {color: red;}
p {color: blue;}
/* ]]> */
</style>
</head>
<body>
...
<h2>Červený nadpis</h2>
<p>Modrý text odstavce</p>
...
Příklad pravidla @import v externím CSS souboru:
@import url("style.css")
h2 {color: red;}
p {color: blue;}
Doporučení:
| Způsob | Podpora prohlížečů | Poznámka |
|---|---|---|
| <link> | všechny prohlížeče | |
| <style> | IE 5.5 nerespektuje atribut media | |
| @import url("ie4.css") | dodatky pro IE4 | odřízne NN4 |
| @import "moderni_prohlizece.css" | moderní prohlížeče (od IE5+, NN6/Moz, Opera) | odřízne IE4 |
NN4 a IE4 z kaskádových stylů spolehlivě podporují pouze styl a barvu písma.
| Příloha | Velikost |
|---|---|
| prideleni-stylu.zip | 1.04 KB |
CSS dokáží rozlišovat výstupní zařízení (médium).
<style type="text/css" media="screen, projection">
@import url("style.css") screen, projection
<link rel="stylesheet" type="text/css" href="style.css" media="screen, projection" />
Je možné použít v jakémkoli typu zápisu (jak v atributu style, v elementu <style>, tak i v externím CSS souboru).
@media screen, projection {
h2 {color: red;}
p {color: blue;}
}
<link rel="stylesheet" type="text/css" media="screen and (min-width: 960px), projection and (min-width: 960px)" href="screen-projection-960.css" />
@media screen and (min-width: 960px),
projection and (min-width: 980px) { …STYLES… }stylesheets[screen and (min-width: 480px) and (max-width: 760px)][] = design/screen-480-760.css stylesheets[screen and (min-width: 960px)][] = design/screen-960.css
Nativní podpora: IE9+, Firefox 3.5+, Safari 3+, Chrome, Opera 7+, iOS Safari 3.2+, Opera Mini 5+, Opera Mobile 10+, Android Browser 2.1+
| Device | CSS px | Actual px | Device pixel ratio | dpi |
|---|---|---|---|---|
| iPhone 2,3 | 320x480 | 320x480 | 1 | |
| iPhone 4 | 320x480 | 640x960 | 2 | 192 |
| iPhone 5 | 320x568 | 640x1136 | 2 | 192 |
| iPad mini, 1, 2 | 768x1024 | 768x1024 | 1 | |
| iPad 3, 4 | 768x1024 | 1536x2048 | 2 | 192 |
| Android 2.3 | 1.5 | 144 | ||
| Android 4.1 | 2 | 192 | ||
| Windows 8 Phone | ||||
| Interenet Explorer on Windows Phone 8 | 96 ??? | |||
| Opera Mini | ||||
| Firefox OS | ||||
| Firefox for Mobile (Fennec) | ||||
| Google Nexus 7 | 1.3 | 124.8 | ||
| Playbook |
Příklad Media Queries pro Tablet:
@media
(min-width: 44em) { /* ...STYLES... */}Příklad Media Queries pro Tablet s Retina displejem:
@media
(min-width: 44em) and (-webkit-min-device-pixel-ratio: 1.25),
(min-width: 44em) and (min-resolution: 120dpi) { /* ...STYLES... */}@media
(min-width: 44em) and (-webkit-min-device-pixel-ratio: 1.3),
(min-width: 44em) and (min-resolution: 124.8dpi) { /* ...STYLES... */}@media
(min-width: 44em) and (-webkit-min-device-pixel-ratio: 1.5),
(min-width: 44em) and (min-resolution: 144dpi) { /* ...STYLES... */}@media
(min-width: 44em) and (-webkit-min-device-pixel-ratio: 2),
(min-width: 44em) and (min-resolution: 192dpi) { /* ...STYLES... */}| Smartphone | Tablet | Desktop | TV | ||||
|---|---|---|---|---|---|---|---|
| Rozlišení zařízení (velikost okna aplikace) [px] | 320x480 portrait | 480x320 landscape | 768x1024 portait | 1024x768 landscape | 1280x960(1024) | 1680 | 3456 |
| Bod zlomu (break point) | 320 | 480 | 650, 700, 704, 740, 767, 768 | 979, 980, 1024 | 1025, 1120, 1200, 1220 | 3456 | |
| Maximální šířka objektu (při 10px okraji) | 300 | 460 | 720 | 960 | 1200 | 3436 | |
| Šířka sloupce při gridu 12 (max. šířka/12) | (320) | (480) | 60 | 80 | 100 | ||
| Téma Omega 3 | global | global | >=740 (narrow) |
740-840 (narrow landscape) >=980 (normal) =1024 (normal landscape) |
>=1220 | ||
| Téma Omega 4 | >=44em (16px * 44em ~ 704px) |
>=70em (16px * 70em ~ 1120px) |
|||||
| Téma AdaptiveTheme | <=320 | 321-480 | 481-768 | 796-1024 | >=1025 | ||
| Bootstrap | <=480 | <=767 | 768-979 | >=1200 | |||
| Foundation | |||||||
| templatemonster.com | 320 | 480 | 768 | 980 | |||
Podporu je možné rozšířit pomocí JavaScript knihovny css3-mediaqueries.js i na IE 5+, Firefox 1+ and Safari 2 (umožňuje navíc i podporu průhlednosti u PNG obrázků).
Poznámky:
Pro rychlé vytvoření responzivního rozvržení je možné použít generátory nebo využít některého z frameworků např.:
Mé požadavky:
Zajímavé zdroje informací:
Techniky vytváření vzhledu:
CSS:
Optimalizace:
Pro sjednocení vzhledu (vykreslení) všech prvků napříč moderními prohlížeči je vhodné použít normalize.css (pro zastaralé prohlížeče je nutné použít dnes již "zavržený" reset.css).
Normalize.css:
Většina mobilní prohlížečů přizpůsobí stránku (pomocí změny měřítka "scale") tak, aby se celá vešla na obrazovku (=>téměř nečitelný text). Pro zamezení tohoto chování je tedy třeba do hlavičky vložit níže uvedený meta tag (umožňuje změnu šířky při natočení):
<meta name="viewport" content="width=device-width, initial-scale=1">
Více viz např. developer.mozilla.org/en-US/docs/Mozilla/Mobile/Viewport_meta_tag
Tip: Alternativou k výše uvedeném tagu muže být CSS @viewport
Pružné (flexibilní) obrázky a multimédia:
img,
embed,
object,
video {
display: block; /* IE (display: block; | width: auto; | width: 100%;) */
max-width: 100%;
height: auto;
vertical-align: top; /* optional */
-ms-interpolation-mode: bicubic;
}Tip: Responsive images – how to prevent reflow
Responzivní tabulky
<script>
$(function () {
$('.footable').footable({
breakpoints: {
phone: 749,
tablet: 969
}
});
});
</script><script>
$(function () {
$('.footable').footable({
breakpoints: {
phone: 749,
tablet: 969
}
}).bind({
'footable_breakpoint' : function(e) {
console.log(e.breakpoint);
}
});
});
</script>
U mobilních telefonů je možné zakázat funkci automatického zvětšení písma, ovšem sníží se tím čitelnost textu:
html {
/*-webkit-text-size-adjust: none;*/
}
Dostatečná velikost aktivního prvku (položka navigace, tlačítko, formulářový prvek atd.):
Základní HTML5 struktura (layout) stránky:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>HTML 5 dokument</title>
<meta name="description" content="Základní šablona HTML 5 dokumentu" />
<meta name="keywords" content="html,dokument,šablona" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<header id="header">
<p>Site Name</p>
</header>
<nav>
<ul id="main-nav">
<li><a href="#">Home</a></li>
</ul>
</nav>
<main>
<h1>Page Title</h1>
<section>
<h2>Section Title
<article class="post">
<h3>Atricle Title
...
</article>
</section>
<section>
<h2>Section Title
<article class="post">
<h3>Atricle Title
...
</article>
</section>
</main>
<aside id="sidebar">
<section class="block">
...
</section>
</aside>
<footer id="footer">
...
</footer>
</body>
<html>Element main byl přidán až v HTML5.1:
main {display: block;}<script>document.createElement('main');</script>V HTML5 je možné vynechat atribut type:
Tipy: Vyhněte se nejobvyklejším chybám v HTML5
Využijte výhod validních podmíněných komentářů (IE Conditional Stylesheets vs CSS Hacks) přímo pro element <html>:
<!--[if IEMobile 7]><html class="ie iem7"><![endif]--> <!--[if lte IE 6]><html class="ie lt-ie9 lt-ie8 lt-ie7"><![endif]--> <!--[if (IE 7)&(!IEMobile)]><html class="ie lt-ie9 lt-ie8"><![endif]--> <!--[if IE 8]><html class="ie lt-ie9"><![endif]--> <!--[if (gte IE 9)|(gt IEMobile 7)]><html class="ie"><![endif]--> <!--[if !IE]><!--><html><!--<![endif]-->
IE8- můžete nechat v jednosloupcovém "mobilním" vzhledu viz Leaving Old Internet Explorer Behind nebo podporu Media Queries zpřístupníte pomocí JavaScriptu.
X-UA-Compatible zpřístupňuje poslední dostupný Internet Explorer mód:
<meta http-equiv="x-ua-compatible" content="ie=edge,chrome=1" />
<!--[if lte IE 9]> <meta http-equiv="x-ua-compatible" content="ie=edge" /> <![endif]-->
Pro podporu media queries v IE8- je třeba použít media-queries.js (nabízí více možností ovšem na úkor výkonu) nebo respond.js:
<!--[if lt IE 9]> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]-->
Pro podporu nových HTML5 prvků (header, nav, article, aside, section, footer atd.) v IE8- je nutné k dokumentu připojit html5shiv (pouze pro IE8-) nebo Modernizr (nabízí více možností):
<!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <![endif]-->
Tipy:
Selektory určují prvky, pro které má definice platit.
Vybírá libovolný element (všechny elementy v dané hierarchii).
Příklad CSS:
* {
color: blue;
}
Vybírá element podle typu.
Část zdrojového kódu:
<p>text odstavece</p>
Příklad CSS:
p {
color: blue;
}Vybere element označený definovanou třídou.
Část zdrojového kódu:
<p class="odstavec">text odstavece</p> <p class="poznamka">text poznámky</p> <div class="poznamka">text poznámky</div>
Příklad CSS:
.odstavec {
color: blue;
}
.poznamka {
color: red;
}
div.poznamka {
border: 1px solid red;
padding: 2px;
}Na stránce může být libovolné množství prvků se stejnou třídou.
Tip: An ultimate guide to CSS pseudo classes and pseudo elements ![]()
Příklad použití CSS na všechny nenavštívené odkazy:
a:link {
color: #039;
}Příklad použití CSS na všechny navštívené odkazy:
a:visited {
color: #930;
}Příklad použití dynamického CSS aktivované ve chvíli, kdy uživatel na odkaz najede kurzorem myši (:hover používejte až za :link a :visited):
a:hover {
color: #f30;
text-decoration: underline;
}Příklad použití dynamického CSS aktivované prvku, který je připraven pro příjem vstupu ze vstupního zařízeni např. na který je právě kliknuto myší, stisknuta klávesa Enter nebo mezerník (:active používejte až za :link, :visited a :hover):
a:active {
color: #f30;
text-decoration: underline;
}Příklad použití dynamického CSS při výběru odkazu, tlačítka, výběrovného seznamu a dalších formulářových prvnků uživatelem např. pomocí klávesnice:
a:focus {background: yellow;}
a:focus:hover {background: white;}První podřízený prvek jiného prvku:
p:first-child {text-indent: 2em;}
p:first-child em {font-weight: bold;}První, druhá, předposlední a poslední buňka tabulky:
td:first-child {width: 20%;}
td:nth-child(2) {width: 60%;}
td:nth-last-child(2) {width: 40%;}
td:last-child {width: 20%;}Každá třetí řádek "counter" (3n) – pozor počátek je nula, proto je posun "offset" nastaven na jedničku (+1):
tr:nth-child(3n+1) {
background-color: #eee;
}Příklad různého nastavení dvojice uvozovek pro celý dokument a atribut prvku <cite> v jazyce čeština a angličtina:
:lang(cs) {quotes: '„' '“' "‚" "‘"}
:lang(en) {quotes: '“' '”' "‘" "’"}cite[lang="cs"] {quotes: '„' '“' "‚" "‘"}
cite[lang="en"] {quotes: '“' '”' "‘" "’"}CSS3 od sebe označením odlišuje pseudo-třídy, které používají jednu dvojtečku :a pseudo-elementy u kterých se používá "dvojitá dvojtečka" ::(v CSS2 se u všech pseudo prvků používá dvojtečka jednoduchá).
IE8 podporuje pouze CSS2, od IE9+ je již plná podpora CSS3 pseudo prvků. ![]()
Příklad prvního řádku odstavce:
p:first-line {text-transform: uppercase;}Příklad použití CSS na první písmeno odstavce (vybere pouze část skutečného elementu):
p:first-letter {
font-size: 300%;
font-weight: bold;
float: left;
margin-right: .1em;
}Vlastnost content umožňuje vkládat textový obsah a je možné ji používat ve spojení s pseudo-elementy :before a :after. Vlastnost content není možné aplikovat na "neobsahové" elementy jako je např. <input>, <select>, <img> atd. ![]()
Příklad uvozovek definovaných na úrovni odstavce a zároveň kolem něj vložených „prázdných“ uvozovek:
p {quotes: '„' '“' "‚" "‘"}
p:before {content: no-open-quote}
p:after {content: no-close-quote}
cite:before {content: open-quote}
cite:after {content: close-quote}Příklad přidání nového obsahu "mezery a šipky" za prvek třídy .slideshow-next:
.slideshow-next {
position: reletive
}
.slideshow-next:after {
content: ' >';
display: block;
position: absolute;
top: 0;
right: 0;
width: 40px;
height: 40px;
background: url('design.png') no-repeat -100px 6px;
}Vybere element označený definovaným identifikátorem.
Část zdrojového kódu:
<div id="zahlavi">Záhlaví</div>
Příklad CSS:
#zahlavi {
color: green;
}
V jednom dokumentu (stránce) je možné id přiřadit pouze jedinému prvku.
Vybere element následníka, jež je vnořen do elementu předka bez ohledu na hloubku vnoření.
Část zdrojového kódu:
<div>
<img src="logo.gif" alt="Logo" />
<p>
Podrobnosti viz <a href="#">statistika přístupnosti
<img src="stat.gif" alt="Statistika" /></a>.
</p>
</div>Příklad CSS:
div img {
border: none;
}
Vybere element potomka, jež je vnořen přímo do elementu rodiče.
Část zdrojového kódu:
<div>
<img src="logo.gif" alt="Logo" />
<p>
Podrobnosti viz <a href="#">statistika přístupnosti
<img src="stat.gif" alt="Statistika" /></a>.
</p>
</div>Příklad CSS:
div > img {
border: none;
}
Poznámky:
nepoporuje IE6-Vybere druhý definovaný element, který je sourozencem prvně definovaného elementu. Oba sourozenci musí mít stejného rodiče, musí ležet na stejné úrovni v hierarchii dokumentu, ale nemusí ležet bezprostředně za sebou.
Část zdrojového kódu:
<body> <h1>Nadpis</h1> <p>První odstavec</p> <p>Druhý odstavec</p> <h2>Nadpis 2. úrovně</h2> <p>Druhý odstavec</p> <p>Druhý odstavec</p> <h3>Nadpis 3. úrovně</h3> <p>Druhý odstavec</p> <p>Druhý odstavec</p> </body>
Příklad CSS:
h2 ~ p {
color: blue;
}
V tomto příkladě se deklarovaná vlastnost odstavce nepoužije dříve, než u nadpisu 2. úrovně.
Poznámky:
nepoporuje IE6-Vybere druhý definovaný element, který je sourozencem prvně definovaného elementu. Oba sourozenci musí mít stejného rodiče, musí ležet na stejné úrovni v hierarchii dokumentu a musí ležet bezprostředně za sebou.
Část zdrojového kódu:
<body> <h1>Nadpis</h1> <p>První odstavec</p> <p>Druhý odstavec</p> <h2>Nadpis 2. úrovně</h2> <p>Druhý odstavec</p> <p>Druhý odstavec</p> <h3>Nadpis 3. úrovně</h3> <p>Druhý odstavec</p> <p>Druhý odstavec</p> </body>
Příklad CSS:
h2 + p {
color: blue;
}
Poznámky:
nepoporuje IE6-Vybere element, obsahující definovaný atribut, hodnotu atributu, nebo jeho část.
Příklad použití CSS pouze na elementy aobsahující atribut titles hodnotou odkaz:
a[title="odkaz"] {
color: blue;
}
Příklad použití CSS pouze na elementy spanobsahující atribut lang, jehož hodnoty začínají řetězcem en(en-us, en-uk):
span[lang|="en"] {
color: blue;
}
Příklad použití CSS pouze na elementy pobsahující atribut class, jehož hodnota obsahuje řetězec nadpis(nadpis1, nadpis2, ale i podnadpis):
p[class*="nadpis"] {
color: blue;
}Příklad použití CSS pouze na elementy pobsahující atribut class, jehož hodnota začíná řetězcem nadpis(nadpis1, nadpis2):
p[class^="nadpis"] {
color: blue;
}Příklad použití CSS pouze na elementy pobsahující atribut class, jehož hodnota končí řetězcem pis(nadpis, podnadpis):
p[class$="pis"] {
color: blue;
}
Poznámky:
IE7 vyžaduje striktní režim
nepoporuje IE6-
Jednoduchá deklarace přiřazuje vlastnosti jednomu selektoru.
h1 {
color: blue;
}
Vícenásobná deklarace přiřazuje vlastnosti více selektorům odděleným čárkou.
h1, h2, h3, h4, h5, h6 {
color: blue;
}
Prohlížeče komentáře ignorují. Komentáře slouží pouze autorovi k zapsání poznámek např. k lepší orientaci v kódu.
/* odstavec */
p {
color: blue; /* modra barva */
font-size: 90%; /* velikost textu */
}
Poznámka:
Komentáře je vhodné psát bez diakritiky.
Příklad CSS:
div {
margin: 1.5em 5% -10px 0;
}body {font-size: 10px;}
h1 {font-size: 240%;} /* =24px */body {font-size: 10px; /* font-size: 62.5%; */}
h1 {font-size: 2.4em;} /* =24px */
p {font-size: 1.4em;} /* =14px */
li {font-size: 1.4em;} /* =14px??? */
li li, li p /* etc */ {font-size: 1em;}Poznámky:
html {font-size: 10px; font-family: sans-serif; /* font-size: 62.5%; */}
body {
font-size: 16px; /* IE8 */
font-size: 1.6rem; /* =16px, =12pt */
}
h1 {
font-size: 24px;
font-size: 2.4rem; /* =24px */
}Poznámka: vzhledem k různým rozlišením obrazovky funguje spolehlivě snad jen při tisku.
Poznámka: vzhledem k různým rozlišením obrazovky funguje spolehlivě snad jen při tisku.
Poznámka: vzhledem k různým rozlišením obrazovky funguje spolehlivě snad jen při tisku.
Poznámka: vzhledem k různým rozlišením obrazovky funguje spolehlivě snad jen při tisku.
Definuje barvu pomocí klíčového slova:
Příklad CSS: p {color: blue;}
Definuje barvu pomocí odstínu červené, zelené a modré tzv. RGB (Red Green Blue) syntaxe.
Příklad CSS (různé zápisy barvy blue):
p {color: #00f;} /* #00F */
p {color: #0000ff;} /* #0000FF #0000fF #0000Ff */
p {color: rgb(0, 0, 255);}
p {color: rgb(0, 0, 100%);}
Při definování stylů může dojít k situaci, kdy jeden element může mít definovanou vlastnost různými způsoby, nebo na více místech. V tomto případě je třeba rozhodnout, kterou deklaraci, styl nebo zdroj stylů použít.
Priority definic:
Při existenci více zdrojů stylů stejné důležitosti rozhoduje o tom který styl se použije kaskáda.
<p style="color: blue;">
... <style type="text/css">
<!--
p {color: blue;}
-->
</style> </head> <body> ...
... <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> ...
Určuje váhu selektoru. Selektor s vyšší váhou (silnější) přepíše deklarace stejných vlastností u selektoru s nižší váhou (slabší).
<p style="color: blue;">#header {color: blue;} /* zahlavi */.note {font-size: 80%;} /* poznamka */
a:hover {text-decoration: underline;}
a[href]:after {content: " [" attr(href) "] ";}
p {color: blue;}
p:first-letter {font-weight: bold; font-size: 130%;}
* {color: blue;}Jednotlivé úrovně specifičnosti se sčítají a vyhrává ten nejsilnější.
Příklad výpočtu:
Selektor #header ul li.note p:first-letter a:hover {color: red;} má specifičnost: 0125.
V případě shody pravidel vyhrává to, které je uvedeno později.
Umožňuje upřednostnit deklaraci v případě konfliktu s jinými deklaracemi bez tohoto pravidla.
V případě střetu pravidla !important v uživatelské šabloně a pravidla !important ve stylu dokumentu, vyhraje uživatelská šablona.
a {
text-decoration: underline; !important
}
Jedná se o poslední možné řešení, běžné CSS se bez tohoto pravidla většinou obejdou.
Elementy jsou v dokumentu uspořádány ve stromové struktuře. Elementy mohou dědit hodnoty vlastností od svého nadřazeného elementu a to i po více generací. V (X)HTML je nejvyšší element html, do něj jsou vnořeny elementy head a body, do body je vnořen element h1 atd. Jedná se o pojmy následník a předchůdce. V případě přímého příbuzenství o pojmy rodič a potomek.
V CSS má každá vlastnost určeno, zda je dědičná nebo ne. U vnořeného elementu je možné zdědění vlastnosti vynutit hodnotou inherit.
Příklad:
body {
color: teal; /* vlastnost je dedicna */
border: 5px solid silver; /* vlastnost neni dedicna */
}
h1 {
border: inherit; /* vynuceni dedicnosti */
}
Poznámky:

U relativních jednotek (em, % atd.) a klíčových slov (large, small atd.) je třeba vypočítat jejich skutečnou hodnotu. Skutečné hodnoty se ještě dále upravují podle možností výstupních zařízení (násobky bodu obrazovky, barevné spektrum, možnosti tiskárny atd.).
Každá vlastnost má CSS specifikací určenu výchozí hodnotu, která se použije v případě, pokud není stanoveno jinak. U některých vlastností může výchozí hodnotu upřesnit prohlížeč.
Základní vlastnosti kaskádových stylů:
Umožňuje zkrácený zápis všech vlastností písma:
p {font: small-caps bold italic Arial 120%/1.5;}
Při použití sdružené definice jsou u neuvedených vlastností nastaveny výchozí hodnoty.
p {font: 90% bold;}
body, table {
font-family: 'Arial CE', 'Helvetica CE', Arial, Helvetica, clean, sans-serif;
}
h1, h2, h3, h4, h5, h6 {
font-family: Georgia, 'Times New Roman CE', 'Times New CE', 'Times CE', 'Times New Roman', Times, serif;
}
pre, code {
font-family: Profont, 'lucida console', 'Courier New CE',
'Courier CE', 'Courier New', Courier, Monaco, monospace;
}
Více viz Font-Family.
h2 {font-size: 185%;}
p {line-height: 1.5;}
abbr {font-variant: small-caps;}p {font-weight: normal;}
strong {font-weight: bold;}
em {font-style: italic;}
body, table {color: purple;}h1 {word-spacing: 1em;}
Nepodporuje IE5.5
h1 {letter-spacing: .3em;}
Určuje způsob zacházení s mezerami, tabulátory a konci řádků.
th {white-space: nowrap;}h1 {text-align: center;} /* na stred */
p {text-align: justify;} /* do bloku */
cite {text-align: right;} /* vpravo */
Používá se pro vertikální zarovnání např. malého obrázku na vyšším řádku nebo v tabulkách.
.horni-index {vertical-align: super;} /* v tabulce jako baseline */
.dolni-index {vertical-align: sub;} /* v tabulce jako baseline */
.co-nejvyse {vertical-align: top;}
.s-hornim-okrajem-textu {vertical-align: text-top;} /* v tabulce
jako baseline */
.doprostred {vertical-align: middle;}
.s-dolnim-okrajem-textu {vertical-align: text-bottom;} /* v tabulce
jako baseline */
.co-nejnize {vertical-align: bottom;}IE5- podporuje pouze hodnoty baseline, sub a super.
a:hover {text-decoration: underline;} /* podtrzeno */
.ne {text-decoration: line-through;} /* preskrtnuto */
.reklama {text-decoration: blink;} /* blikajici */
IE7 nezná hodnotu blink.
p {text-indent: 2em;}
.kapitalky {text-transform: capitalize;}
.mala {text-transform: lowercase;}
.velka {text-transform: uppercase;}.stin {text-shadow: 3px 3px 1px #999;}
.embossed {text-shadow: 0 -1px 1px rgba(0,0,0,0.5);}
h1 {
color: #502a2d;
letter-spacing: 0.75em;
text-shadow:
2px 2px 0 #bab0a6,
2px -2px 0 #bab0a6,
-2px 2px 0 #bab0a6,
-2px -2px 0 #bab0a6,
9px 9px 0 #a63e3b;
font-effect: outline;
}
Podpora: Firefox 3.5, Gecko 1.9.1, Opera 9.5 Safari 1.1, WebKit 100, Konqueror 3.4, Chromium 2.0.158.0
Nepodporuje IE8-, (IE5.5 podporuje pouze filtry Shadow a DropShadow)
p {direction: rtl;}
p {unicode-bidi: bidi-override; direction: rtl;}
Tipy pro češtinu:

Font Squirrel umožňuje aplikovat zvolený font písma nezávisle na fontech uživatelského operačního systému.
Výhody:
Postup:
font-family.
.selector {
-webkit-font-smoothing: antialiased;
text-shadow: transparent 0px 1px 1px;
}Zdarma pouze obárzky ve formátu PNG. ![]()
Porovnání rychlosti načítání stránek s "online" a "offline" fontem:
Umožňuje zkrácený zápis všech vlastností pozadí:
body {background: #cf3 url(../images/pozadi.jpg) top left repeat-x;}
Při použití sdružené definice jsou u neuvedených vlastností nastaveny výchozí hodnoty.
p {background-color: #cf3;}
#header p {background-color: transparent;}
body {background-image: url(../images/pozadi.jpg);}
.zadny-obrazek {background-image: none;}body {
background: url(../images/pozadi.jpg) no-repeat;
background-position: center bottom; /* osa x a osa y */
}Ekvivalentní zápisy:
Pokud uvedete pouze jednu hodnotu, druhá se automaticky nastaví na střed:
V jedné deklaraci nepoužívejte současně textové a číselné hodnoty.
body {
background-image: url(../images/pozadi.jpg);
background-repeat: repeat-x; /* repeat-y, no-repeat, repeat */
}body {
background-image: url(../images/pozadi.jpg);
background-attachment: fixed;
}
IE6- umožňuje použít hodnotu fixed pouze pro element body.
body {
background-image: url(../images/pozadi.jpg);
background-size: cover;
}Vlastnost průhlednosti nastavená na 30 % je definovaná pro IE, FireFox a ostatní moderní prohlížeče (černá barva pozadí je nepovinná).
img {
background-color: black;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"; /* IE8+ */
filter: alpha(opacity=30); /* IE5+ (order 1. "-ms-filter", 2. "filter" work in IE8′s emulating IE7 mode too) */
opacity: 0.3;
}Dokumentace viz W3C gradients.
Generátory gradientů vám mohou ušetřit mnoho času (podpora prohlížečů). Některé generátory umožňují např. i převádět obrázky gradientů na CSS. ![]()
Podpora: FF3.6+, Chrome, Safari4+, Opera11.1
Příklad vertikálního přechodu dvou barev:
.gradient {
background-color: #bada55; /* background color if gradients are not supported */
background-image: -moz-linear-gradient(top, #bada55 0%, #2a562c 100%); /* FF(3.6 to 15) */
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#bada55), color-stop(100%,#2a562c)); /* Chrome, Safari4+ */
background-image: -webkit-linear-gradient(top, #bada55 0%, #2a562c 100%); /* Chrome10+ and Safari5.1+ */
background-image: -o-linear-gradient(top, #bada55 0%, #2a562c 100%); /* Opera(11.1 to 12.0) */
background-image: -ms-linear-gradient(top, #bada55 0%, #2a562c 100%); /* pre-releases of IE10 */
background-image: linear-gradient(to bottom, #bada55 0%, #2a562c 100%); /* W3C standard, IE10+ */
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#bada55', endColorstr='#2a562c',GradientType=0); /* IE(6 to 9) */
}Příklad přechodu dvou barev v úhlu 135°:
<!--[if gte IE 9]>
<style type="text/css">
.gradient {
filter: none;
}
</style>
<![endif]-->.gradient {
background-color: #1e5799; /* background color if gradients are not supported */
/* IE9 SVG, needs conditional override of 'filter' to 'none' */
background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMTAwJSI+CiAgICA8c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjMWU1Nzk5IiBzdG9wLW9wYWNpdHk9IjEiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzdkYjllOCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2dyYWQtdWNnZy1nZW5lcmF0ZWQpIiAvPgo8L3N2Zz4=);
background-image: -moz-linear-gradient(-45deg, #1e5799 0%, #7db9e8 100%); /* FF(3.6 to 15) */
background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #1e5799), color-stop(100%, #7db9e8)); /* Chrome, Safari4+ */
background-image: -webkit-linear-gradient(-45deg, #1e5799 0%, #7db9e8 100%); /* Chrome10+,Safari5.1+ */
background-image: -o-linear-gradient(-45deg, #1e5799 0%, #7db9e8 100%); /* Opera(11.1 to 12.0) */
background-image: -ms-linear-gradient(-45deg, #1e5799 0%, #7db9e8 100%); /* pre-releases of IE10 */
background-image: linear-gradient(135deg, #1e5799 0%, #7db9e8 100%); /* W3C standard, IE10+ */
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#1e5799', endColorstr='#7db9e8', GradientType=1); /* IE(6 to 8) fallback on horizontal gradient ONLY */
}Příklad odbarvení obrázku na pozadí:
.gray {
background: url('../images/pozadi.jpg') no-repeat 0 0;
-webkit-filter: grayscale(1); /* Webkit Nightlies & Chrome Canary */
filter: gray; /* IE5+ */
filter: grayscale(100%);
-webkit-transition: all .5s ease-in-out;
transition: all .5s ease-in-out;
}
.gray:hover {
-webkit-filter: grayscale(0);
filter: none;
}...
Zápis hodnot vlastností, u kterých je možné nastavovat všechny čtyři strany je možné zkrátit.
| Definice | Horní | Pravý | Dolní | Levý |
|---|---|---|---|---|
padding: 1px 2px 3px 4px; |
1 | 2 | 3 | 4 |
padding: 1px 2px 3px; |
1 | 2 | 3 | 2 |
padding: 1px 2px; |
1 | 2 | 1 | 2 |
padding: 1px; |
1 | 1 | 1 | 1 |
Umožňuje zkrácený zápis všech vlastností rámečku:
h1 {border: 4px groove green;}
p {border: 4px ridge green;}
Při použití sdružené definice jsou u neuvedených vlastností nastaveny výchozí hodnoty.
Samostatně lze zadávat i jednotlivé strany:
body {
border-top: 10px solid lime;
border-right: 10px double green;
border-bottom: 10px dotted purple;
border-left: 10px dashed blue;
}body {
border: solid green;
border-width: 1px 2px 3px 4px;
}Samostatně lze zadávat i jednotlivé strany:
body {
border: solid green;
border-top-width: 5px;
border-right-width: 10px;
border-bottom-width: 15px;
border-left-width: 20px;
}
Šířka vykreslování klíčových slov (thin, medium, thick) se v jednotlivých prohlížečích liší.
body {
border: 10px green;
border-style: solid;
}Samostatně lze zadávat i jednotlivé strany:
body {
border: 10px green;
border-top-style: double;
border-right-style: dotted;
border-bottom-style: dashed;
border-left-style: none;
}
IE6- vykresluje tečkovaný rámeček o šířce 1px čárkovaně.
IE5- vykresluje tečkovaný a čárkovaný rámeček jako spojitý.
body {
border: 10px solid;
border-color: red black blue green;
}Samostatně lze zadávat i jednotlivé strany:
body {
border: 10px solid;
border-top-color: red;
border-right-color: black;
border-bottom-color: blue;
border-left-color: transparent;
}.radius {
-webkit-border-radius: 10px 10px 0 0;
-moz-border-radius: 10px 10px 0 0;
-o-border-radius: 10px 10px 0 0;
border-radius: 10px 10px 0 0;
position: relative;
behavior: url('sites/all/themes/legadino/design/pie.htc');
}
V současné době nepodporují prohlížeče IE a Opera. Pro prohlížeče Mozilla Firefox, Google Chrome a Safari je možné již dnes používat zkušební vlastnosti -moz-border-radius a -webkit-border-radius.
Omezení:
<img>není možné, ale můžete použít obrázek v pozadí elementu <div>p {margin: 1em 0 .5em;}Samostatně lze zadávat i jednotlivé strany:
p {
margin-top: 1em;
margin-right: 0;
margin-bottom: .5em;
margin-left: 0;
}
th, td {padding: 0.1em .3em 0;}Samostatně lze zadávat i jednotlivé strany:
th, td {
padding-top: .1em;
padding-right: .3em;
padding-bottom: 0;
padding-left: .3em;
}line-height)overflow#header {height: 100px;}
div {max-height: 100px;}
Nepodporuje IE6-
div {min-height: 100px;}
Nepodporuje IE6-
overflow#header, #content, #footer {width: 760px;}div {max-width: 100px;}
Nepodporuje IE6-
div {min-width: 100px;}
Nepodporuje IE6-
box-shadow: [horizontální posun] [vertikální posun] (rozostření) (roztažení) [barva] (pozice), (...další stíny...)
.box-shadow {
-moz-box-shadow: 0 20px 20px -20px rgba(0, 0, 0, .7) inset,
0 -20px 20px 20px rgba(0, 0, 0, .7); /* FF(3.5-3.6) */
-webkit-box-shadow: 0 20px 20px -20px rgba(0, 0, 0, .7) inset,
0 -20px 20px 20px rgba(0, 0, 0, .7); /* Chrome(4-9), Safari(3.1-4), iOS(3.2-4.3), Android(2.1-3) */
box-shadow: 0 20px 20px -20px rgba(0, 0, 0, .7) inset,
0 -20px 20px 20px rgba(0, 0, 0, .7); /* Opera10.5+, IE9+ */
}Praktický příklad použití stínů je vidět např. u loga Microsoft.
Skrytý element na stránce nezabírá žádné místo.
h1 {display: inline;} /* zobrazi se jako radkovy element */
#menu a {display: block;} /* zobrazi se jako blokovy element */
.hidden {display: none;} /* nezobrazi se */
Skrytý element na stránce stále zabírá své místo.
.skryt {visibility: hidden;}
.zobrazit {visibility: visible;}
Určuje jakým způsobem zacházet s obsahem, který se do elementu nevejde:
pre {
width: 556px;
font-size: 13px;
overflow: auto;
}
Samostatně lze zadávat i jednotlivé směry:
p {
width: 100px;
height: 100px;
overflow-y: auto;
overflow-x: scroll;
}Umístění každého elementu v rámci dokumentu může být statické (výchozí), relativní, absolutní nebo fixní. Umístění se vztahuje vždy k obsahovému bloku elementu.
Statické pozicování – static:
Relativní pozicování – relative:
Absolutní pozicování – absolute:
Fixní pozicování – fixed:
IE6- vyhodnocuje fixní umístění jako absolutní. 
img {
position: absolute;
bottom: 0;
left: 50%; /* levy roh se umisti na stred nadrazeneho elementu */
}
Vzdálenost horního vnějšího okraje relativně či absolutně pozicovaného elementu od horního vnitřního okraje nadřazeného elementu.
#links {
position: absolute;
top: 0;
}Vzdálenost pravého vnějšího okraje relativně či absolutně pozicovaného elementu od pravého vnitřního okraje nadřazeného elementu.
#menu {
position: absolute;
right: 0;
}Vzdálenost spodního vnějšího okraje relativně či absolutně pozicovaného elementu od spodního vnitřního okraje nadřazeného elementu.
#footer {
position: absolute;
bottom: 0;
}
Vzdálenost levého vnějšího okraje relativně či absolutně pozicovaného elementu od levého vnitřního okraje nadřazeného elementu.
#menu {
position: absolute;
left: 10px;
}
Umístění absolutně pozicovaného elementu do vzdálenější (nižší číslo) nebo bližší vrstvy (vyšší číslo).
h1 img {
position: absolute;
top: 10px;
left: 10px;
z-index: 1;
}
#links {
position: absolute;
top: 0;
left: 0;
z-index: 2;
}
Ořízne absolutně pozicovaný element.
img {
position: absolute;
clip: rect(10px auto auto auto); /* souradnice z leveho horniho
rohu */
}
IE6- neumí oříznout pozadí, ale pouze obsah elementu
Hodnoty:
img {
width: 100px; /* definovana sirka je nutnou podminkou */
float: right;
}
Určuje stranu, ze které se ukončí obtékání.
.clear {clear: both;}
.clear-left {clear: left;}
.clear-right {clear: right;}
<blockquote> <p>Text text text text...</p> <div>Autor: <cite>Jan Werich</cite></div> </blockquote>
blockquote {
position: relative;
text-align: justify;
}
blockquote p:before,
blockquote p:after {
position: relative;
display: block;
height: 40px;
width: 40px;
content: '„';
font-size: 60px;
color: #eee;
}
blockquote p:before {
float: left;
margin: -46px 0 0 -45px;
}
blockquote p:after {
float: right;
margin: -18px -50px 0 0;
content: '“';
}Rozdělení obsahu (např. nečíslovaného seznamu) na definovaný počet sloupců
ul.columns3 {
-moz-column-count:3; /* Firefox */
-webkit-column-count:3; /* Safari and Chrome */
column-count:3;
-moz-column-gap:40px; /* Firefox */
-webkit-column-gap:40px; /* Safari and Chrome */
column-gap:40px;
-moz-column-rule:4px outset #f00; /* Firefox */
-webkit-column-rule:4px outset #f00; /* Safari and Chrome */
column-rule:4px outset #f00;
} Hodnoty:
th {vertical-align: bottom;}
td {vertical-align: top;}
table {
border: 1px dotted blue;
border-collapse: collapse;
}
table.dvojramecek {
border: 1px solid green;
border-collapse: separate; /* oddelene bunky a ramecek tabulky */
}
table {
border: 1px dotted blue;
border-spacing: 10px;
}Nepodporuje IE7- 
Hodnoty:
table {
caption-side: bottom;
}Nepodporuje IE7- 
Opera zná pouze hodnoty top a bottom 
table {
border: 1px dotted blue;
empty-cells: hide;
}
table.zobrazit {
border: 1px solid green;
empty-cells: show;
}Nepodporuje IE7- 
Umožňuje zkrácený zápis všech vlastností seznamů:
ul li {list-style: square outside none;}
ol li {list-style: upper-latin outside url(images/menu.gif);}
ul, ol {list-style-type: none;} /* bez oznaceni */
ul.kolecko {list-style-type: disc;}
ul.kruh {list-style-type: circle;}
ul.ctverec {list-style-type: square;}
ol.cislo {list-style-type: decimal;}
ol.velke-pismeno {list-style-type: upper-latin;}
ol.male-pismeno {list-style-type: lower-latin;}
ol.velke-rimske {list-style-type: upper-roman;}
ol.male-rimske {list-style-type: lower-roman;}
ol.velke-pismeno {list-style-type: upper-alpha;}
ol.male-pismeno {list-style-type: lower-alpha;}
ol.recke-pismeno {list-style-type: lower-greek;} /* nefunguje v IE */
ol.s-pocatecni-nulou {list-style-type: decimal-leading-zero;}
/* nefunguje v IE */
ol.armenske-cislo {list-style-type: armenian;} /* nefunguje
v IE a Opeře */
ol.hebrejske-cislo {list-style-type: georgian;} /* nefunguje
asi nikde */
ul {list-style-position: outside;}
ol {list-style-position: inside;}
Definovaný obrázek přepíše vlastnost list-style-type.
ul {list-style-image: url(images/menu.gif);}
Tipy:
Original Hover Effects with CSS3 Transitions and Animations
Syntaxe:
transition: (hlidane_vlastnosti) trvani_animace (funkce_prubehu) (zpozdeni) (, dalsi_prechody);
Rotace, zvětšení a změna průhlednosti při najetí myší:
.thumbs {
opacity: 0;
transform: rotateY(180deg) scale(0.5, 0.5);
transition: all 450ms ease-out 0s;
}
.thumbs:hover {
opacity: 1;
transform: rotateY(0deg) scale(1, 1);
}/* css3 hover opacity */
img {
-webkit-opacity: 0.5;
-moz-opacity: 0.5;
-ms-opacity: 0.5;
-o-opacity: 0.5;
opacity: 0.5;
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-ms-transition: all 1s ease;
-o-transition: all 1s ease;
transition: all 1s ease;
}
img:hover {
-webkit-opacity: 1;
-moz-opacity: 1;
-ms-opacity: 1;
-o-opacity: 1;
opacity: 1;
}/* css3 transition fade-in effect on page load */
/* Chrome and Safari, Firefox, IE, Opera, CSS3 browser */
@-webkit-keyframes fadein {from {opacity: 0;} to {opacity: 1;}}
@-moz-keyframes fadein {from {opacity: 0;} to {opacity: 1;}}
@-ms-keyframes fadein {from {opacity: 0;} to {opacity: 1;}}
@-o-keyframes fadein {from {opacity: 0;} to {opacity: 1;}}
@keyframes fadein {from {opacity: 0;} to {opacity: 1;}}
#section-content {
/* use animattion ease-in and repeat it only 1 time */
-webkit-animation: fadein 2s;
-moz-animation: fadein 2s;
-ms-animation: fadein 2s;
-o-animation: fadein 2s;
animation: fadein 2s;
}/* css3 transition fade-in effect on page load */
/* Chrome and Safari, Firefox, IE, Opera, CSS3 browser */
@-webkit-keyframes fadein {from {opacity: 0;} to {opacity: 1;}}
@-moz-keyframes fadein {from {opacity: 0;} to {opacity: 1;}}
@-ms-keyframes fadein {from {opacity: 0;} to {opacity: 1;}}
@-o-keyframes fadein {from {opacity: 0;} to {opacity: 1;}}
@keyframes fadein {from {opacity: 0;} to {opacity: 1;}}
p {
/* make invisible upon start */
opacity: 0;
/* use animattion ease-in and repeat it only 1 time */
-webkit-animation: fadein ease-in 1;
-moz-animation: fadein ease-in 1;
-ms-animation: fadein ease-in 1;
-o-animation: fadein ease-in 1;
animation: fadein ease-in 1;
/* tafter animation is done we remain at the last keyframe value (opacity: 1) */
-webkit-animation-fill-mode: forwards;
-moz-animation-fill-mode: forwards;
-ms-animation-fill-mode: forwards;
-o-animation-fill-mode: forwards;
animation-fill-mode: forwards;
/* duration */
-webkit-animation-duration: 1s;
-moz-animation-duration: 1s;
-ms-animation-duration: 1s;
-o-animation-duration: 1s;
animation-duration: 1s;
/* delay */
-webkit-animation-delay: 0;
-moz-animation-delay: 0;
-ms-animation-delay: 0;
-o-animation-delay: 0;
animation-delay: 0;
}
p.one {
-webkit-animation-delay: 0.7s;
-moz-animation-delay: 0.7s;
-ms-animation-delay: 0.7s;
-o-animation-delay: 0.7s;
animation-delay: 0.7s;
}
p.two {
-webkit-animation-delay: 1.2s;
-moz-animation-delay:1.2s;
-ms-animation-delay:1.2s;
-o-animation-delay:1.2s;
animation-delay: 1.2s;
}
p.three {
-webkit-animation-delay: 1.6s;
-moz-animation-delay: 1.6s;
-ms-animation-delay: 1.6s;
-o-animation-delay: 1.6s;
animation-delay: 1.6s;
}
Pomocí přiložených dat upravte vzhled fotogalerie ze cvičení 4.
| Příloha | Velikost |
|---|---|
| data-fotogalerie-css.zip | 154.93 KB |
| bg.png | 2.86 KB |
Pomocí přiložených dat upravte vzhled webového dokumentu ze cvičení 2.
| Příloha | Velikost |
|---|---|
| data-cviceni-6.zip | 552.75 KB |
| data-cviceni-6-easy.zip | 208.12 KB |
Odkazy:

Při ukládání webové stránky se neuloží (prohlížeč uloží pouze data přístupná přímo ze zdroje webové stránky):
CSS Framework:
overflow: Přetečený obsah zvětší v Exploreru výšku prvku
Každý CSS kodér by si měl vytovřit svůj vlastní "FrontEnd Style Guide", obsahující koncepci "jak stylovat".
Vhodná metodika zajistí jednotný vzhled a správnou funkčnost (dynamické chování).
Doporučení:
.menu__item(oddělovačem bloku a elementu jsou dvě podtržítka).menu__item--size-xlDalší zdroje informací:
Preprocesor CSS je nástroj, který ze zdrojového kódu zapsaného pomocí vlastní syntaxe vygeneruje výsledný klasický
kaskádový styl (CSS). Oproti klasickému CSS nabízí funkce, proměnné a předdefinované sady tzv. mixiny
.
Nevýhodou je nutnost kompilace do výsledného CSS.
CSS preprocesor:
Nejznámější preprocesory CSS:
| SASS/SCSS | Stylus | LESS | |
|---|---|---|---|
| Zpracování | server | server | server i klient |
| Jazyk | Ruby | Ruby | JavaScript |
| Syntaxe | bez {} a ; i klasické CSS (vyžaduje nejvíce psaní) |
bez {}, : a ; i klasické CSS (vyžaduje nejméně psaní) |
klasické CSS |
| Hlášení chyb | nejpřesnější | občas chybné určení řádku | nejhorší |
| Možnosti | zřejmě největší | velké | drobná omezení |
| Mixins | Compass CSS3 mixins | NIB | LESS Elements Bootstrap LESS mixins |
Modulární nástroje provádějící následnou transformaci CSS.
Odkazy:
Hacks:
/* IE6 */
#element { _color: blue }
/* IE6, IE7 */
#element { *color: blue; or #color: blue}
/* Everything but IE6 */
#element { color/**/: blue }
/* IE6, IE7, IE8 */
#element { color: blue\9; }
/* IE7, IE8 */
#element { color/*\**/: blue\9; }
/* IE6, IE7 -- acts as an !important */
#element { color: blue !ie; } /* string after ! can be anything */
/* IE8, IE9 */
#element {color: blue/;} /* must go at the END of all rules */Upoutávka v rohu stránky:
<div id="corner">CSS3</div>
#corner {
position: absolute;
top: 0;
right: 0;
z-index: 99;
padding: 10px 40px;
background: #ffb321;
color: #7f3300;
font-size: 16px;
font-weight: bold;
text-align: center;
text-transform: uppercase;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-o-transform: rotate(45deg);
writing-mode: lr-tb;
}