Obsahuje hodnocený úkol
⚠️ Vstupním požadavkem této lekce je dokončené cvičení z předchozí lekce!
Důležité je vědět, zda se stav lokální složky s projektem shoduje se stavem na serveru TuX. Vždy pokračuj nejnovější verzí:
Pokud je nejnovější verze ta na serveru, pak ji nejprve stáhni – aktualizuj složku s projektem ve svém počítači.
Poznámka: Tento "problém" skvěle řeší systém Git a GitHub nebo GitLab.
Nastal čas se pustit do úpravy vzhledu tvého webu.
Web tvoří tři stránky. Použijeme externí stylopis.
link.link:css.<link rel="stylesheet" href="style.css">.Tento řádek musí být ve všech třech souborech. Link odkazuje na soubor style.css. Vytvoř jej na stejné úrovni jako .html soubory. Do něj budeme postupně styly psát. Později se dozvíte, že se tomuto způsobu říká externí styly.
Deklarace CSS se skládá ze selektoru a bloku deklarací vlastnost: hodnota oddělené dvojtečkou (vlastností je celkem 208). Každá z deklarací se ukončuje středníkem. Celý blok je uzavřen do složených závorek.
Stejně jako u HTML i zde platí, že čemu prohlížeč nerozumí, to přeskočí.
V HTML je "svět" velmi snadný: Chceš vytvořit odstavec, použiješ <p>. Chceš vložit obrázek, použiješ <img>. Chceš vytvořit podnadpis, použiješ <h2>. V CSS je to složitější: musíš řešit minimálně několik věci současně:
Veškerý viditelný obsah je v elementu body:
body {
background-color: wheat;
color: saddlebrown;
font-size: 1.3em;
text-align: center;
}
Obrázky zmenšíme na šířku 400 pixelů. margin: auto je kvůli responzivitě.
img {
width: 400px;
margin: auto;
}
Nadpis h1 bude mít větší velikost, rozestup znaků a nakloněné písmo. Jednotka em je relativní velikost. Příklad:
1em .. je přibližně výška jednoho řádku běžného písma (100 %),1.5em .. jeden a půl výšky řádku (150 %),0.75em .. jsou tři čtvrtiny výšky (75 %),0.333em .. je "přesně" třetina (33 %).h1 {
font-style: italic;
letter-spacing: 2px;
font-size: 3em;
}
Přebarvíme i všechny hypertextové odkazy:
a {
color: saddlebrown;
}
Upravíme vzhled vodorovných linek:
hr {
border: 1px solid saddlebrown;
margin: 20px 0px;
}
Velmi důležitá oblast, bez které nevytvoříte ani jeden web!!!
Všechny výše uvedené styly mají jako selektor HTML element (značku). A tady je problém. Často chceme stylovat pouze některé části. K tomu slouží CSS třídy. Základní použití je celkem snadné. Vytvoříme třídu a tu pak použijeme na značku, popř. několik značek:
CSS:
.slogan {
font-family: Georgia, 'Times new Roman', times, serif;
font-style: italic; /* kurzíva */
margin-bottom: 2em; /* mezera pod */
}
HTML:
<p class="slogan">Vaše chvíle pohody u šálku té nejlepší kávy</p>
Existuje kolem 30 pseudotříd. Nejčastěji se setkáme s :hover. Vlastnosti v ní se nastaví po najetí myší na daný element. V tomto případě hypertextový odkaz:
a:hover {
text-decoration: none;
}
V kódu je i několik elementů div s připravenými třídami. div je neutrální bloková značka. Kromě odřádkování (za koncovou značkou </div>) sama o sobě nic nedělá. Funguje jako kontejner do kterého se vloží část k ostylování.
Pozn: Analogickou řádkovou značkou je <span>...</span>.
Takto konstrukce umožňuje aplikovat vlastnosti na všechny elementy (a), které jsou v nadřazeném selektoru (.navigace). Všech ostatních elementů se to nedotkne:
.navigace a {
background-color: saddlebrown;
color: wheat;
border: 1px solid saddlebrown;
font-weight: bold;
text-decoration: none;
padding: 1em;
border-radius: 5px;
}
V navigaci nechceme "rušivé" vodorovné linky. Elegantně je skryjeme:
.navigace hr {
visibility: hidden;
}
Také chceme nějakou vizuální odezvu po najetí myší na odkazy v navigaci:
.navigace a:hover {
background-color: wheat;
border: 1px solid saddlebrown;
color: saddlebrown;
border-radius: 5px;
}
Při současných velikostech monitorů vypadá velmi nehezky, pokud se obsah webu "lepí" na levou stranu a pravá je téměř prázdná. Takto si obsah zúžíme na 600 pixelů a necháme prohlížečem automaticky vycentrovat:
.telo {
max-width: 600px;
margin: auto;
}
Tímto nastavením se některé prvky na stránce "rozpadnou":
Řešit to jde různě, nejjednodušší je tečky odrážek nezobrazovat:
li {
list-style-type: none;
}
Jako poslední je na řadě tabulka. Nemá ohraničení a není vycentrovaná:
Tyto styly to vyřeší:
table, th, td {
border: 1px solid;
border-collapse: collapse;
margin: auto;
padding: 5px;
}
Na server tux zkopíruj celou složku cafe, ne pouze změněné soubory!
✅ Úkol máš splněný, pokud
web funguje a jeho vzhled je podle zadání
web cafe se zobrazuje na URL:
https://tux.panska.cz/~10XPrijmeniJ/cafe
❌ Pokud ne, oprav.
Cesty v URL prohlížeče a serveru:
https://tux.panska.cz/~10XPrijmeniJ/cafe
/home/<jmeno>/www/cafe
CSS (Cascading Style Sheets) je jazyk používaný k úpravě vzhledu webových stránek – určuje například barvy, písma, rozložení prvků a celkový styl, aby stránka byla vizuálně přitažlivá.
Současný moderní web využívá možnosti poslední specifikace jazyků HTML verze 5 a CSS verze 3. V něm se dost striktně odděluje obsah (sémantika) a vzhled:
Standardizaci HTML i CSS zajišťuje mezinárodní konsorcium W3C. Jeho členové společně s veřejností vyvíjejí webové standardy pro World Wide Web. To je důležité proto, aby se ve všech webových prohlížečích zobrazil obsah stejně (zejména vzhled).
Na okraj: Ještě před cca 10 lety bylo téměř nemožné, odladit web tak, aby v různých prohlížečích vypadal stejně – “noční můra” pro vývojáře. V současnosti už to nehrozí. Ať si zobrazíte web v jakémkoliv prohlížeči, vždy bude vypadat na 99,9 % stejně.
Termínem "stylopis" vyjadřujeme umístění v kódu, kde budou styly uložené. K dispozici máme tři možnosti umístění. 🎥 Můj video tutorial (35 min): Tři způsoby vložení CSS na stránku.
style="...". Tento způsob je nejméně častý, využívá se, pokud potřebujeme změnit vzhled u jedné značky.<style>..</style>. Styly pak zapisujeme dovnitř.<link rel="stylesheet" href="style.css">.Tři výše uvedené způsoby se dají kombinovat. Prohlížeč je pak aplikuje podle jednoduchého klíče: přednost má ten styl, který je k elementu "nejblíž". A to nejen v pořadí inlinový, interní, externí, ale i tím, kde je styl souboru umístěn. Tato vlastnost se využívá pouze, pokud je k tomu nějaký smysluplný důvod.
Barvy patří mezi nejvýraznější prvky webové stránky. Pomáhají vytvořit atmosféru, zvýraznit důležité části a zlepšit čitelnost. V CSS se barvy zapisují několika způsoby:
red, blue, green, black, white, gray a dalších 134 (celkem jich je 140).#RRGGBB, např. #ff0000 (červená), #00ff00 (zelená), #0000ff (modrá).rgb(255, 0, 0) nebo hsl(0, 100%, 50%).Vše o barvách včetně teorie, míchání a paletách je tady: https://www.w3schools.com/colors/.
V CSS se barvy nastavují těmito vlastnostmi:
color: <hodnota>
background-color: <hodnota>
Písmo určuje charakter webu – může působit moderně, elegantně nebo hravě.
V CSS se barvy nastavují těmito vlastnostmi:
font-family: <hodnota>
Kromě názvů písem existují i obecné názvy. Každý webový prohlížeč má v sobě nastaveno, jaké písmo má zvolit:
| Název | Co znamená | Písmo |
|---|---|---|
| serif | patková písma | Times New Roman |
| sans-serif | bezpatková písma | Arial |
| monospace | písma s pevnou šířkou | Courier New |
Příklady platí pro OS Windows. Na jiných (macOS, iOS, Android...) se mohou názvy písem lišit.
Například v prohlížeči Google Chrome je najdete zde: Nastavení → Vzhled → Personalizovat písma.