15. CSS styly (funkce, vývoj, využití). Práce s CSS styly (vkládání do kódu, pravidlo, selektor, dědičnost, kaskády, id a vlastní třídy)



Podobné dokumenty
CSS styly - úvod. Formátování HTML - Kdy používat CSS - Nástin možností CSS - Trojí použití CSS - Příklady - Syntaxe - Příklad s nadpisem

Kaskádové styly základy grafiky

CSS styly. Cascading Style Sheets kaskádové styly

CSS Selektory tříd a ID, dědičnost, další vlastnosti. Formátování HTML dokumentu, které je více či méně oddělené od obsahu Způsoby implementace

(X)HTML, CSS a jquery

Tvorba webových stránek

CSS Kaskádové styly. formátování webových stránek

22. Tvorba webových stránek

Základy HTML. Autor: Palito

CSS Stylování stránek. Zpracoval: Petr Lasák

Škola. Téma hodiny HTML - Základní návrh stránky Informační a komunikační technologie

Mimochodem, co je CSS? Formátování HTML. Drobný problém. Základy práce se styly. Trojí použití CSS. Přímo (in-line)

Základy CSS (3. přednáška)

NSWI096 - INTERNET. CSS kaskádové styly. Mgr. Petr Lasák

TNPW1 Cvičení

Úvod do CSS. Střední škola informatiky, elektrotechniky a řemesel Rožnov pod Radhoštěm. Modernizace výuky s využitím ICT, CZ.1.07/1.5.00/34.

Tématická oblast: dědičnost, kaskáda. CSS a média. Stylové předpisy pro různé typy zobrazovacích zařízení

Vývoj Internetových Aplikací

Kaskadové styly (CSS) VOŠG Hellichova Praha 2010 Jirka Jahoda

Přehled základních html tagů

Mgr. Vlastislav Kučera přednáška č. 2

Mgr. Vlastislav Kučera lekce č. 2

CSS (Cascading Sytle Sheets) neboli kaskádové styly vznikly jako souhrn metod pro úpravu vzhledu stránek.

Dokument ve formátu webové stránky vytvořený pomocí XHTML a CSS

Formátování obsahu adminweb

Mgr. Vlastislav Kučera Struktura stránky, hlavička,


Microsoft. Word. Styly použití a definování. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

HTML. ICT_01., 02. konzultace; 2. ročník 1/6

HTML XHTML JavaScript PHP ASP.Net Zajímavé odkazy

O CSS podrobněji. Box model Document flow Layout

Informatika pro moderní fyziky (8) Javascript, CSS - stylování dokumentů, SVG - tvorba obrázků, složitější interaktivní dokument

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

Maturitní otázka webové stránky (technologie tvorby webu) Co znamená pojem Web? Web, www stránky, celým názvem World Wide Web,

Kaskádové styly. CSS (Cascading Sytle Sheets) neboli kaskádové styly vznikly jako souhrn metod pro úpravu vzhledu stránek.

Úvod do jazyka HTML (Hypertext Markup Language)

Webové stránky. 5. Kaskádové styly formátování textu. Datum vytvoření: str ánk y. Vytvořil: Petr Lerch.

Tvorba webových stránek

Dokument XHTML. Prohlížeč. styl CSS. Výstupní dokument. Soubor DTD

APLIKACE XML PRO INTERNET

Tvorba webu. Kaskádové styly (CSS) Martin Urza

Tvorba stránek v HTML ve Wordu

PODPORA ELEKTRONICKÝCH FOREM VÝUKY

Soukromá střední odborná škola Frýdek-Místek, s.r.o. VY_32_INOVACE_92_IVT_HTML_12_nase_www

Káskádové styly = CSS

Prvně si řekněme, co vlastně odstavec v programu Word je a pár slov o jeho editaci:

Zá klady HTML. Tag HTML <HTML> Párová značka, který definuje webovou stránku. Obsah stránky končí značkou

Tvorba webových stránek

Jazyk XSL XPath XPath XML. Jazyk XSL - rychlá transformace dokumentů. PhDr. Milan Novák, Ph.D. KIN PF JU České Budějovice. 9.

Výukový materiál KA č.4 Spolupráce se ZŠ

Stručný obsah Šablona CSS Pravidla CSS, selektory a deklarace vlastností Formátování textů, nadpisů a odkazů Efekty v textech a odkazech

Informatika pro moderní fyziky (8) CSS - stylování dokumentů, SVG - tvorba obrázků, složitější interaktivní dokument

Microsoft. Word. prostředí, základní editace textu. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

Práce se styly 1. Styl

Kaskádové styly 4IZ228 tvorba webových stránek a aplikací

Základní nastavení textového editoru Word 8.0 (Microsoft Office 97)

Bloky. Tag Význam Párový. p odstavec nepovinně. br řádkový zlom ne. div oddíl ano. center vycentrování ano. h1 nadpis 1.

Předmluva k druhému vydání 13. Úvod 17. ČÁST 2 Vytváření dokumentů XML 65

Styly odstavců. Word Přiřazení stylu odstavce odstavci. Změna stylu odstavce

INTERNET A SÍTĚ. Role při tvorbě webových aplikací. Rozhodovací vrstvy při tvorbě webových aplikací. povrch kostra struktura obsah strategie

Kaskádové styly (CSS)

Název školy: SOŠ NET OFFICE Orlová, spol. s r.o. Vypracoval/a: Mgr. Alena Sovová

selektor {vlastnost1: hodnota_vlastnosti1; vlastnost2: hodnota_vlastnosti2;}

Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1

Hlavička dokumentu. mezi <head> a </head> obsahuje informace vztažené k dokumentu metadata <title> - název stránky, povinná párová značka

CSS (Cascading Style Sheets) Jak se zapisují? externí soubory s koncovkou.css. přímo do www stránky

(X)HTML-TAGY. VOŠ a SŠT Česká Třebová

InDesign ODSTAVCOVÉ A ZNAKOVÉ STYLY. (úvod do problematiky)

Manuál k editoru TinyMCE

Název modulu: Tvorba webu pomocí XHTML a CSS začátečníci

KAPITOLA 3 - ZPRACOVÁNÍ TEXTU

Úprava stránek. Obsah 1. Popis ikon editoru použitých v šabloně 2. Psaní a formátování textu pro web 3. Odkazy 4. Tabulky 5. Obrázky 6.

Tvorba fotogalerie v HTML str.1

Název: VY_32_INOVACE_PG4102 Základní HTML značky. Autor: Mgr. Tomáš Javorský. Datum vytvoření: 05 / Ročník: 3

Tvorba WWW stránek. Mojmír Volf

INTERSTENO 2013Ghent Mistrovstvísvta v profesionálním word processingu

Čtvrtek 11. dubna. Základy HTML. Obecná syntaxe HTML. Struktura HTML

VYHLEDÁVACÍ BANNER PRO WEBOVÉ STRÁNKY

Internetové publikování. Doc. Ing. Petr Zámostný, Ph.D. místnost: A-72a tel.: 4222, 4167 (sekretariát ústavu 111)

Pracovní list VY_32_INOVACE_33_19 Databáze Databáze Databáze Ing. Petr Vilímek

<link> - definuje vztah k jiným XHTML dokumentům, typicky

Webové stránky. 4. Tvorba základní HTML webové stránky. Datum vytvoření: str ánk y. Vytvořil: Petr Lerch.

Microsoft Office Word 2003

Základy informatiky. HTML, tvorba WWW stránek. Daniela Szturcová Část převzata z přednášky P. Děrgela

Formátování odstavce, odrážek a číslování Návod a náhled správného řešení

Internet 1 vývoj, html, css

TVORBA WEBOVÝCH STRÁNEK

MODERNÍ WEB SNADNO A RYCHLE

HTML - Úvod. Zpracoval: Petr Lasák

Název: VY_32_INOVACE_PG4119 Tipy a triky, rozdíly mezi prohlížeči

M E T O D I K A W I K I

Změna velikosti písmen

NÁVOD NA OBSLUHU INTERNETOVÉ PREZENTACE. Ataxo Czech s.r.o.

KASKÁDOVÉ STYLY - PÍSMO

Informace o zdroji učebního textu a poučení o jeho užívaní. Petr Broža, Libor Kříž, Roman Kučera, Pavel Nygrýn

Kapitola 1 První kroky v tvorbě miniaplikací 11

Blokový model v CSS:

Pracovní list VY_32_INOVACE_33_20 Databáze Databáze Databáze Projekt II. Ing. Petr Vilímek

Nástrojová lišta v editačním poli

Transkript:

15. CSS styly (funkce, vývoj, využití). Práce s CSS styly (vkládání do kódu, pravidlo, selektor, dědičnost, kaskády, id a vlastní třídy) Formátování HTML Každý text má obsah a formu. Když mluvím o formátu (formě) webových stránek, myslím tím třeba barvu a velikost písma, pozadí, zarovnání atd., prostě všechno, co nepatří do obsahu. To je formátování. Protože se jazyk HTML vyvíjel, vznikaly časem různé způsoby, jak formátovat text. Proto dnes existují dva odlišné způsoby, jak v HTML třeba obarvit písmo nebo ztučnit text. 1. Starší způsob používá přímo HTML tagy. (Například kurzíva se dělá pomocí tagů <i> a </i>: <i>kurzíva</i>). Pomocí tagů se některé věci nedají udělat. 2. Novější způsob -- CSS styly -- používá tag <style> a obecný atribut "style", kterému se přiřazuje nějaká definice, případně atribut id, class. Je to složitější, ale užitečnější a všeobecné. Dají se s tím dělat různé fígle, které budu popisovat níže. Mimochodem, co je CSS? CSS vzniklo někdy kolem roku 1997. Je to kolekce metod pro grafickou úpravu webových stránek. Ta zkratka znamená Cascading Style Sheets, česky "kaskádové styly". Kaskádové, protože se na sebe mohou vrstvit definice stylu, ale platí jenom ta poslední. Nástin možností CSS Opravdu jenom nástin. (Kdyžtak vizte kompletní přehled.) Tak co třeba CSS dovedou: Nastavit libovolnou a přesnou velikost písma, p r o k l á d á n í, KAPITÁLKY Udělat odsazení prvního řádku odstavce, zvětšit řádkování Zrušit nebo zvětšit prázdný prostor po odstavci Automaticky formátovat nadpisy (například je všechny udělat zelené) Zvýrazňovat odkazy po přejetí myší Udělat automaticky grafické odrážky Určité části textu zneviditelnit, zprůhlednit nebo nezobrazit Předefinovat grafický význam běžných tagů (například všechno, co je kurzívou, udělat i tučně) Nastavit pozadí čehokoliv, stránky, tabulky ale třeba i odstavce; pozadí se nemusí opakovat a může mít přesnou pozici! Umístit nějaký objekt (třeba kus textu) kamkoliv do stránky, může se to i překrývat Přidat k čemukoli rolovací lišty, oříznout to, orámovat, nastavit okraje V kombinaci se skripty je dnes CSS nejmocnější zbraň pro "rozhýbání" stránek. Hlavní význam CSS spočívá v tom, že fungují hodně automaticky, přečemž se vzhled celého webu deklaruje jedním souborem. 1

Trojí použití CSS Styl se může nadeklarovat třemi způsoby, níže uvádím příklady. Stačí, když se pro začátek naučíte naučíte jeden ze tří způsobů: 1. Přímo v textu zdroje u formátovaného elementu pomocí atributu style="...". Tomu říkám přímý styl. Je to nešikovné, ale občas se to používá. 2. Pomocí "stylopisu" (angl. "stylesheet") v hlavičce stránky. Stylopis je jakýsi seznam stylů. Je v něm obecně napsáno, co má být jak zformátováno, například že nadpisy mají být zelené. Do stránky se stylopis píše mezi tagy <style> a </style>. 3. Použitím externího stylopisu -- to je soubor *.css, na který se stránka odkazuje tagem <link>. V souboru je umístěný stylopis. Hlavní výhoda je v tom, že na jeden takový soubor se dá nalinkovat mnoho stránek, takže pak všechny vypadají podobně. Samozřejmě stačí ovládnout jenom jeden způsob. Já nejčastěji používám externí css soubor. Příklady Chci udělat odstavec červeným písmem pomocí CSS. Jak už jsem popsal, jde to třemi způsoby: Přímý zápis Do zdroje se napíše tato deklarace odstavce: <p style="color: red">tento odstavec bude červený.</p> Vysvětlení: <p> je značka vymezující odstavec; z anglického paragraph. Atribut "style" je obecný atribut použitelný u každého prvku. Color znamená barva a red je červená. Stylopisem Do hlavičky dokumentu se napíše stylopis uzavřený mezi tagy <style></style>: <style> p {color: red} </style> a do těla stránky se mohou psát odstavce: <p>tento odstavec bude červený. </p> <p>tento mimochodem také, protože červené budou všechny.</p> To, jak zařídit, aby nebyly červené všechny, ale jenom některé odstavce, se dá pomocí "tříd" a "identifikátorů", o tom později. 2

Externím CSS souborem Vytvoří se soubor, který se pojmenuje třeba styly.css. V něm bude pouze tento text: p {color: red} Do hlavičky html dokumentu, který chci stylem ovlivnit, musím napsat odkaz na tento soubor: <link rel="stylesheet" type="text/css" href="styly.css"> V těle dokumentu pak budou opět všechny odstavce červené. 3

Základní selektory Nejjednoduššími selektory jsou selektory typu a univerzální selektor. Selektor typu: X {...} X je libovolná HTML značka. Tento selektor se páruje s každou instancí daného prvku na stránce. Příklad: pravidlo H1 { color: red } znamená, že uvedený styl se bude aplikovat na všechny prvky typu <H1> na stránce; všechny titulky úrovně 1 budou červené. Selektory tříd a ID Selektor třídy: X.jméno_třídy {...} Pravidlu vyhoví ty instance prvků, jejichž třída (class) je právě jméno_třídy. Tento typ selektoru byl zaveden pouze pro zjednodušení, neboť přesně odpovídá zápisu X[class=jméno_třídy] {...}. V případě selektoru *.třída není nutné univerzální selektor * uvádět, jako selektor postačí.třída. Příklad: pravidlo H1.nadpis {...} páruje se všemi prvky <H1>, které mají uveden atribut class="nadpis"; pravidlu.nadpis {...} - což je totéž jako *.nadpis {...} - pak vyhoví všechny prvky na stránce, které mají class="nadpis". Selektor ID: X#ident {...} Styl se použije pouze u prvku, jehož ID je ident. Opět, pokud není specifikována konkrétní HTML značka, není nutné uvádět *#ident, ale postačí #ident. Příklad: pravidlu H1#nazev {...} vyhoví pouze ten titulek <H1>, jehož ID="nazev". Pravidlu #nazev {...} pak vyhoví všechny prvky na stránce, které mají definováno ID="nazev". Pozn.: Selektory ID mají vyšší prioritu než selektory s atributem - např. #nazev je z hlediska kaskádování specifičtější než [ID=nazev]. Definované hodnoty Klient tedy nejprve přiřazuje hodnotu každé myslitelné vlastnosti každého prvku v dokumentu. Při tomto procesu používá tato pravidla: Pokud proces kaskády (viz dále) vrátí nějakou hodnotu - tj. vlastnost je specifikována nějakou definicí stylu, uživatelem atd. - použije se tato hodnota. Není-li vlastnost explicitně určena kaskádou, hodnota se dědí, tj. použije se hodnota, která je definována pro rodičovský prvek (prvek nadřazený ve smyslu stromu dokumentu). Není-li možné tuto vlastnost zdědit (rodičovský prvek danou vlastnost nemá definovánu, vlastnost není dědičná atd.), použije se výchozí hodnota. Každý prvek má definovány výchozí hodnoty pro každou vlastnost. 4

Dědičnost v CSS Některé vlastnosti se mohou v rámci stromu dokumentu dědit. To znamená, že pokud není řečeno jinak, vlastnost definovanou pro jeden prvek přebírají i všechny objekty uvnitř tohoto prvku. Nedědí se ale všechny vlastnosti - každá vlastnost má definováno, zda její hodnota je či není dědičná. Příklad: Vlastnost color (barva textu) je dědičná. Pokud v tomto příkladu: <H1>Toto je <EM>důležitý</EM> titulek</h1> nebude mít prvek EM nijak specifikovánu vlastnost color, převezme ji od rodičovského prvku H1 (z hlediska stromu dokumentu je zde EM potomkem H1, neboť prvek EM je obsažen uvnitř prvku H1) - celý text titulku bude tedy zobrazen stejnou barvou textu. Pozn.: ve většině případů se nedědí definované hodnoty, ale až hodnoty přepočítané - tzn. má-li např. rodičovský prvek definovánu vlastnost v procentech, dědí se až hodnota přepočítaná na absolutní jednotky. Kaskáda Styly, ovlivňující jeden dokument, mohou pocházet ze tří různých zdrojů: od autora, od uživatele a z klientu. Autor (tvůrce dokumentu) specifikuje styly přímo v dokumentu (či v externích souborech k němu připojených - viz dříve). Uživatel si v některých prohlížečích může zvolit své vlastní styly (např. připojit svůj vlastní soubor se styly nebo nastavit některé vlastnosti přímo v prohlížeči). A v neposlední řadě každý klient (prohlížeč) má za povinnost mít definovánu výchozí tabulku stylů, která předchází všem dříve jmenovaným a definuje tak výchozí hodnoty podle možností daného klientu. Ve specifikaci CSS je ukázka typické výchozí tabulky stylů pro HTML4. Všechny tyto styly se navzájem ovlivňují a tvoří výsledné hodnoty podle pravidel kaskádování. Kaskáda ohodnotí každý styl - přidělí mu tzv. váhu. Pokud je pro danou vlastnost více pravidel, přednost dostane to, které má větší váhu. Standardně mají styly autora větší váhu ž styly uživatele; pouze při použití direktivy!important (viz dále) je tomu naopak. Styly a autora i uživatele ale mají vždy větší váhu než výchozí styly klientu. Váha také záleží na pořadí a způsobu načtení: styly z dané tabulky stylů mají větší váhu a přepíší styly importované z jiné tabulky. Aby se mohla určit hodnota dané vlastnosti daného prvku, klient musí všechna pravidla nejprve setřídit podle následujícího třídění kaskády: 1. Nejprve najde všechna pravidla, která se vztahují k danému prvku, dané vlastnosti a použitému médiu (výstupní zařízení). Pravidla se použijí, pokud jejich selektor páruje s daným prvkem (viz Selektory dříve). 2. Poté setřídí pravidla podle jejich váhy a zdroje - styly autora mají přednost před styly uživatele, výchozí styly klientu mají nejmenší váhu atd. 3. Následně setřídí pravidla podle jejich specifičnosti (viz dále) - specifičtější pravidla mají přednost před obecnějšími. Se pseudo-třídami a pseudo-prvky se zde nakládá, jako by to byly běžné třídy a prvky. 5

4. V posledním kroku jsou pravidla setříděna podle pořadí v dokumentu. Z pravidel, která mají stejnou váhu, zdroj i specifičnost, se použije to, které je definováno nejpozději. Importované styly se považují za definované dříve než styly popsané přímo v dané tabulce. Příklad s odkazy :pseudotřídy Pomocí stylopisů se dají formátovat libovolné HTML tagy, ne pouze nadpisy. Obzvlášť efektní je to u odkazů. Nebudu vypisovat celý zdroj, omezím se na stylopis: <style type="text/css"> a {text-decoration: none} a:link {color: green} a:visited {color: navy} a:active {color: black} a:hover {color: red; text-decoration: underline} </style> Celý soubor s tímto stylopisem si můžete zobrazit. Setkáváme se tu s deklarací formátu odkazů -- vnitřku tagu <a> </a>. Navíc tento tag má pseudotřídy (různé stavy), které umožňují různé zobrazení podle toho, zda už je odkaz navštívený nebo zda po něm jede myš. Takže konkrétně: text-decoration: none znamená, že odkazy nebudou podtrhávané a:link znamená nenavštívený odkaz (bude zelený) a:visited je už navštívený (tmavě modrý) a:active je ten, na který se zrovna kliklo (černý), nebo ten, po kterém jede tabulátor a: hover je ten, přes který se jede myší (červený podtržený) text-decoration: underline znamená podtržení. Tag A je jediný, u něhož se vyskytují pseudotřídy. Ještě pozor na syntaxi: mezi a a dvojtečkou není mezera! První řádek stylopisu definuje nepodtrhávání odkazů pro všechny pseudotřídy. Pouze a:hover tuto deklaraci přebíjí, protože je uvedena později. Podtitul (tvorba vlastní třídy) Příkladem vlastního stylu může být podtitul. (Nepatří do nadpisu a přece by měl být formátován odlišně než normální text.) Dá se formátovat přímo, ale aby byl ve všech dokumentech stejný, je dobré nadefinovat jej jako styl. HTML ale nemá pro podtitul žádný tag <podtitul>, a tak si musím pomoci jinak. Vytvořím třídu s názvem podtitul, ve stylopisu mu nadefinuji vlastnosti (třeba tučnost, zarovnání na střed) a u daného textu jenom řeknu, že patří do třídy podtitul. Jak vypadá stylopis: 6

<style>.podtitul { text-align: center; font-weight: bold; text-decoration: overline} /* zarovnání na střed, tučné písmo a nadtržení*/ </style> a potom v těle dokumentu to vypadá takhle: <p class="podtitul">text podtitulu</p> A v prohlížeči potom takhle: Text podtitulu Text uvnitř "zaklasovaného" elementu se bude formátovat podle definice ve stylopisu. Ještě je třeba všimnout si tečky na začátku deklarace ve stylopisu. Ta vyjadřuje, že deklarace se nebude týkat html tagu, ale třídy. Atribut class (třída) se může použít u libovolného elementu (tagu). Symbolicky: <tag class="jméno_třídy"> Element se stejnou class se v dokumentu může vyskytovat mnohokrát (na rozdíl od ID -- identifikátoru, o tom později). Potom se tento element zformátuje podle definice. Identifikátor (tvorba ID třídy) Pro jednoznačný popis nějakého elementu (zejména pro potřeby skriptů) existuje univerzální atribut ID. I jemu se může ve stylopisu přiřadit nějaká deklarace, ale na rozdíl od třídy nezačíná tečkou, ale dvojkřížkem #. V těle dokumentu by se element s jedním identifikátorem měl vyskytovat jenom jednou. Kdybych v předchozím příkladu použil identifikátoru namísto třídy, deklarace by vypadala takhle: #podtitul { text-align: center; font-weight: bold; text-decoration: overline} a v těle by se odstavci přiřadila identifikace atributem id: <p id="podtitul">text podtitulu</p> Identifikátor id se z hlediska CSS chová stejně jako třída class. Rozdíly jsou právě jen ve skriptech a v parsování dokumentu. 7

Pseudoelementy Ve specifikaci CSS1 se vyskytují pseudoelementy :first-line a :first-letter. Znamenají první řádek a první písmeno. Například zápis: p:first-line {color: blue} p:first-letter {font-size: 200%} by měl způsobit, že odstavce budou mít první řádek modrý a první písmeno dvakrát větší. 8