Programátorská sociální síť a materiálová základna pro C#, Java, PHP, HTML, CSS, JavaScript a další.


Přihlásit se Registrace  

4. díl - Úvod do CSS

Zpět do sekce Webové stránky krok za krokem

Zatím jsme se v našem seriálu úspěšně vyhýbali stylování stránek, pojďme to nyní napravit. Abych co nejlépe vysvětlil podstatu jazyka CSS, udělejme si velmi krátkou odbočku do historie vývoje internetu a jazyka HTML. Stručně řečeno, první internet se nazýval Arpanet a vznikl v 60. letech 20. století jako armádní projekt USA v době studené války. Později byl uvolněn mezi veřejnost a připojovaly se k němu další univerzity a výzkumné ústavy. Tehdy vůbec nevypadal jako dnes, protože se přes něj přenášely pouze textové soubory.

Až v 90. letech se ve výzkumném ústavu CERN rodí jazyk HTML a standard WWW, tedy web, jak ho známe dnes. HTML mělo sloužit pro sdílení interních dokumentů v ústavu. Jazyk HTML byl vyvořen za účelem rozlišit jednotlivé části dokumetu od prostého textu (např. toto je nadpis, toto je seznam, toto je tabulka) a hlavně, aby mohl propojovat jednotlivé dokumenty pomocí odkazů. Vznikaly první webové prohlížeče. Jak se web dostával mezi lidi, HTML se rozvíjelo a přidávaly se nové a nové tagy. Bohužel už ne jen ty, které přidělovaly význam, ale i ty, které elementy jen stylovaly. Prohlížeče se předháněly, kolik tagů podporují a chrlily nové a nové značky. Problémem bylo, že v HTML dokumentech se rázem objevilo 60% balastu, který sloužil pouze k obarvování textu, k zarovnání nadpisů na střed nebo k nastavení fontu písma. Tento problém narůstal až do HTML verze 4, kdy se stylování přímo v HTML označilo za zastaralé a přestalo se používat.

Podívejte se sami, jak mohl vypadat HTML 3 dokument (zobrazil jsem jen část body, hlavička pro nás není zajímavá):

<body bgcolor="silver" text="blue" link="red" vlink="red" alink="green">
        <h1 align="center">Web v HTML 3</h1>
        <h2 align="center">Když chci mít všechny nadpisy centrované,</h2>
        <table align="center" cellpadding="10" cellspacing="0" border="2" bgcolor="blue">
                <tr><td valign="top" align="center"><font color="white">Tato tabulka</font></td><td valign="top" align="center"><font color="white">obsahuje</font></td></tr>
                <tr><td valign="top" align="center"><font color="white">příliš mnoho</font></td><td valign="top" align="center"><font color="white">zbytečných atributů</font></td></tr>
        </table>
        <h2 align="center">Musím centrování psát do každého nadpisu</h2>

        <table align="center" cellpadding="10" cellspacing="0" border="2" bgcolor="blue" text="white">
                <tr><td valign="top" align="center"><font color="white">Tato tabulka je úplně</font></td><td valign="top" align="center"><font color="white">stejně stylovaná, jako</font></td></tr>
                <tr><td valign="top" align="center"><font color="white">ta nahoře, ale stejně musím</font></td><td valign="top" align="center"><font color="white">všechny styly psát znovu.</font></td></tr>
        </table>
        <h2 align="center">A to je otrava</h2>

        <p align="center"><font size="4" color="green" face="arial">Tento odstavec je zelený a centrovaný</font></p>
        <p><b>Text v tomto odstavci je vykreslen tučně, ale jinak nemá vůbec žádný vyšší význam</b></p>
        <p align="center"><font size="4" color="green" face="arial">Tento odstavec je zelený a centrovaný, vše musím psát znovu.</font></p>
</body>

Výsledný web by potom vypadal takto:

Web bez CSS

Všimněte si, kolik procent kódu zabírá samotný obsah webu a kolik procent balast, který slouží jen ke stylování. Styly se také opakují zbytečně pořád dokola. Nevýhod jsou desítky, např. nepřehlednost kódu, stránka je několikrát větší a déle se načítá, je potlačován význam elementů a tedy i základní účel jazyka HTML, příliš mnoho tagů mate vyhledávače (např. Google) a ty pak stránky chybně chápají a indexují. Hlavně si představte, že máte web, který má 50 stránek podobné této. A vy se rozhodnete, že se vám modré tabulky s bílým písmem již nelíbí a že chcete červené se žlutým písmem. Co uděláte? Ano, budete muset přepsat stovky tagů na jinou barvu. Asi sami vidíte, že takhle to nepůjde. Proto byl vyvinut jazyk CSS.

CSS (Cascading Style Sheets) je jazyk, speciálně vyvinutý pro stylování HTML. Kaskádový proto, protože ve stylech funguje dědičnost. Když tedy např. dáme buňce tabulky červenou barvu písma, tuto barvu písma automaticky dostanou i všechny odstavce textu v této buňce. Samozřejmě stále můžeme nějakému odstavci dodatečně barvu změnit, vždy platí ten konkrétnější styl. Nejlepší je, že jeden a ten samý CSS styl můžeme aplikovat třeba na 100 stránek a všechny budou vypadat stejně. Když se rozhodneme něco změnit, změníme jednu řádku ve stylu a změny se sami projeví na všech stránkách. CSS k sobě přesouvá veškeré stylování HTML dokumentu, kód se tedy čistí, je přehledný a odpadají duplikace.

Dal jsem si záležet, abych vám názorně ukázal, že používat CSS je nutnost a že do HTML prostě styly napatří. Tyto tutoriály píši tak, jak se píše moderní web nyní, ne, jak se psal před X lety a jak se můžete chybně dočíst v jiných a starých návodech na internetu.

Ukážeme si ještě, jak by vypadal ten samý dokument s použitím CSS:

<body>
        <h1>Web v HTML 4+</h1>
        <h2>Všechny mé nadpisy jsou centrované,</h2>
        <table class="modra-tabulka">
                <tr><td>Tato tabulka</td><td>obsahuje</td></tr>
                <tr><td>jen definici tabulky</td><td>a text.</td></tr>
        </table>
        <h2>Protože jsem si je tak ostyloval</h2>

        <table class="modra-tabulka">
                <tr><td>Tato tabulka</td><td>je stejně stylovaná, jako</td></tr>
                <tr><td>ta nahoře, mohu tedy</td><td>použít ten samý styl.</td></tr>
        </table>
        <h2>A psát web mě nyní i víc baví.</h2>

        <p class="zeleny-odstavec">Tento odstavec je zelený a centrovaný</p>
        <p><strong>Text v tomto odstavci je považován za důležitý a je také vykreslen tučně</strong></p>
        <p class="zeleny-odstavec">Tento odstavec je také zelený a centrovaný, opět jen znovu použiji styl.</p>
</body>

Výsledek:

Web s CSS

Určitě jste si všimli atributů class, které přiřazují elementu nějaký styl, definovaný v externím CSS souboru. Na závěr nahlédneme pod pokličku a ukážeme si, jak obsah tohoto souboru vypadá. Zatím mu budete rozumět spíše intuitivně, příště si CSS detailně popíšeme.

body {
        background-color: silver;
        color: blue;
}

a { color: red; }

a:hover { color: green; }

h1, h2 { text-align: center; }

.modra-tabulka {
        margin: 0 auto;
        background-color: blue;
        border-collapse: collapse;
}

.modra-tabulka td {
        text-align: center;
        vertical-align: top;
        color: white;
        border: 2px solid black;
        padding: 10px;

}

.zeleny-odstavec {
        text-align: center;
        font-size: 1.2em;
        font-family: arial;
        color: green;
}

 

Autor: sdraco
Autor je C# a PHP programátor, dále se věnuje webovým technologiím a redaktorské činnosti na portálu devbook. Rád své znalosti sdílí s komunitou a tak je rozšiřuje, věří, že smysl života je v poznání.
Unicorn College Autor se informační technologie naučil na Unicorn College - prestižní soukromé vysoké škole IT a ekonomie.


Jak se vám líbí článek?
Celkem (7 hlasů):
4.85714 4.85714 4.85714 4.85714 4.85714


 


Předchozí článek
Tabulky a seznamy
Tutoriál vysvětlující tabulky a seznamy v HTML, vysvětluje tagy thead, tbody, th, tr, td, ul, ol, li. Nechybí slučování buněk ani tvorba hlavičky.
Všechny články v sekci
Webové stránky krok za krokem
Tutoriály vás provedou tvorbou jednoduchého statického webu v HTML a CSS. Vše je vysvětleno od úplných začátků až po nahrání hotového webu na internet.
Další článek
Základní CSS selektory a atributy
Tutoriál vysvětluje základní CSS selektory (typové, id a class), ukáže stylování textu, pozadí, centrování nadpisů, nastavení obtékání a stylování seznamů.


 

 

Vaše komentáře:
Zobrazit starší komentáře (4)

22.06.2012 20:45:03
Avatar
jindral
Redaktor
Skill: Pentium
DotDotDotDotDotDotDotDotDotDot

Takhle mam udělanej svuj web :D po pár dnech úprav jsem se rozhodnul že se naučim CSS :D


Odpovědět   i++; | i--; ( +1 )
Every second of your life is the part of your song! (Headhunterz - From Within)
22.06.2012 21:53:59
Avatar
daniel.ruzicka
Člen
Skill: Vědecká kalkulačka
DotDotDotDotDotDotDotDotDotDot

CSS je nutnost,i když ale některé věci je zbytečné psát do style.css,nap­ř:centrování-

<center></center>

,ale kdo chce mít v tom lepší pořádek,tak do style.css


Odpovědět   i++; | i--;
22.06.2012 21:56:56
Avatar
daniel.ruzicka
Člen
Skill: Vědecká kalkulačka
DotDotDotDotDotDotDotDotDotDot

CSS není nijak těžšký,nejdříve ale ten první pohled na něj byl hrozný,nevyznal jsem se v tom,takže jsem se na něj vykašlal....pak jsem ho nutně potřeboval,no a během pěti minut jsem se tam vyznal ve všem(to co jsem potřeboval)


Odpovědět   i++; | i--;
23.06.2012 09:48:28
Avatar
sdraco
Moderátor
Skill: Kvantový počítač
DotDotDotDotDotDotDotDotDotDot
Odpovídá na daniel.ruzicka:

Tag center je nevalidní, funguje jen z důvodu kompatibility. Je z dob, kdy se ještě formátovalo jiným způsobem.


Odpovědět   i++; | i--;
You only get one shot, do not miss your chance to blow. This opportunity comes once in a lifetime.
25.06.2012 21:23:04
Avatar
daniel.ruzicka
Člen
Skill: Vědecká kalkulačka
DotDotDotDotDotDotDotDotDotDot

Právě,to je ten Html3 :D


Odpovědět   i++; | i--;
25.06.2012 21:32:07
Avatar
daniel.ruzicka
Člen
Skill: Vědecká kalkulačka
DotDotDotDotDotDotDotDotDotDot

jinak teď nevím,co dělat...web mám celkem pěkný,ale sdílet ho ještě dlouho nebudu,než bude dokončený...HTML a CSS je dobrý jazyk,ale to je základ,takže jsem se vrhnul na jiný - PHP,ten mě nějak moc neuchytl a jediné co si pamatuji je:

<?php
 echo ('Hello world')
 ?>
:)

Odpovědět   i++; | i--;
26.06.2012 06:53:37
Avatar
Kit
Moderátor
Skill: Core i7 extreme
DotDotDotDotDotDotDotDotDotDot
Odpovídá na daniel.ruzicka:

Značka center do HTML nepatří, protože se stará o fyzické formátování. Pokud bych časem chtěl změnit vzhled celého webu, musel bych modifikovat obsah všech souborů HTML.


Odpovědět   i++; | i--; ( +1 )
Aplikace je hotova až tehdy, když z ní nelze nic odebrat.
09.07.2012 23:54:34
Avatar
is3l0r
Člen
Skill: Kalkulačka
DotDotDotDotDotDotDotDotDotDot

Úžasné tutoriály dělané přesně na mě. Web jsem se učil tvořit někdy před cca 5 lety a od té doby jsem to zapomněl, ale stále si pár věcí pamatuji.
Tady se vždy dovím, jak to udělat a vzpomenu si na "starý způsob" a hned se mi vybaví proč je to tu jinak.
Jenže o řádek níže je právě ten "starý způsob" hned zmíněný a je k němu i vysvětlení proč se to již tak nedělá. Vážně super a moc chválím. Díky 8-)


Odpovědět   i++; | i--;
10.07.2012 08:06:49
Avatar
sdraco
Moderátor
Skill: Kvantový počítač
DotDotDotDotDotDotDotDotDotDot
Odpovídá na is3l0r:

Díky, jsem rád, že se líbí :) V sekci HTML a CSS vzniká kromě tuhoto seriálu také HTML manuál s přehledem nových tagů.


Odpovědět   i++; | i--;
You only get one shot, do not miss your chance to blow. This opportunity comes once in a lifetime.
20.10.2012 11:01:41
Avatar
sdraco
Moderátor
Skill: Kvantový počítač
DotDotDotDotDotDotDotDotDotDot

Tento článek slouží jen jako předmluva k CSS, není tam kompletní kód, je to jen příklad. Jak se to dělá se dočteš dále.


Odpovědět   i++; | i--;
You only get one shot, do not miss your chance to blow. This opportunity comes once in a lifetime.

 

Zobrazeno 10 z 14 zpráv

Zobrazit všechny komentáře k článku

Přidat novou zprávu

Avatar
Neregistrovaný

Pro výhody se přihlaš. Pokud ještě nemáš účet, zaregistruj se.

Jméno:
E-mail:
Web:

Šťastný Smutný S vyplazeným jazykem Mrkající Smějící se Plačící Cool Nemocný Naštvaný S brýlemi Stydící se On to nebyl Překvapený Hodně překvapený Šokovaný Srdce sdraco
Vložení obrázků Obrázky mohou nahrávat pouze registrovaní uživatelé
Vložení dlouhého zdrojáku Pouze pro registrované

 

Pro ověření prosím zaškrtněte pravdivá tvrzení:
Registrovaní uživatelé se tímto zdržovat nemusí. Zaregistrovat se

Chci porušovat pravidla
Nejsem robot
Píši z důvodu spamování
Nejsem člověk