Základy CSS
Chronologický seznam kompetencí pro CSS (Kaskádové styly, Cascading Style Sheets):
1. Koncepce a připojení
Žák musí vědět, kde se styl bere a jak ho prohlížeč interpretuje:
- Způsoby připojení: Rozdíl mezi inline stylem (v atributu),
<style>v hlavičce a (nejdůležitějším) externím souborem pomocí<link>. - Princip kaskády (Cascading): Jak prohlížeč řeší konflikty (např. když jsou pro jeden text definovány dvě různé barvy).
- Dědičnost: Které vlastnosti se přenášejí z rodiče na potomka (např. barva textu) a které ne (např. rámeček).
2. Syntaxe a Selektory
Základní gramatika, bez které kód nebude fungovat:
Anatomie pravidla:
selektor { vlastnost: hodnota; }. Důraz na složené závorky, dvojtečku a středník.Základní selektory:
Tag (typ):
p,h1,div(ovlivní všechny prvky daného typu).Třída (Class):
.moje-trida(nejpoužívanější, začíná tečkou).ID:
#moje-id(unikátní prvek, začíná mřížkou).Kombinátory: Vnořování (např.
nav avybere odkazy pouze uvnitř navigace).Pseudo-třídy: Změna stavu, zejména
:hover(přejetí myší),:focusnebo:nth-child().
3. Barvy, Jednotky a Boxmodel
Pochopení toho, jak prohlížeč počítá prostor:
Barvy: Jména (
red), HEX (#ff0000), RGB (rgb(255, 0, 0)) a RGBA pro průhlednost.Jednotky délky: * Absolutní:
px(pixely).Relativní:
em,rem(vazba na velikost písma) a%,vh,vw(vazba na velikost okna).Box Model (Klíčová kompetence): Rozdíl mezi
content,padding(vnitřní okraj),border(rám) amargin(vnější okraj).
4. Top 20 nejpoužívanějších vlastností
Tento seznam musí mít žák v "malíku", aby mohl tvořit moderní weby:
Text a Písmo
color– Barva textu.font-size– Velikost písma.font-family– Typ písma (font).font-weight– Tloušťka písma (bold).text-align– Zarovnání textu (left, center, right).text-decoration– Dekorace (např. odstranění podtržení u odkazů).line-height– Výška řádku (pro lepší čitelnost).
Pozadí a Rámečky
background-color– Barva pozadí.background-image– Obrázek na pozadí.border– Zkratka pro šířku, styl a barvu rámečku.border-radius– Zaoblení rohů.
Box Model a Rozvržení (Layout)
width/height– Šířka a výška.margin– Vnější okraj.padding– Vnitřní okraj.display– Nejdůležitější vlastnost (block,inline,inline-block,flex,none).position– Pozicování (static,relative,absolute,fixed).box-sizing– Nastavení výpočtu velikosti (doporučenoborder-box).
Flexbox (Základy moderního layoutu)
flex-direction– Směr toku prvků.justify-content– Zarovnání v hlavní ose.align-items– Zarovnání v příčné ose.
Co by měl žák "cítit"?
U CSS žák nesmí bojovat s tím, proč se mu dva prvky "lepí" na sebe (nepochopení margin/padding) nebo proč mu prvek zmizel (nepochopení display/position).
Cvičení: Základy CSS
Toto cvičení prověří tvou schopnost vybírat prvky (selektory), pracovat s barvami, jednotkami a rozumět tomu, jak prvky zabírají místo na stránce.
Část 1: Syntaxe a selektory
Představ si, že máš v HTML následující kód:
<nav id="hlavni-menu">
<a href="#" class="odkaz aktivni">Domů</a>
<a href="#" class="odkaz">Produkty</a>
</nav>Napiš CSS selektor, který vybere:
- Všechny značky
<a>: __________ - Pouze prvek s ID
hlavni-menu: __________ - Všechny prvky s třídou
odkaz: __________ - Pouze odkaz, který má zároveň třídu
aktivni: __________ - Všechny odkazy, které jsou uvnitř navigace: __________
Část 2: Box Model (Teorie i výpočet)
Doplňte nebo vypočítejte.
- Která vlastnost vytváří prostor uvnitř prvku (mezi obsahem a rámečkem)? __________
- Která vlastnost vytváří prostor vně prvku (odsazení od ostatních prvků)? __________
- Výpočet: Máš prvek
<div>. Má nastaveno:width: 200px;,padding: 20px;,border: 5px solid black;. Pokud jebox-sizing: content-box;, jaká bude celková šířka prvku v px? __________
Část 3: Barvy a jednotky
- Převeď zápis barvy: Jak zapíšeš černou barvu pomocí HEX kódu? __________
- Průhlednost: Který barevný model (zkratka) umožňuje nastavit průhlednost? __________
- Jednotky: Jaký je rozdíl mezi
pxarem?
Část 4: Analýza a oprava kódu
V následujícím CSS kódu jsou 3 chyby (syntaktické nebo logické). Najdi je:
/* Styl pro hlavní nadpis */
.h1 {
color = blue;
font-size: 24px
margin-top: 10px;
}
/* Styl pro tlačítko při najetí myší */
.button-super:hover [
background-color: #ff0000;
]- Chyba: __________
- Chyba: __________
- Chyba: __________
Část 5: Praktický úkol
Napiš CSS pravidlo pro třídu .karta, která bude mít: tmavě šedé pozadí, bílý text, vnitřní odsazení 15px a zaoblené rohy 10px.
/* Zde napiš svůj kód */Klíč k řešení
Část 1: Selektory
a(selektor tagu)#hlavni-menu(selektor ID).odkaz(selektor třídy).odkaz.aktivni(spojené třídy bez mezery)nav a(potomek) neboid="hlavni-menu" a
Část 2: Box Model
paddingmargin- 250px (200 + 20 zleva + 20 zprava + 5 zleva + 5 zprava).
Část 3: Barvy a jednotky
#000000(nebo zkráceně#000)rgba(a = alpha kanál)pxje fixní (pixel),remje relativní k velikosti písma kořenového elementu (html).
Část 4: Analýza kódu (Chyby)
- Špatné přiřazení: V CSS se nepoužívá
=, ale dvojtečka (color: blue;). - Chybějící středník: Za
24pxchybí středník, což zastaví čtení dalších vlastností. - Špatné závorky: U
.button-super:hoverjsou použity hranaté závorky[]místo složených{}. (Bonusová chyba: Selektor.h1hledá třídu, ale nadpis je většinou jen tagh1bez tečky).
Část 5: Praktický úkol
.karta {
background-color: #333; /* nebo darkgray */
color: white;
padding: 15px;
border-radius: 10px;
}