Tri predmeta u koloni
Napravi stranicu sa naslovom i tri kolone (Matematika, Informatika, Fizika) sa po jednim pasusom i dugmetom. Na telefonu su kolone jedna ispod druge, na tabletu dve u redu, na računaru sve tri.
Bootstrap je najpoznatija CSS biblioteka: gotove klase za raspored, razmake, boje, dugmad i komponente. Umesto da sam/a pišeš CSS za svaku sitnicu, dodaješ klase u HTML. U ovoj lekciji su povezivanje Bootstrap-a, mreža od 12 kolona i najkorisnije pomoćne klase.
| Prednosti | Mane |
|---|---|
| brzo se pravi uredan i responzivan sajt | sajtovi napravljeni samo Bootstrap-om liče jedni na druge |
| radi isto u svim pregledačima | učitava se dosta CSS-a koji možda ne koristiš |
| gotove komponente: meni, kartice, forme, prozori | ako ne znaš CSS, teško ga je prilagoditi |
Bootstrap je napravljen od CSS-a – klasa d-flex nije ništa drugo nego display: flex. Zato je kurs prvo objasnio čist CSS (flexbox i grid, media upite), a Bootstrap je sada alat koji ubrzava rad. Aktuelna verzija je Bootstrap 5; za razliku od verzije 4, ne zahteva biblioteku jQuery.
<!DOCTYPE html>
<html lang="sr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Moj sajt</title>
<!-- 1. Bootstrap CSS (sa CDN-a) -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css">
<!-- 2. moj CSS – POSLE Bootstrap-a, da bi mogao da ga promeni -->
<link rel="stylesheet" href="css/main.css">
</head>
<body>
<div class="container">
<h1>Zdravo, Bootstrap!</h1>
</div>
<!-- 3. Bootstrap JavaScript (potreban za meni na telefonu, padajuće liste, prozore) -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
CDN (Content Delivery Network) je mreža servera sa koje pregledač preuzima biblioteku – ništa ne moraš da preuzimaš ručno. Ako sajt treba da radi bez interneta, fajlove možeš preuzeti sa getbootstrap.com i povezati ih lokalno. Tamo je i kompletna dokumentacija sa primerima za svaku klasu.
Raspored u Bootstrap-u se pravi od tri nivoa: container (centriran okvir) → row (red) → col (kolone). Red ima 12 delova, a kolona kaže koliko ih zauzima:
<div class="container py-2">
<div class="row g-2 text-center">
<div class="col-12 col-md-6 col-lg-4"><div class="p-3 bg-primary text-white rounded">col-12 col-md-6 col-lg-4</div></div>
<div class="col-12 col-md-6 col-lg-4"><div class="p-3 bg-success text-white rounded">col-12 col-md-6 col-lg-4</div></div>
<div class="col-12 col-md-12 col-lg-4"><div class="p-3 bg-danger text-white rounded">col-12 col-md-12 col-lg-4</div></div>
</div>
<div class="row g-2 mt-1 text-center">
<div class="col-8"><div class="p-2 bg-light border rounded">col-8</div></div>
<div class="col-4"><div class="p-2 bg-light border rounded">col-4</div></div>
</div>
</div>
Rezultat:
| Oznaka | Važi od širine | Uređaj |
|---|---|---|
(bez oznake) col-6 | 0 | svi, i telefon |
sm → col-sm-6 | 576px | veći telefon |
md → col-md-6 | 768px | tablet |
lg → col-lg-4 | 992px | laptop |
xl, xxl | 1200px, 1400px | veliki ekran |
Čita se ovako: col-12 col-md-6 col-lg-4 = na telefonu cela širina (12/12), od tableta pola (6/12), od laptopa trećina (4/12). To je isti princip „prvo telefon“ iz lekcije o responzivnom dizajnu – samo bez pisanja media upita. Klasa g-2 na redu određuje razmak između kolona (gutter).
<div class="container py-3">
<p class="text-center fw-bold text-primary fs-4">text-center fw-bold text-primary fs-4</p>
<div class="p-3 mb-3 bg-warning-subtle border border-warning rounded-3 shadow-sm">
p-3 mb-3 bg-warning-subtle border rounded-3 shadow-sm
</div>
<div class="d-flex justify-content-between align-items-center p-2 bg-dark text-white rounded">
<span>d-flex justify-content-between</span>
<span class="badge bg-danger">NOVO</span>
</div>
<p class="mt-3 d-none d-md-block text-success">Ovaj red se vidi samo od 768px naviše (d-none d-md-block).</p>
<p class="mt-3 d-md-none text-danger">Ovaj red se vidi samo na uskom ekranu (d-md-none).</p>
</div>
Rezultat:
| Grupa | Primeri | Značenje |
|---|---|---|
| razmaci | m-3, mt-2, px-4, mb-0 | m = margin, p = padding; t/b/s/e/x/y = gore/dole/početak/kraj/vodoravno/uspravno; 0–5 = veličina |
| tekst | text-center, fw-bold, fs-3, text-uppercase | poravnanje, debljina, veličina, velika slova |
| boje | text-primary, bg-success, bg-light, text-white | primary (plava), secondary, success (zelena), danger (crvena), warning, info, light, dark |
| okviri | border, rounded, rounded-circle, shadow | okvir, zaobljenje, senka |
| flexbox | d-flex, justify-content-center, align-items-center, flex-column, gap-2 | isto što i CSS flexbox |
| prikaz | d-none, d-md-block | sakrij / prikaži od neke širine |
| slike | img-fluid | slika se smanjuje sa ekranom (max-width: 100%) |
<div class="p-3 d-flex flex-wrap gap-2">
<button class="btn btn-primary">Primary</button>
<button class="btn btn-success">Success</button>
<button class="btn btn-danger">Danger</button>
<button class="btn btn-outline-primary">Outline</button>
<a class="btn btn-dark btn-lg" href="#">Link kao dugme</a>
<button class="btn btn-secondary btn-sm" disabled>Isključeno</button>
</div>
Rezultat:
Klasa btn daje osnovni oblik, a druga klasa boju. Ista klasa radi i na <a> – link izgleda kao dugme.
Za svaki zadatak postoji primer, uputstvo i rešenje. Rešenja su provereno ispravna u pregledaču.
Napravi stranicu sa naslovom i tri kolone (Matematika, Informatika, Fizika) sa po jednim pasusom i dugmetom. Na telefonu su kolone jedna ispod druge, na tabletu dve u redu, na računaru sve tri.
col-*) moraju biti direktno unutar row, a red unutar container.ms-2 umesto ml-2.1. Na koliko delova je podeljen red u Bootstrap mreži?
2. Šta znači col-12 col-md-6?
3. Koja klasa dodaje unutrašnji razmak sa svih strana?
4. Zašto se sopstveni CSS povezuje posle Bootstrap-a?