Layout: inline-block
Layout: inline-block
Layout: inline-block
Layout: inline-block
Uvod
Objasni da ponekad želimo da elementi stoje jedan pored drugog (horizontalno), ali da ipak žele da imamo kontrolu nad njihovom širinom, visinom, marginama/padding-om. Tu dolazi na scenu vrednost display: inline-block u CSS-u.
Šta je inline-block — razlika između block, inline i inline-block
Elementi sa display: block zauzimaju celu širinu roditelja i svaki počinje u novom redu.
“Inline” elementi zauzimaju samo prostor koji im je potreban i ne kreiraju prekid linije, ali im ne možemo pouzdano definisati širinu/visinu ili vertikalne margine/paddinge.
inline-block je “sredina”: element se ponaša kao inline kod toga da stoji “u redu” sa drugim elementima, ali ima karakteristike block-elementa — možemo mu zadati širinu, visinu, marginu, padding, border…
Kada i zašto koristiti inline-block
Kada želiš da više “kutija” stoji horizontalno jedna pored druge — na primer navigacija, galerija slika, set kartica/ponuda, dugmića…
Kada želiš da element ima definisanu širinu/visinu, margine/padding, ali i da se ponaša “u liniji” sa ostalim sadržajem.
Primer upotrebe inline-block — HTML + CSS kod
<!DOCTYPE html>
<html lang="sr">
<head>
<meta charset="UTF-8">
<title>Primer inline-block layouta</title>
<style>
.box {
display: inline-block;
width: 150px;
height: 100px;
margin: 10px;
padding: 10px;
background-color: #f0f0f0;
border: 1px solid #333;
text-align: center;
}
</style>
</head>
<body>
<div class="box">Blok 1</div>
<div class="box">Blok 2</div>
<div class="box">Blok 3</div>
</body>
</html>
U ovom primeru — 3 „kutije” stoje “u redu”, zauzimaju definisanu širinu i visinu, imaju razmake i border.
Analiza primera
.box { display: inline-block; } — ovo omogućava da elementi budu inline (u istom redu), ali ipak prihvataju širinu, visinu, marginu/padding itd.
margin i padding funkcionišu normalno — što ne bi bio slučaj ako je element “display: inline”.
Ako nema dovoljno horizontalnog prostora — elementi će se prelomiti u sledeći red (flow će ih prelomiti), što omogućava fleksibilnost.
Kada paziti ili ograničenja
Iako inline-block omogućava horizontalni raspored, razmaci (spaces, newline) između HTML elemenata utiču — često se desi da “kutije” izgledaju sa razmakom između, što ponekad nije poželjno. (To možeš spomenuti i dati savete — npr. uklanjanje razmaka između tagova, komentarisanje razmaka, ili korišćenje CSS margin negativnog vrednosti — u zavisnosti od nivoa kursa.)
Za složenije rasporede (npr. responsive mreže, kompleksne strukture) danas dosta toga radi i sa fleks i grid sistemima — ali inline-block i dalje ima svoju primenu, posebno za jednostavne rasporede ili retro kompatibilnost.
Zaključak
inline-block je zgodan i veoma koristan alat u CSS-u: kombinuje fleksibilnost “inline” ponašanja sa moćima “block” elemenata. Kada želiš da elementi stoje horizontalno, a da imaju kontrolisanu veličinu i razmake — inline-block je odličan izbor.
(Opcionalno) Kratak zadatak/vežba za učenike
Neka naprave tro-kolonski raspored u kom su tri “kartice” (div-ovi) poredane horizontalno, svaki sa slikom i naslovom, koristeći display: inline-block. Neka postave marginu, padding, i border, i vide kako se ponaša kad smanje širinu prozora (da se elementi prelome u novi red).