css | |
---|---|
Rozšíření | .css |
MIME typ | text/css |
Vývojář | Pracovní skupina CSS [d] |
zveřejněno | 17. prosince 1996 |
Typ formátu | Jazyk šablony stylů |
standard(y) |
Úroveň 1 (Doporučení) Úroveň 2 (Doporučení) Úroveň 2 Revize 1 (Doporučení) |
webová stránka |
w3.org/Style/CSS/drafts.csswg.org _ |
CSS ( /siːɛsɛs/ anglicky Cascading Style Sheets ) je formální jazyk pro popis vzhledu dokumentu ( webové stránky ) napsaného pomocí značkovacího jazyka (nejčastěji HTML nebo XHTML ). Lze jej také použít na jakýkoli dokument XML , jako je SVG nebo XUL .
CSS používají tvůrci webových stránek k definování barev , písem , stylů, umístění jednotlivých bloků a dalších prezentačních aspektů vzhledu těchto webových stránek. Hlavním cílem návrhu CSS je ohradit a oddělit popis logické struktury webové stránky (což se provádí pomocí HTML nebo jiných značkovacích jazyků ) od popisu vzhledu této webové stránky (který se nyní provádí pomocí formálního CSS . Jazyk). Toto oddělení může zvýšit dostupnost dokumentu, poskytnout větší flexibilitu a kontrolu nad jeho prezentací a snížit složitost a opakování strukturního obsahu.
CSS navíc umožňuje, aby byl stejný dokument prezentován v různých stylech nebo výstupních metodách , jako je prezentace na obrazovce, tištěná prezentace, hlasové čtení (se specializovaným hlasovým prohlížečem nebo čtečkou obrazovky) nebo při zobrazení pomocí Braillova zařízení. .
Pravidla CSS mohou být umístěna jak v samotném webovém dokumentu , jehož vzhled popisují, tak v externích souborech , které mají příponu .css . Formát CSS je textový soubor , který obsahuje seznam pravidel CSS a jejich komentáře.
Styly CSS lze zahrnout nebo vložit do webového dokumentu , který popisují, čtyřmi způsoby:
V prvních dvou případech se na dokument použijí externí styly a ve druhém se použijí vnitřní styly .
Chcete-li přidat CSS do dokumentu XML, musí tento obsahovat speciální odkaz na soubor stylu:
<?xml-stylesheet type="text/css" href="style.css"?>V prvních třech případech přidávání stylů CSS do dokumentu (viz výše) má každé pravidlo CSS ze souboru dvě hlavní části – selektor a deklarační blok . Selektor , umístěný na levé straně pravidla před „{“, určuje, na které části dokumentu (případně speciálně označené) se pravidlo vztahuje. Reklamní blok se nachází na pravé straně pravidla. Je umístěn ve složených závorkách a sestává z jedné nebo více deklarací oddělených „;“. Každá deklarace je kombinací vlastnosti CSS a hodnoty oddělené „:“. Selektory lze seskupit na stejném řádku oddělené čárkami. V tomto případě se vlastnost vztahuje na každou z nich.
selektor , selektor { vlastnost: hodnota ; vlastnost: hodnota ; vlastnost: hodnota ; }Ve čtvrtém případě připojování CSS k dokumentu (viz seznam) je pravidlo CSS, což je hodnota atributu stylu prvku, na který se vztahuje, seznam deklarací (" CSS property : value ") oddělených " ;".
Typy selektorů Univerzální volič * { okraj : 0 ; výplň : 0_ _ } Výběr značek p { font-family : arial , helvetica , sans-serif ; } Selektor třídy . poznámka { barva : červená ; barva pozadí : žlutá váha písma : tučné ; } Selektor identifikátoru # odstavec1 { okraj : 0 ; } Selektor atributů a [ href = "http://www.somesite.com" ] { font-weight : bold ; } Selektor potomků (kontextový volič) div # odstavec1 p . poznámka { barva : modrá ; } Dětský volič p . poznámka > b { barva : zelená ; } . div { border : 1 px solid red ; odsazení – vlevo : 20px } . nadpis { font-velikost : 20 px ; barva pozadí : červená } Selektor sourozeneckého prvku h1 + p { font-velikost : 24 px ; } Selektor pseudotříd a : aktivní { barva : modrá ; } Selektor pseudoprvků p :: first-letter { font-size : 32 px ; }Třídu nebo identifikátor lze prvku HTML přiřadit prostřednictvím atributů class nebo id prvku:
<!DOCTYPE html> < html > < head > < meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" > < title > Selektor třídy a ID </ title > < style > p . velký { font-family : arial , helvetica , sans-serif ; barva : červená_ _ } div # first { background-color : silver ; } </ style > </ head > < body > < div id = "first" > <!-- Toto je div na šedém pozadí ve stylu id --> </ div > < p class = "big" > <! -- Toto je červený text --> </ p > </ body > </ html >Hlavní rozdíl mezi třídami prvků a identifikátory prvků je ten, že identifikátor je pro jeden prvek, zatímco třída je obvykle přiřazena několika prvkům najednou. Moderní prohlížeče však mají tendenci správně vykreslovat více prvků se stejným ID. Rozdíl je také v tom, že může existovat více tříd (když se třída prvku skládá z více slov oddělených mezerami). To u identifikátorů není možné.
Je důležité si uvědomit následující rozdíl mezi identifikátorem a třídou: identifikátory se v JavaScriptu široce používají k nalezení jedinečného prvku v dokumentu.
U názvů tříd a identifikátorů se na rozdíl od názvů značek a jejich atributů rozlišují velká a malá písmena.
Vlastnosti tříd a identifikátorů se nastavují pomocí příslušných selektorů. Navíc může být nastaven jako vlastnost třídy jako celku (v tomto případě selektor začíná ".", například ".big") nebo jako vlastnost samotného identifikátoru (v tomto případě selector začíná "#", například "#first" ) a vlastnost některého prvku této třídy nebo tímto identifikátorem.
V CSS existuje kromě tříd definovaných autorem stránky také omezená množina tzv. pseudo -tříd , které popisují vzhled hypertextových odkazů s určitým stavem v dokumentu, vzhled prvku, na kterém je zadání je zaměřen a vzhled prvků, které jsou prvními potomky ostatních prvků. V CSS jsou také čtyři takzvané pseudoprvky : první písmeno, první řádek, použití speciálních stylů před a za prvkem.
Použití CSS na HTML dokumenty je založeno na principech dědičnosti a kaskádování . Princip dědičnosti spočívá v tom, že vlastnosti CSS deklarované na prvcích předků jsou téměř vždy zděděny potomky.
Princip kaskádování se používá, když je k některému prvku HTML přiřazeno více než jedno pravidlo CSS současně, to znamená, že existuje konflikt mezi hodnotami těchto pravidel. K vyřešení takových konfliktů jsou zavedena pravidla přednosti.
Volič | abeceda | Číslo |
---|---|---|
rozpětí | 0, 0, 0, 1 | jeden |
div.třída | 0, 0, 1, 1 | jedenáct |
#id .třída | 0, 1, 1, 0 | 110 |
div rozpětí | 0, 0, 0, 2 | 2 |
.třída | 0, 0, 1, 0 | deset |
#rozpětí id | 0, 1, 0, 1 | 101 |
Příklad šablony stylů (v této podobě může být buď umístěn v samostatném souboru .css nebo orámován značkami <style>a umístěn do „záhlaví“ samotné webové stránky, na které působí):
p { font-family : arial , helvetica , sans-serif ; } h2 { font-velikost : 20 pt ; barva : červená_ _ pozadí : bílé_ _ } . poznámka { barva : červená ; barva pozadí : žlutá váha písma : tučné ; } p # odstavec1 { padding-left : 10 px ; } a : hover { text-decoration : none ; } # novinky p { barva : modrá ; } [ typ = "tlačítko" ] { barva pozadí : zelená ; }Zde je sedm pravidel CSS se selektory p, h2, .note, p#paragraph1, a:hovera #news p.[type="button"]
Před příchodem CSS se stylování webových stránek provádělo výhradně v HTML , přímo v obsahu dokumentu. S příchodem CSS však bylo možné zásadně oddělit obsah a prezentaci dokumentu. Díky této inovaci bylo možné snadno použít jeden styl designu pro množství podobných dokumentů a také tento design rychle změnit.
výhody:
nedostatky:
CSS je jednou ze široké škály technologií podporovaných W3C a souhrnně označovaných jako „webové standardy“ [2] . V 90. letech se jasně ukázala potřeba standardizovat web, vytvořit jakási jednotná pravidla, podle kterých by programátoři a webdesignéři navrhovali stránky. Takto se objevily jazyky HTML 4.01 a XHTML a standard CSS.
Na počátku 90. let měly různé prohlížeče své vlastní styly zobrazování webových stránek. HTML se vyvíjelo velmi rychle a dokázalo uspokojit všechny potřeby informačního designu, které v té době existovaly, takže CSS v té době nezískalo široké přijetí.
Termín Cascading Style Sheets zavedl Haakon Lee v roce 1994. Spolu s Bertem Bosem začal vyvíjet CSS.
Na rozdíl od mnoha jazyků stylů, které v té době existovaly, CSS používá dědičnost rodičů a potomků, takže vývojář může definovat různé styly na základě již definovaných stylů.
V polovině 90. let začalo o CSS projevovat zájem World Wide Web Consortium ( W3C ) a v prosinci 1996 bylo vydáno doporučení CSS1.
Doporučení W3C, přijaté 17. prosince 1996 , změněno 11. ledna 1999 [3] . Mezi funkcemi, které toto doporučení poskytuje:
Doporučení W3C, přijaté 12. května 1998 [4] . Založeno na CSS1 při zachování zpětné kompatibility až na pár výjimek. Přidání k funkčnosti:
W3C již nepodporuje CSS2 a doporučuje používat CSS2.1
Úroveň 2 revize 1 (CSS2.1)Doporučení W3C, přijaté 7. června 2011 .
CSS2.1 je založeno na CSS2. Kromě oprav chyb byly v nové revizi změněny některé části specifikace a některé[ co? ] a zcela odstraněny. Odstraněné části mohou být v budoucnu přidány do CSS3.
CSS3 ( anglicky Cascading Style Sheets 3 - kaskádové styly třetí generace ) je aktivně vyvíjená specifikace CSS . Je to formální jazyk implementovaný pomocí značkovacího jazyka . Největší revize ve srovnání s CSS1, CSS2 a CSS2.1. Hlavním rysem CSS3 je možnost vytvářet animované prvky bez použití JS [5] , podpora lineárních a radiálních přechodů, stínů, vyhlazování a další.
Primárně se používá jako prostředek pro popis a stylizaci vzhledu webových stránek napsaných pomocí značkovacích jazyků HTML a XHTML , ale lze jej použít také na jakékoli dokumenty XML , jako je SVG nebo XUL .
Vývojová verze (seznam všech modulů) [6] .
Na rozdíl od předchozích verzí je specifikace rozdělena do modulů, jejichž vývoj a vývoj probíhá samostatně. CSS3 staví na CSS2.1, rozšiřuje stávající vlastnosti a hodnoty a přidává nové.
Inovace, počínaje malými, jakoby zaoblenými rohy bloků, konče transformací ( animací ) a případně zavedením proměnných [7] [8] .
Vyvíjen W3C od 29. září 2011 [9] [10] .
Moduly CSS4 staví na CSS3 a přidávají k nim nové vlastnosti a hodnoty. Všechny zatím existují ve formě draftů (working draft).
Například:
Nejvíce plně podporují standard CSS prohlížeče běžící na enginech Gecko ( Mozilla Firefox atd.), WebKit ( Safari , Arora , Google Chrome ) a Presto (Opera) [11] .
Dřívější nejrozšířenější prohlížeč [12] Internet Explorer 6 plně nepodporuje CSS [13] .
Internet Explorer 7 vydaný o sedm let později výrazně zlepšil úroveň podpory CSS [14] [15] , ale stále obsahoval značné množství chyb [16] .
Internet Explorer 8 používá nový engine, který plně podporuje CSS 2.1 a částečně podporuje CSS 3 [17] .
Pro testování podpory prohlížečů pro webové standardy, včetně různých částí standardu CSS, byl vyvinut test Acid .
Standardy CSS z W3C používají model, kde vlastnost widthdefinuje šířku obsahu krabice bez zahrnutí odsazení nebo okrajů. Dřívější verze Internet Exploreru (4 a 5) implementovaly svůj vlastní model, kde šířka definuje mezery mezi rámečky, včetně odsazení ( padding) a okrajů ( border). S tímto modelem si kromě Internet Exploreru 5 rozumí i prohlížeče Netscape 4 a Opera 7. Podpora standardního modelu W3C se v IE objevila až v šesté verzi.
Připravovaný standard CSS3 zavedl vlastnost box-sizings hodnotami content-box, které indikují použití standardního modelu W3C a border-boxpoužití modelu IE 5 k řešení tohoto problému.
V prohlížeči Mozilla , s podporou této vlastnosti, pod vlastním „pracovním“ názvem -moz-box-sizing, byla zavedena další hodnota - padding-box, čímž byl vytvořen třetí model krabice, ve kterém width je velikost obsahu a odsazení bloku, bez zahrnutí rám.
Rozdíly v implementaci CSS různými prohlížeči nutí vývojáře webu hledat řešení, jak zajistit, aby všechny prohlížeče vykreslovaly stránku stejným způsobem. CSS filtry (často označované také jako CSS hacky) umožňují selektivně aplikovat styly na různé prvky. Je například známo , že Internet Explorer 6 vynucuje pravidla, která používají selektory zobrazení (filtr známý jako „ hvězdička html bug “). Chcete-li, aby model boxu W3C a IE spuštěný v režimu Quirks zobrazoval 100px široký rámeček s 10px výplní, můžete napsat kód takto: * html селектор#someblock
/* Model W3C - šířka obsahu 80px a výplň 10px na každé straně */ # someblock { width : 80 px ; odsazení : 10px _ _ } /* Následující pravidlo platí pouze pro IE6. */ * html # someblock { sirka : 100 px ; odsazení : 10px _ _ }Dalším způsobem, jak selektivně vynutit pravidla pro Internet Explorer, jsou podmíněné komentáře .
Všechny verze Internet Exploreru podporované v roce 2010 byly zranitelné: když prohlížeč zpracovává kaskádové styly (CSS), může se objevit neinicializovaná paměť, která je následně použita ke vzdálenému spuštění škodlivého kódu na počítači uživatele [18] .
CSS Framework (též Web design framework ) je předpřipravená CSS knihovna vytvořená za účelem zjednodušení práce designéra layoutu, urychlení vývoje a odstranění maximálního možného počtu chyb v layoutu (problémy s kompatibilitou mezi různými verzemi prohlížečů apod.). Stejně jako knihovny skriptovacích programovacích jazyků jsou CSS frameworky, obvykle ve formě externího .css souboru, „propojeny“ s projektem (přidány do záhlaví webové stránky), což umožňuje programátorovi nebo designérovi nezkušenému ve složitosti rozložení pro správné vytvoření rozvržení html.
Často při rozvržení stránek musíte použít stejnou hodnotu mnohokrát: stejnou barvu, stejné písmo. A pokud je třeba tuto hodnotu změnit, pak se bude muset změnit na mnoha místech.
K vyřešení těchto problémů a urychlení vývoje existuje několik rozšíření (preprocesorů) jazyka CSS. Rozšíření v tom smyslu, že kód CSS je platný kód pro rozšíření, ale ne naopak. Aby se kód „extended CSS“ změnil na běžný soubor CSS, který prohlížeč vnímá, musíte jej zkompilovat. Kompilace může být několika typů:
Příklady rozšíření CSS (preprocesory):
Jazyky šablon stylů ( porovnat , seznam ) | |
---|---|
Režimy |
|
Standard | |
nestandardní |
World Wide Web Consortium (W3C) | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Produkty a normy |
| ||||||||||||||
Organizace |
| ||||||||||||||
NA |
| ||||||||||||||
Konference |
|
Web a webové stránky | |
---|---|
globálně | |
Lokálně | |
Typy stránek a služeb |
|
Tvorba a údržba | |
Typy rozložení, stránek, webů | |
Technický | |
Marketing | |
Společnost a kultura |
Kaskádové styly | |
---|---|
css |
|
Srovnání |
|
webový design |
|
Kaskádové styly |