Tananyag
16. lecke · Színek és tipográfia

3. modul · CSS alapok · 16. lecke

Színek és tipográfia

Egy weboldal kilencven százaléka szöveg. Ha a szöveg jól olvasható, az oldal jónak tűnik — akkor is, ha egyébként egyszerű. Ebben a leckében megtanulod a színek megadását és a betűk beállítását: típus, méret, vastagság, sortáv, igazítás.

≈ 40 perc Előtte: 12–15. lecke 12 élő példa

Mit fogsz tudni a lecke végén

1Szövegszín és háttérszín

Két tulajdonsággal kezdünk, és ezeket kezdők gyakran összekeverik:

TulajdonságMit színez?
colorA szöveget (és alapból a keretet, ha annak nincs saját színe)
background-colorAz elem hátterét — az egész dobozt, a szöveg mögött
Mit színez a color, és mit a background-color?
index.html
<p class="csak-szoveg">Csak a szöveg színes.</p>

<p class="csak-hatter">Csak a háttér színes.</p>

<p class="mindketto">Szöveg és háttér is.</p>
style.css
.csak-szoveg {
  color: #be123c;
}

.csak-hatter {
  background-color: #fde68a;
}

.mindketto {
  color: white;
  background-color: #be123c;
}
Eredmény a böngészőben
Figyeld meg: a háttérszín a teljes sor szélességében látszik, nem csak a szavak mögött. Ez azért van, mert a p blokkszintű elem (11. lecke) — a doboza kitölti a rendelkezésre álló helyet.
SZÍNT MINDIG PÁRBAN

Ha háttérszínt adsz meg, mindig gondold végig a szövegszínt is — és fordítva. Egy sötét háttér az alapértelmezett fekete szöveggel olvashatatlan. A kettő együtt határozza meg, hogy látszik-e a tartalom.

2A színek négy jelölése

Ugyanazt a színt többféleképpen is leírhatod. Mind a négy jelölés teljesen egyenértékű — a böngésző ugyanazt a színt rajzolja belőlük.

JelölésPéldaMikor jó?
Név crimson, white Gyors próbához. Kb. 140 név van, de a pontos árnyalatot nem te választod.
Hex #dc143c A leggyakoribb. Ezt adják a tervezőprogramok és a színválasztók.
RGB rgb(220 20 60) Ha átlátszóság is kell (3. pont), vagy számokkal gondolkodsz.
HSL hsl(348 83.3% 47.1%) Ha árnyalatokat akarsz készíteni egy színből — ez a legemberibb jelölés.
Ugyanaz a szín négyféleképpen
index.html
<p class="nev">név: crimson</p>
<p class="hex">hex: #dc143c</p>
<p class="rgb">rgb(220 20 60)</p>
<p class="hsl">hsl(348 83.3% 47.1%)</p>
style.css
p {
  color: white;
  padding: 6px 10px;
  margin: 4px 0;
}

.nev { background-color: crimson; }
.hex { background-color: #dc143c; }
.rgb { background-color: rgb(220 20 60); }
.hsl { background-color: hsl(348 83.3% 47.1%); }
Eredmény a böngészőben
A négy csík pontosan egyforma. Nincs „jobb" jelölés — csak más helyzetben kényelmesebb az egyik vagy a másik.

A hex jelölés megfejtése

A #dc143c hat karaktere három párból áll: vörös, zöld és kék. Minden pár egy tizenhatos számrendszerbeli szám 00-tól (semmi) ff-ig (teljes erő, vagyis 255).

# dc 14 3c VÖRÖS 220 / 255 ZÖLD 20 / 255 KÉK 60 / 255 az eredmény
Sok vörös, alig zöld, egy kevés kék: ebből lesz a bíborvörös.
HexSzín
#000000fekete — semmi fény
#fffffffehér — minden szín teljes erővel
#ff0000tiszta vörös
#808080középszürke — a három egyforma, ezért szürke
#f00rövid alak: ugyanaz, mint a #ff0000
NEM KELL FEJBEN SZÁMOLNOD

Senki nem ír fejből hex kódot. VS Code-ban állj rá egy színkódra, és megjelenik mellette egy színes négyzet — rákattintva színválasztó nyílik. A lényeg, hogy felismerd: ha a három pár közel azonos, szürkés a szín; ha az első pár a legnagyobb, vöröses.

Miért jó a HSL?

A HSL három száma úgy írja le a színt, ahogy egy ember gondolkodik róla:

ÉrtékJelentése
H — színárnyalatFok a színkörön, 0–360: 0 vörös, 120 zöld, 240 kék
S — telítettség0% szürke, 100% harsány
L — világosság0% fekete, 50% a tiszta szín, 100% fehér
Egy szín árnyalatai — csak a világosságot változtatjuk
index.html
<p class="s1">L = 20%</p>
<p class="s2">L = 35%</p>
<p class="s3">L = 50%</p>
<p class="s4">L = 75%</p>
<p class="s5">L = 92%</p>
style.css
p {
  padding: 5px 10px;
  margin: 3px 0;
}

.s1 { background-color: hsl(348 83% 20%); color: white; }
.s2 { background-color: hsl(348 83% 35%); color: white; }
.s3 { background-color: hsl(348 83% 50%); color: white; }
.s4 { background-color: hsl(348 83% 75%); }
.s5 { background-color: hsl(348 83% 92%); }
Eredmény a böngészőben
Az első két szám végig ugyanaz — csak a világosságot léptettük. Így kapsz egy teljes, összeillő színskálát egyetlen színből. Hex kóddal ehhez mind a hat karaktert kellene számolgatni.

3Átlátszóság

Az RGB és a HSL jelölésnek van egy negyedik, opcionális értéke: az átlátszóság, angolul alpha. Perjellel választod el, és 0 (teljesen átlátszó) és 1 (teljesen fedő) között adod meg — vagy százalékban.

background-color: rgb(190 18 60 / 0.5);    /* 50% átlátszó */
background-color: hsl(348 83% 47% / 20%);   /* 20%-ban fedő */
background-color: rgba(190, 18, 60, 0.5);   /* régebbi írásmód, ugyanaz */

Átlátszó szín vagy opacity?

Van egy külön tulajdonság is, az opacity, ami szintén átlátszóvá tesz. A különbség kulcsfontosságú:

Átlátszó háttérszín vs. opacity tulajdonság
index.html
<div class="minta">
  <p class="alpha">
    Átlátszó HÁTTÉRSZÍN — a szöveg éles.
  </p>
  <p class="opacity">
    OPACITY — a szöveg is elhalványul.
  </p>
</div>
style.css
.minta {
  padding: 10px;
  background-image: repeating-linear-gradient(
    45deg, #fde68a 0 12px, #fef3c7 12px 24px);
}

.alpha, .opacity {
  color: white;
  font-weight: bold;
  padding: 10px;
}

.alpha {
  background-color: rgb(190 18 60 / 0.5);
}

.opacity {
  background-color: rgb(190 18 60);
  opacity: 0.5;
}
Eredmény a böngészőben
Mindkét doboz háttere félig átlátszó — átlátszik a csíkos minta. De az első dobozban a szöveg éles fehér marad, a másodikban a szöveg is elhalványult.
A KÜLÖNBSÉG
  • Átlátszó szín (rgb(… / 0.5)): csak az adott szín lesz átlátszó.
  • opacity tulajdonság: az egész elem átlátszó lesz — a szövegével, a képeivel és az összes gyerekével együtt.
MIKOR MELYIK?

Ha csak egy halvány háttér kell, használj átlátszó színt. Az opacity tulajdonság akkor jó, ha az egész elemet akarod elhalványítani — például egy letiltott gombot vagy egy képet, ami fölé viszed az egeret (23. lecke).

4Kontraszt és olvashatóság

A legszebb színpár is rossz, ha nem lehet elolvasni a szöveget. A kontraszt a szöveg és a háttér világosságának különbsége — minél nagyobb, annál könnyebb olvasni.

Rossz és jó kontraszt
index.html
<p class="rossz1">Világosszürke fehéren — 2,2 : 1</p>
<p class="rossz2">Sárga fehéren — 1,5 : 1</p>
<p class="rossz3">Piros zöldön — 1,4 : 1</p>
<p class="jo1">Sötétszürke fehéren — 7,6 : 1</p>
<p class="jo2">Fehér bordón — 6,3 : 1</p>
style.css
p {
  padding: 6px 10px;
  margin: 4px 0;
}

.rossz1 { color: #b0b0b0; background-color: white; }
.rossz2 { color: #facc15; background-color: white; }
.rossz3 { color: #e11d48; background-color: #16a34a; }
.jo1    { color: #4b5563; background-color: white; }
.jo2    { color: white;   background-color: #be123c; }
Eredmény a böngészőben
Az első hármat megerőltető olvasni — és ez egy jó monitoron, jó fényviszonyok között van így. Telefonon, napsütésben vagy gyengébb látással ezek gyakorlatilag láthatatlanok.
A SZABÁLY

A kontrasztot aránnyal mérik, 1 : 1-től (nincs különbség) 21 : 1-ig (fekete a fehéren). A nemzetközi akadálymentességi ajánlás (WCAG) szerint:

  • normál szövegnél legalább 4,5 : 1,
  • nagy szövegnél (kb. 24 képponttól, vagy félkövér 19 képponttól) legalább 3 : 1.
HOGYAN ELLENŐRZÖD?

F12 → jelölj ki egy szöveges elemet → a Styles panelen kattints a color tulajdonság melletti kis színes négyzetre. A felugró színválasztó kiírja a kontrasztarányt, és pipával vagy figyelmeztető jellel jelzi, megfelel-e. Nem kell külön programot telepítened.

NE CSAK SZÍNNEL JELEZZ

Minden tizenkettedik férfi valamilyen mértékben színtévesztő, a leggyakrabban a pirosat és a zöldet keverik. Ha egy hibaüzenetet csak a piros szín jelez, sokan nem veszik észre. Tegyél mellé szöveget, ikont vagy keretet is.

5Betűtípus és tartalék betűtípusok

A betűtípust a font-family tulajdonság adja meg. Van azonban egy fontos buktató: a böngésző csak olyan betűtípust tud használni, ami telepítve van a látogató gépén (vagy amit letöltetsz vele — 6. pont). Ezért nem egy betűtípust adunk meg, hanem egy listát.

body {
  font-family: "Segoe UI", Roboto, Arial, sans-serif;
}

Olvasva: „Használd a Segoe UI betűtípust. Ha nincs, akkor a Roboto-t. Ha az sincs, akkor az Arial-t. Ha egyik sincs, akkor bármilyen talp nélküli betűt." Ezt a listát fontstacknek (betűtípus-veremnek) hívják.

A FONTSTACK SZABÁLYAI
  • Az elemeket vessző választja el; a böngésző balról jobbra halad.
  • A szóközt tartalmazó neveket tedd idézőjelbe: "Times New Roman".
  • A lista mindig egy általános családdal végződjön — ez a biztos tartalék.
  • Az általános családok nevét soha ne tedd idézőjelbe: sans-serif, nem "sans-serif".

Az általános betűcsaládok

Az öt általános betűcsalád
index.html
<p class="serif">serif — Árvíztűrő tükörfúrógép</p>
<p class="sans">sans-serif — Árvíztűrő tükörfúrógép</p>
<p class="mono">monospace — Árvíztűrő tükörfúrógép</p>
<p class="rendszer">system-ui — Árvíztűrő tükörfúrógép</p>
<p class="kezi">cursive — Árvíztűrő tükörfúrógép</p>
style.css
p { font-size: 18px; margin: 6px 0; }

.serif    { font-family: serif; }
.sans     { font-family: sans-serif; }
.mono     { font-family: monospace; }
.rendszer { font-family: system-ui; }
.kezi     { font-family: cursive; }
Eredmény a böngészőben
Az általános családnév nem egy konkrét betűtípus, hanem egy kategória — a böngésző dönti el, melyik telepített betűt használja hozzá. Ezért egy másik gépen kicsit máshogy nézhetnek ki.
CsaládJellemzőjeMire való?
serifTalpas betűk — a betűszárak végén kis „lábak"Klasszikus, könyvszerű hangulat; hosszabb olvasmányokhoz, címekhez
sans-serifTalp nélküli, tiszta vonalú betűkA weben a leggyakoribb; képernyőn jól olvasható
monospaceMinden betű egyforma szélesKód, táblázatos számok
system-uiAz operációs rendszer saját betűjeAlkalmazásszerű felületek
cursiveKézírásszerűNagyon ritkán; komoly szövegre soha

Bevált fontstackek

style.css
/* modern, talp nélküli */
font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

/* klasszikus, talpas */
font-family: Georgia, "Times New Roman", serif;

/* kódhoz */
font-family: Consolas, "Courier New", monospace;
ÉKEZETEK!

Magyar oldalnál mindig ellenőrizd, hogy a kiválasztott betűtípusban megvan-e az ő és az ű. Egyes betűtípusokból hiányoznak, ilyenkor a böngésző csak ezt a két betűt jeleníti meg egy másik betűtípussal — ez nagyon csúnya. A próbamondat: Árvíztűrő tükörfúrógép.

6Webfontok

Ha olyan betűtípust szeretnél, ami nincs minden gépen, a böngészővel letöltetheted. A legismertebb ingyenes forrás a Google Fonts (fonts.google.com).

Hogyan használd?

  1. A Google Fonts oldalán válaszd ki a betűtípust (például Roboto) és a kellő vastagságokat.
  2. A kapott <link> elemeket másold be a HTML <head> részébe, a saját stíluslapod elé.
  3. A CSS-ben használd a betűtípus nevét, a szokásos tartalék betűtípusokkal együtt.
index.html — a head részben
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet"
      href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap">
<link rel="stylesheet" href="style.css">
style.css
body {
  font-family: "Roboto", Arial, sans-serif;
}
MIÉRT NINCS ITT ÉLŐ PÉLDA?

Mert a webfont internetkapcsolatot igényel, és egy iskolai hálózaton könnyen elérhetetlen lehet — a példa ilyenkor „nem működne", pedig a kód jó. Otthon próbáld ki: ha a betűtípus nem töltődik le, a fontstack miatt az oldal akkor is olvasható marad, csak az Arial jelenik meg helyette.

NE TÖLTS LE TÚL SOKAT

Minden betűtípus és minden vastagság külön fájl, amit a látogatónak le kell töltenie. Egy oldalon legfeljebb két betűtípus (egy a címeknek, egy a szövegnek), és azokból is csak a ténylegesen használt vastagságok. Több betűtípus lassú és zavaros is.

ADATVÉDELEM

A Google Fonts betöltésekor a látogató böngészője a Google szervereihez csatlakozik. Éles, európai weboldalaknál ezért gyakran letöltik a betűfájlokat, és a saját szerverükről szolgálják ki. Gyakorlófeladatokban nyugodtan használd a fenti <link> megoldást.

7Betűméret: px, em, rem

A betűméretet a font-size tulajdonság adja meg. Háromféle mértékegységgel fogsz találkozni, és a különbségük fontosabb, mint elsőre tűnik.

EgységMihez viszonyít?Példa
px Semmihez — fix méret, képpontban font-size: 18px mindig 18 képpont
em A szülő betűméretéhez Ha a szülő 20 px, akkor 1.5em = 30 px
rem A gyökérelem (html) betűméretéhez Ha a html 16 px, akkor 1.5rem = 24 px — mindenhol
A 16 KÉPPONT

A böngészők alapértelmezett betűmérete 16 képpont. Ha nem változtatod meg, akkor 1rem = 16 px, 2rem = 32 px, 0.875rem = 14 px. (Az r a root, vagyis gyökér szóból jön.)

Az em csapdája: halmozódik

Mivel az em mindig a szülőhöz viszonyít, egymásba ágyazott elemeknél összeszorzódik. Nézd meg:

Ugyanaz a szabály, egymásba ágyazva — em és rem
index.html
<p><strong>em egységgel:</strong></p>
<ul class="em">
  <li>Első szint
    <ul class="em">
      <li>Második szint
        <ul class="em">
          <li>Harmadik szint</li>
        </ul>
      </li>
    </ul>
  </li>
</ul>

<p><strong>rem egységgel:</strong></p>
<ul class="rem">
  <li>Első szint
    <ul class="rem">
      <li>Második szint
        <ul class="rem">
          <li>Harmadik szint</li>
        </ul>
      </li>
    </ul>
  </li>
</ul>
style.css
html {
  font-size: 16px;
}

.em {
  font-size: 1.3em;
}

.rem {
  font-size: 1.3rem;
}
Eredmény a böngészőben
Az em listában minden szint egyre nagyobb: 16 × 1,3 × 1,3 × 1,3 ≈ 35 képpont a harmadik szinten. A rem listában mindhárom szint egyforma, mert mindegyik a html elemhez viszonyít: 16 × 1,3 ≈ 21 képpont.
MELYIKET HASZNÁLD?
  • Betűmérethez: rem. Kiszámítható, nem halmozódik — és ha a látogató a böngészőjében nagyobbra állítja az alapméretet (gyengénlátók teszik így), a te oldalad is vele nő.
  • Szöveghez kötött térközhöz: em — például egy gomb belső margójához, hogy a betűvel arányosan nőjön (17. lecke).
  • Keretvastagsághoz, apró részletekhez: px — egy 1 képpontos vonalnak nem kell nőnie.
ÉS A SZÁZALÉK?

A font-size: 150% ugyanúgy működik, mint az 1.5em: a szülőhöz viszonyít, és ugyanúgy halmozódik. Betűméretnél ritkán használják.

8Vastagság és dőlt betű

A font-weight és a font-style tulajdonság
index.html
<p class="w300">300 — vékony</p>
<p class="w400">400 — normál</p>
<p class="w600">600 — félkövér</p>
<p class="w700">700 — kövér</p>
<p class="w900">900 — nagyon kövér</p>

<p class="dolt">Dőlt betű</p>

<h3 class="vekony-cim">Címsor normál vastagsággal</h3>
<strong class="normal">Strong, félkövérség nélkül</strong>
style.css
body {
  font-family: "Segoe UI", Arial, sans-serif;
  font-size: 18px;
}
p { margin: 3px 0; }

.w300 { font-weight: 300; }
.w400 { font-weight: 400; }
.w600 { font-weight: 600; }
.w700 { font-weight: 700; }
.w900 { font-weight: 900; }

.dolt { font-style: italic; }

.vekony-cim { font-weight: 400; }
.normal     { font-weight: normal; }
Eredmény a böngészőben
Az utolsó két sor mutatja, hogy a vastagság csak megjelenés: egy címsor lehet vékony betűs, egy strong elem lehet normál vastagságú — a jelentésük (4. lecke) ettől nem változik.
ÉrtékJelentése
normal = 400Normál vastagság
bold = 700Kövér
100900Százasával léptethető finomhangolás
NEM MINDEN VASTAGSÁG LÉTEZIK

Hogy egy vastagság tényleg megjelenik-e, az a betűtípustól függ. Ha az Arialnak nincs 300-as változata, a böngésző a legközelebbit választja — ezért a fenti demóban a 300-as és a 400-as sor lehet, hogy egyformán néz ki. Webfontnál csak azokat a vastagságokat kapod meg, amelyeket letöltetsz.

9Sortáv

A line-height tulajdonság a sorok magasságát adja meg. Ez az egyik legfontosabb és legtöbbször elfelejtett beállítás: a böngésző alapértelmezett sortávja hosszabb szövegnél zsúfolt.

Ugyanaz a bekezdés háromféle sortávval
index.html
<p class="szuk"><strong>1.1</strong> — A weboldalak
szövegét többnyire képernyőn olvassák, ahol a
szem gyorsabban fárad, mint papíron. A megfelelő
sortáv segít, hogy a szem könnyen megtalálja a
következő sor elejét.</p>

<p class="jo"><strong>1.6</strong> — A weboldalak
szövegét többnyire képernyőn olvassák, ahol a
szem gyorsabban fárad, mint papíron. A megfelelő
sortáv segít, hogy a szem könnyen megtalálja a
következő sor elejét.</p>

<p class="tag"><strong>2.4</strong> — A weboldalak
szövegét többnyire képernyőn olvassák, ahol a
szem gyorsabban fárad, mint papíron. A megfelelő
sortáv segít, hogy a szem könnyen megtalálja a
következő sor elejét.</p>
style.css
p {
  font-size: 15px;
  margin: 0 0 14px;
}

.szuk { line-height: 1.1; }
.jo   { line-height: 1.6; }
.tag  { line-height: 2.4; }
Eredmény a böngészőben
Az első zsúfolt, a harmadik szétesik — a sorok már nem alkotnak egy bekezdést. A középső a kellemes. Szövegtörzsnél 1,5 és 1,7 között érdemes keresgélni, címsoroknál kevesebb, 1,1–1,3 is elég.
ÍRD MÉRTÉKEGYSÉG NÉLKÜL

A line-height az egyik kevés tulajdonság, aminél a mértékegység nélküli szám a helyes: line-height: 1.6. Ez azt jelenti: „a saját betűméret 1,6-szorosa".

Miért nem 24px? Mert a sortáv öröklődik. A 24px érték fix 24 képpontként öröklődne egy 40 képpontos címsorra is — és a sorai egymásba csúsznának. A szám viszont arányként öröklődik, így minden betűmérethez igazodik.

10Igazítás és szövegdíszítés

TulajdonságGyakori értékekMire való?
text-alignleft, center, right, justifyVízszintes igazítás az elemen belül
text-decorationnone, underline, line-throughAláhúzás, áthúzás
text-transformuppercase, lowercase, capitalizeKis- és nagybetűsítés — a HTML szövege nem változik
letter-spacing0.05em, -0.01emBetűköz
text-indent2emElső sor behúzása
Igazítás, díszítés, nagybetűsítés, betűköz
index.html
<p class="balra">Balra igazítva (alapértelmezés)</p>
<p class="kozepre">Középre igazítva</p>
<p class="jobbra">Jobbra igazítva</p>

<p>Ár: <span class="regi">4990 Ft</span> 3490 Ft</p>
<p class="hullam">Hullámos aláhúzás</p>

<p class="felirat">Új termékek</p>
<p class="nagy">minden szó nagybetűvel kezdődik</p>
style.css
p { margin: 5px 0; }

.balra   { text-align: left; }
.kozepre { text-align: center; }
.jobbra  { text-align: right; }

.regi {
  text-decoration: line-through;
  color: #9ca3af;
}
.hullam {
  text-decoration: underline wavy #be123c;
}

.felirat {
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-size: 13px;
  font-weight: bold;
  color: #be123c;
}
.nagy {
  text-transform: capitalize;
}
Eredmény a böngészőben
Az „ÚJ TERMÉKEK" felirat a HTML-ben kisbetűs — a nagybetűsítést a CSS végzi. A csupa nagybetűs szöveg mellé kis betűköz illik, különben zsúfoltnak hat.
A SORKIZÁRT SZÖVEG A WEBEN

A text-align: justify érték könyvekben szép, a weben viszont gyakran nagy, egyenetlen lyukakat hagy a szavak között — különösen keskeny hasábban és a hosszú magyar szavak miatt. Hosszabb szövegnél maradj a balra igazításnál.

A text-align A TARTALMAT IGAZÍTJA, NEM AZ ELEMET

A text-align: center az elem belsejében lévő szöveget és soron belüli elemeket (képet, linket) teszi középre — magát a blokkszintű dobozt nem. Egy doboz középre helyezése más eszközt igényel (17. és 20. lecke). Ez az egyik leggyakoribb kezdő félreértés.

A LINKEK ALÁHÚZÁSA

A text-decoration: none érték leggyakrabban a linkeken szerepel. Emlékezz a 6. leckére: ha elveszed az aláhúzást, adj helyette más jelzést, különben senki nem tudja, hogy az link.

11Egy jó tipográfiai alap

Rakjuk össze az egészet. Az alábbi néhány szabály szinte bármelyik oldalnak jó kiindulópont — és jól mutatja, mennyit számít a tipográfia önmagában, egyetlen díszítőelem nélkül.

Előtte — a böngésző alapértelmezése
index.html
<h1>A kovászos kenyér titka</h1>
<p class="lead">Három hozzávaló, egy kis türelem,
és a konyhádban olyan illat lesz, mint egy
pékségben.</p>
<h2>Miért kovász?</h2>
<p>A kovász élő kultúra: vadélesztőből és
tejsavbaktériumokból áll. Lassabban kel, mint
a bolti élesztő, de cserébe mélyebb ízt és
tovább friss kenyeret ad.</p>
Eredmény — CSS nélkül
Utána — ugyanaz a HTML, néhány tipográfiai szabály
index.html (változatlan)
<h1>A kovászos kenyér titka</h1>
<p class="lead">Három hozzávaló, egy kis türelem,
és a konyhádban olyan illat lesz, mint egy
pékségben.</p>
<h2>Miért kovász?</h2>
<p>A kovász élő kultúra: vadélesztőből és
tejsavbaktériumokból áll. Lassabban kel, mint
a bolti élesztő, de cserébe mélyebb ízt és
tovább friss kenyeret ad.</p>
style.css
body {
  font-family: "Segoe UI", Roboto, Arial, sans-serif;
  font-size: 1rem;
  line-height: 1.65;
  color: #3a2f35;
  background-color: #fdfaf6;
  margin: 16px;
}

h1, h2 {
  font-family: Georgia, "Times New Roman", serif;
  line-height: 1.2;
  color: #7f1d1d;
}
h1 { font-size: 2rem; }
h2 { font-size: 1.35rem; }

.lead {
  font-size: 1.2rem;
  color: #6b5a62;
}
Eredmény — ugyanaz a tartalom
Se keret, se árnyék, se kép — csak betűk és színek. Mégis egy igényes, jól olvasható oldal. Figyeld meg a mintát: talp nélküli betű a szövegnek, talpas a címeknek, tágas sortáv a szövegnek, szűk a címeknek, és egy kiemelt bevezető bekezdés.
A TIPOGRÁFIAI ALAP RECEPTJE
  • A body elemen: betűtípus, alapméret (1rem), sortáv (1,5–1,7), szövegszín (ne tiszta fekete: egy nagyon sötét szürke kellemesebb).
  • A címsorokon: szűkebb sortáv (1,1–1,3), jól elkülönülő méretek rem egységben.
  • Legfeljebb két betűtípus.
  • Minden más öröklődik (15. lecke) — nem kell minden elemnél újra megadni.

12Tipikus hibák

HibaMi történik, és mi a megoldás?
background helyett color a háttérhez A szöveg színeződik, nem a háttér. Háttérhez: background-color.
Hiányzó # a hex kód elől: color: be123c Érvénytelen érték, a böngésző eldobja. Mindig: #be123c.
Szóközös betűtípusnév idézőjel nélkül Általában működik, de hibalehetőség. Írd idézőjelbe: "Segoe UI".
Idézőjelbe tett általános család: "sans-serif" A böngésző egy „sans-serif" nevű betűtípust keres, és nem a kategóriát használja. Idézőjel nélkül.
Nincs tartalék betűtípus a lista végén Ha a betűtípus nincs meg, a böngésző alapértelmezett (gyakran talpas) betűje jelenik meg.
Halmozódó em méretek Beágyazott elemeknél egyre nagyobb vagy kisebb lesz a szöveg. Betűmérethez: rem.
line-height képpontban Fix értékként öröklődik, a nagyobb betűs címsorok sorai egymásba csúsznak. Mértékegység nélkül.
Gyenge kontraszt (világosszürke fehéren) Nehezen olvasható, sokaknak láthatatlan. Legalább 4,5 : 1 — ellenőrizd F12-vel.
text-align: center a doboz középre tételéhez Csak a tartalmat igazítja, a blokkszintű dobozt nem.
Hosszú bekezdés középre igazítva A szem minden sor elején keresgél. Középre legfeljebb rövid címet, feliratot tegyél.

Önellenőrző kérdések

Előbb válaszolj magadban, csak utána nézd meg a megoldást.

1. Mit színez a color, és mit a background-color tulajdonság?

A color a szöveget, a background-color az elem hátterét — a teljes dobozt a szöveg mögött.

2. Milyen szín nagyjából a #1f1f1f, és milyen a #f0f0f0? Honnan tudod?

Az első nagyon sötétszürke, a második nagyon világosszürke. A három pár mindkettőnél egyforma — ezért szürke —, és az értékük az elsőnél kicsi (közel a 00-hoz), a másodiknál nagy (közel az ff-hez).

3. Egy kártyának halvány, félig átlátszó hátteret szeretnél, de a szöveg maradjon éles. opacity: 0.5 vagy rgb(… / 0.5)?

Az átlátszó szín: background-color: rgb(… / 0.5). Az opacity tulajdonság az egész elemet halványítaná el, a szövegével és a gyerekeivel együtt.

4. Mi a hiba ebben: font-family: Segoe UI, Arial, "sans-serif";

Két dolog: a szóközös Segoe UI nevet idézőjelbe kellene tenni, a sans-serif általános családot viszont nem. Helyesen: font-family: "Segoe UI", Arial, sans-serif;

5. A html elem betűmérete 16 px. Mekkora egy font-size: 1.5em értékű elem, ha a szülője 20 px-es? És ha 1.5rem lenne?

1.5em = 1,5 × 20 = 30 px (a szülőhöz viszonyít). 1.5rem = 1,5 × 16 = 24 px (a html elemhez viszonyít, a szülő mérete nem számít).

6. Miért jobb a line-height: 1.6, mint a line-height: 26px?

Mert a sortáv öröklődik. A mértékegység nélküli szám arányként öröklődik, így minden betűmérethez igazodik. A 26px fix értékként öröklődne a nagyobb betűs címsorokra is, és azok sorai egymásba csúsznának.

7. Egy szürke szöveg fehér háttéren nehezen olvasható. Hogyan ellenőrzöd, hogy elég-e a kontraszt?

F12 → jelöld ki az elemet → a Styles panelen kattints a color tulajdonság melletti színes négyzetre. A színválasztó kiírja a kontrasztarányt. Normál szövegnél legalább 4,5 : 1 kell.

8. Egy div elemre text-align: center szabályt írtál, hogy középre kerüljön az oldalon. Nem került. Miért?

Mert a text-align tulajdonság az elem belsejében lévő szöveget és soron belüli elemeket igazítja, nem magát a blokkszintű dobozt. A doboz középre helyezéséhez más eszköz kell (17. és 20. lecke).

13Összefoglalás

  1. color = a szöveg színe · background-color = a doboz háttere. Mindig párban gondold végig.
  2. Színjelölések: név, hex (#rrggbb, a leggyakoribb), rgb, hsl (árnyalatokhoz a legkényelmesebb).
  3. Átlátszó szín: rgb(… / 0.5) — csak az adott szín. Az opacity tulajdonság az egész elemet halványítja.
  4. Kontraszt: normál szövegnél legalább 4,5 : 1. Ellenőrzés: F12 → színválasztó. Ne csak színnel jelezz.
  5. font-family: lista (fontstack), vesszővel, a végén általános család idézőjel nélkül; a szóközös neveket idézőjelbe.
  6. Webfont: Google Fonts <link> a head részbe, a saját stíluslap elé. Legfeljebb két betűtípus.
  7. px = fix · em = a szülőhöz, halmozódik · rem = a html elemhez, kiszámítható. Betűmérethez rem.
  8. Az alapértelmezett betűméret 16 px, tehát 1rem = 16 px.
  9. font-weight: 400 normál, 700 kövér — de csak ami a betűtípusban létezik.
  10. line-height: mértékegység nélkül; szövegnél 1,5–1,7, címnél 1,1–1,3.
  11. text-align a tartalmat igazítja, nem a dobozt. Hosszú szöveget balra igazíts.
  12. A jó alap: betűtípus, méret, sortáv és szín a body elemen — a többi öröklődik.