15. diel - Rámček a boxmodel v CSS
V minulej lekcii, Obtekanie v HTML - Float, Tieň, sme sa naučili používať float na obtekanie elementu obsahom a ako môžeme pri elementoch nastaviť tieň.
V dnešnom HTML/CSS tutoriále dokončíme pole s článkom a naučíme sa ďalšie nové vlastnosti HTML a CSS.
Referenčné tlačidlo
Vytvoríme si tlačidlo odkazujúce na podstránku s našimi referenciami
(súbor references.html si môžeme vytvoriť, budeme na ňom však
pracovať až neskôr. Teraz to teda nie je nutné).
Do index.html vložíme na koniec <section>
nasledujúce riadky:
<p class="paragraph-button"> <a href="references.html" class="references-button">My References</a> </p>
Naše nové tlačidlo bude tvorené práve pridaným odkazom
<a>. Budeme teda štýlovať triedu
paragraph-button a triedu references-button.
Odsadenie
Pred samotným štýlovaním tlačidla odsadíme celý odsek s tlačidlom
tak, že naštýlujeme triedu paragraph-button:
.paragraph-button { margin-top: 50px; }
Tým sa nastaví veľkosť horného okraja tohto odseku s tlačidlom.
Pozadie a písmo
Do nášho CSS súboru si napíšeme nový selektor
.references-button. Najprv tlačidlu pridáme nám už známe
vlastnosti:
.references-button { background: #70B73A; color: white; font-size: 0.9em; text-transform: uppercase; }
Tlačidlu sme nastavili zelené pozadie, bielu farbu textu, veľkosť písma a výpis textu veľkými písmenami.
Podčiarknutie textu -
text-decoration
Keďže sa jedná o odkaz (na ďalšiu stránku), tak by sa nám v
predvolenom nastavení text tlačidla podčiarkol. To by však nevyzeralo veľmi
dobre. Preto túto "dekoráciu" zrušíme pridaním vlastnosti
text-decoration s hodnotou none:
.references-button { ... text-decoration: none; }
Vnútorné odsadenie -
padding
Ďalej pomocou vlastnosti padding odsadíme text tlačidla od
jeho okrajov, aby na ne nebol tak veľmi nalepený:
.references-button { ... padding: 12px 25px; }
Zhora a zdola sme nastavili odsadenie na 12 pixelov a zo strán
na 25 pixelov.
Túto vlastnosť si bližšie popíšeme ďalej v lekcii.
Zaguľatenie rohov -
border-radius
Pri tlačidlách väčšinou chceme, aby boli rohy oblé. Preto nášmu
tlačidlu ešte nastavíme zaguľatené rohy. K tomu využijeme vlastnosť
border-radius, ktorou nastavujeme, ako veľmi sa zaguľatia rohy
tzv. rámčeka. Celý kód selektora vyzerá takto:
.references-button { background: #70B73A; color: white; font-size: 0.9em; text-transform: uppercase; text-decoration: none; padding: 12px 25px; border-radius: 25px; }
Teraz má tlačidlo všetky svoje rohy zaoblené s polomerom 25
pixelov:
Vlastnosť border-radius umožňuje nastavenie rôznych
zaguľatení jednotlivých rohov. Hodnoty zapisujeme postupne za sebou v poradí
ľavý horný, pravý horný, pravý dolný a ľavý dolný roh a oddeľujeme
ich medzerami. Našu hodnotu by sme mohli teda rozpísať takto:
border-radius: 25px 25px 25px 25px;
Zaguľatenie napríklad iba ľavého horného a pravého dolného rohu by sme nastavili nasledovne:
border-radius: 25px 0 25px 0;
My ich však necháme všetky zaoblené s polomerom 25
pixelov.
Občas sa stane, že chceme zobrazovať okrúhlu fotku
(napríklad profilové obrázky veľmi často bývajú v kruhu) - to taktiež
docielime pomocou vlastnosti border-radius.
Rámček - border
Rámček môžeme ďalej štýlovať predovšetkým pomocou vlastnosti
border. Túto vlastnosť v našom projekte príliš nevyužijeme,
ale pretože je dôležité ju poznať, vysvetlíme si niektoré jej
možnosti.
Pre predstavu, ako rámček funguje, môžeme napríklad vlastnosť
border vložiť do selektora article:
article { margin: 0 auto; ... border: 3px solid green; }
Vyššie uvedený zápis vlastnosti border s hodnotami
3px solid green je skráteným zápisom týchto vlastností:
border-width: 3px;- šírka rámčeka: 3pxborder-style: solid;- štýl čiary: plnýborder-color: green;- farba rámčeka: zelená
S týmto skráteným štýlom zápisu sa budete v praxi často stretávať.
Štýly čiary -
border-style
Ako štýl čiary môžeme použiť hodnoty:
none- Bez rámčeka.hidden- Rámček sa nevykreslí, ale zaberá miesto.dotted- Bodkovaný.dashed- Čiarkovaný.solid- Plná čiara.double- Dvojitý.groove- 3D rámček s efektom groove.ridge- 3D rámček s efektom ridge.inset- 3D rámček s efektom inset.outset- 3D rámček s efektom outset.inherit- Zdedí štýl čiary rámčeka nadradeného elementu.
Posledné 3D štýly sú dobre vidieť len so širokým rámčekom. Všetky hodnoty podrobnejšie vysvetľujeme a ukazujeme na príkladoch v kurze CSS3, konkrétne v lekciách Okraje a rámčeky v CSS3 a Pokročilejšie okraje a rámčeky v CSS3.
Strany rámčeka
Rámček nemusí byť nutne okolo celého elementu, ale môže byť trebárs
len na niektorých jeho stranách. Vlastnosť border s hodnotou
3px solid green by sme totiž mohli rozpísať na hornú, pravú,
dolnú a ľavú stranu rámčeka:
border-top: 3px solid green; border-right: 3px solid green; border-bottom: 3px solid green; border-left: 3px solid green;
Tieto jednotlivé zápisy je potom možné ešte ďalej
rozpísať aj na border-top-width, border-top-style
atď.
My si pomocou spodného rámčeka vytvoríme podčiarknutie hlavného nadpisu
v našom článku <article>. Upravme si teda selektor
article h1:
article h1 { font-size: 2.3em; font-weight: bold; text-transform: uppercase; width: max-content; border-bottom: 4px solid #EF6534; }
Stránka s rámčekmi teraz vyzerá takto:
Vlastnosť border s hodnotami 3px solid green zo
selektora article sme si vyskúšali a teraz ju
zmažeme.
Podrobnejšie sa rámčekom a ich vlastnostiam venujeme v kurze Základy CSS3.
Odsadenie - margin a
padding
V predchádzajúcich lekciách sme sa už stretli s vlastnosťou
padding a margin. Teraz si poďme lepšie vysvetliť,
ako tieto vlastnosti fungujú.
Rozdiel medzi paddingom a marginom sa vysvetľuje na tzv. boxmodeli (do slovenčiny sa zvykne prekladať ako "krabičkový model"), ktorý vyzerá takto:

Na obrázku vidíme element a rámček (border) okolo neho.
Rozostup medzi rámčekom a obsahom elementu sa nazýva padding.
Rozostup medzi rámčekom a okolím elementu sa nazýva margin.
Zjednodušene povedané: padding je vnútorné
odsadenie, margin to vonkajšie.
Ak chceme nastaviť odsadenie na všetky strany rovnaké, tak môžeme
použiť takýto zápis vlastností padding a
margin:
padding: 20px; margin: 20px;
Vlastnosti padding a margin je však možné
rozpísať aj na jednotlivé strany:
padding-top: 20px; padding-right: 20px; padding-bottom: 20px; padding-left: 20px; margin-top: 20px; margin-right: 20px; margin-bottom: 20px; margin-left: 20px;
Zápis vyššie by sme použili v prípade, že by sme chceli nastaviť napríklad len okraj z jednej strany alebo z každej strany iný. Jednotlivé hodnoty môžeme uviesť aj v zhrňujúcom zápise, ktorý je v poradí horný, pravý, dolný, ľavý:
padding: 20px 20px 20px 20px; margin: 20px 20px 20px 20px;
Ako tretí typ zápisu sa niekedy používa uvedenie iba dvoch hodnôt:
padding: 20px 20px; margin: 20px 20px;
Prvá hodnota tu udáva okraj zvislý (horný a dolný) a druhá vodorovný (ľavý a pravý).
Nastavenie odsadenia
Teraz nastavíme odsadenie niektorým elementom na našom webe. Využijeme na
to už existujúce selektory. Začneme odsekmi <p> v elemente
<article>, ktorým nastavíme dolný vonkajší okraj
(margin-bottom) na 1.5em:
article section p { margin-bottom: 1.5em; line-height: 1.8em; }
Elementu <article> pridáme ešte padding,
aby sme ho mali pekne odsadený:
article { margin: 0 auto; max-width: 960px; padding: 50px 50px 10px 50px; }
Ďalej pridáme horný a dolný vnútorný okraj nadpisom všetkých úrovní, ktoré sa v článku nachádzajú:
article h1, article h2, article h3, article h4, article h5, article h6 { padding: 10px 0; color: #00386B; }
Niektoré elementy, ako napríklad nadpisy a odseky, majú nastavenú
východiskovú hodnotu margin. Nám sa to však v článku pri
nadpise prvej úrovne nehodí, preto ju nastavíme na 0 zo
všetkých strán:
article h1 { margin: 0; font-size: 2.3em; font-weight: bold; text-transform: uppercase; width: max-content; border-bottom: 4px solid #EF6534; }
Výpočet veľkosti
elementu - vlastnosť box-sizing
S boxmodelom úzko súvisí vlastnosť box-sizing, ktorej
východiskovou hodnotou je content-box. Predstavme si, že
nastavíme šírku nejakého elementu napr. na 100px a ďalej mu
nastavíme padding alebo rámček z každej strany na
10px. Element bude zaberať celkom 120px, pretože sa
k šírke pripočítajú ešte okraje. To môže byť pri vytváraní layoutu
problematické.
Preto existuje ešte hodnota border-box, ktorá udáva, že sa
do nastavenej šírky a výšky započítava aj veľkosť padding a
šírka rámčeka. Tým sa stane, že náš element zostane stále
rovnako široký (100px), pretože pridaný
padding alebo rámček zaberú jeho vnútorný priestor a jeho
obsah sa tým v našom príklade zmenší na 80px.
Túto vlastnosť si ukážeme na elemente <body>. U neho v
budúcnosti budeme chcieť nastaviť minimálnu výšku na výšku celej
obrazovky, aby sa nám pätička zobrazovala vždy na konci stránky, a
zároveň mu budeme chcieť nastaviť aj padding. Nastavíme preto
hodnotu vlastnosti box-sizing na border-box:
body { font: 14px "Poppins"; background: #f9f9f9; color: #414042; box-sizing: border-box; }
Takto teraz vyzerá náš web:
Kód z dnešného HTML/CSS tutoriálu nájdete ako vždy na stiahnutie v prílohe nižšie.
V nasledujúcom cvičení, Riešené úlohy k 14.-15. lekcii HTML a CSS, si precvičíme nadobudnuté skúsenosti z predchádzajúcich lekcií.
Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 197x (2.28 MB)
Aplikácia je vrátane zdrojových kódov v jazyku HTML a CSS

David sa informačné technológie naučil na