04. TÉMA · CSS

Display.

block, inline, inline-block, none – hogyan helyezkedik el az elem

1. FEJEZET

display: block

A blokkelem (pl. <div>, <p>, <h1>, <section>) új sorban kezdődik, és alapértelmezésben kitölti a szülő teljes szélességét. Ha kisebb szélességet adunk neki, a maradék hely nem marad „üresen” – a böngésző a jobb oldali margóhoz számolja. A rétegmutatón ez látszik:

PRÓBÁLD KI

Három blokkelem

szülő
1. blokk
2. blokk
3. blokk
stilus.css

2. FEJEZET

inline, inline-block, block egymás mellett

A soron belüli (inline) elem (pl. <span>, <a>, <strong>) a szöveg folyamában marad, és pontosan akkora, mint a tartalma. Az alábbi bekezdés közepén egyetlen <span class="cimke"> áll. Váltsd át a megjelenítési módját, és állíts rajta belső margót, margót és szélességet:

PRÓBÁLD KI

Ugyanaz a span, háromféle display

display

A böngésző a szöveget sorokba tördeli, és a soron belüli elemek ugyanúgy haladnak benne, mint a betűk. Ez a span a mondat közepén áll, utána folytatódik a szöveg, egészen a bekezdés végéig, több soron keresztül.

stilus.css
blockinlineinline-block
Új sorban kezdődikigennemnem
Alapértelmezett szélességa szülő teljes szélességea tartaloméa tartalomé
width, heighthatnem hathat
Vízszintes margó és belső margóhathat (eltolja a szomszéd szöveget)hat
Függőleges belső margóhatkirajzolódik, de nem tol el semmit: ráfed a szomszéd sorokrahat (a sor magasabb lesz)
Függőleges margóhatnem hathat

Gyakori tévedés, hogy az inline elemnek „nincs függőleges belső margója”. Van: a háttér és a szegély kitágul (a fenti példában a zöld sáv), csak a sormagasság nem nő meg, ezért a doboz ráfed a fölötte és alatta lévő sorokra. Ha azt akarod, hogy a függőleges méretek helyet is foglaljanak, használj inline-block-ot.

3. FEJEZET

Elrejtés: display: none, visibility: hidden, opacity: 0

Egy elemet többféleképpen tehetünk láthatatlanná, és ezek nem ugyanazt jelentik:

PRÓBÁLD KI

A 2. elem elrejtése

2. elem
1. elem
3. elem

stilus.css
Foglal helyet?Kattintható?Elérhető billentyűzettel / képernyőolvasóval?
display: nonenemnemnem
visibility: hiddenigennemnem
opacity: 0igenigen (láthatatlanul!)igen

4. FEJEZET

Kitekintés: flex és grid

A display nemcsak azt dönti el, hogyan viselkedik az elem kívülről, hanem azt is, hogyan rendezi el a gyerekeit. A display: flex egy tengely mentén sorba vagy oszlopba rendezi őket (8. téma), a display: grid sorokból és oszlopokból álló rácsba (9. téma). Kívülről mindkettő blokkelemként viselkedik; az inline-flex és az inline-grid ugyanez soron belüli változatban.

ÖSSZEFOGLALÁS

Amit érdemes megjegyezni

  • block: új sor, teljes szélesség; ha kisebb a szélessége, a maradék a jobb margóba kerül.
  • inline: a szövegben halad; width, height és függőleges margó nem hat, a függőleges belső margó ráfed a szomszéd sorokra.
  • inline-block: a szövegben halad, de minden méret hat rá.
  • display: none eltünteti és a helyét is; visibility: hidden csak láthatatlanná teszi; az opacity: 0 elem továbbra is kattintható.