🎯 Cel ćwiczenia
Bootstrap to najpopularniejszy framework CSS, który przyspiesza tworzenie responsywnych i profesjonalnie wyglądających stron internetowych. Zawiera gotowe komponenty, system siatki (grid) oraz narzędzia użytkowe.
Czego się nauczysz:
- Instalacji i konfiguracji Bootstrap
- Używania systemu siatki (Grid System)
- Tworzenia responsywnych layoutów
- Wykorzystywania gotowych komponentów
- Stosowania klas użytkowych (utility classes)
🚀 Część 1: Instalacja Bootstrap
Metoda 1: CDN (najprostsza)
Dodaj następujące linki w sekcji <head> swojego dokumentu HTML:
viewport jest konieczny dla responsywności. Bez niego strona nie będzie się poprawnie skalować na urządzeniach mobilnych.
📐 Część 2: System Siatki (Grid System)
Bootstrap używa systemu 12 kolumn, który automatycznie dostosowuje się do rozmiaru ekranu.
Breakpointy (punkty przełamania)
| Breakpoint | Klasa | Szerokość ekranu | Przykład urządzenia |
|---|---|---|---|
| Extra small | .col- |
< 576px | Telefony pionowo |
| Small | .col-sm- |
≥ 576px | Telefony poziomo |
| Medium | .col-md- |
≥ 768px | Tablety |
| Large | .col-lg- |
≥ 992px | Laptopy |
| Extra large | .col-xl- |
≥ 1200px | Desktopy |
Przykład 1: Podstawowy układ 3 kolumn
Przykład 2: Responsywny układ
🎯 Część 3: Komponenty Bootstrap
Przyciski
Przykład 3: Różne style przycisków
Nawigacja (Navbar)
Przykład 4: Responsywne menu nawigacyjne
Karty (Cards)
Przykład 5: Karta z obrazem
🛠️ Część 4: Klasy Użytkowe (Utilities)
Marginesy i paddingi
Kolory tekstu i tła
Display i Visibility
✏️ ZADANIA PRAKTYCZNE
Zadanie 1: Portfolio - Landing Page
ŁATWYCel: Stwórz prostą stronę portfolio z sekcją hero, o mnie i portfolio.
Wymagania:
- Navbar z linkami do sekcji
- Sekcja Hero z dużym tytułem i przyciskiem
- Sekcja "O mnie" z tekstem i zdjęciem obok (układ 2 kolumn na desktop)
- Sekcja Portfolio z 3 kartami w rzędzie
- Stopka z danymi kontaktowymi
- Strona musi być responsywna (karty układają się w kolumnę na telefonie)
Wskazówka: Użyj container, row i col-* dla layoutu.
Zadanie 2: Formularz Kontaktowy
ŚREDNICel: Stwórz stylowy formularz kontaktowy z walidacją Bootstrap.
Wymagania:
- Formularz w karcie (card)
- Pola: Imię, Email, Temat, Wiadomość
- Użyj klas
form-controldla inputów - Dodaj
form-labeldla etykiet - Przycisk submit w stylu primary
- Formularz wyśrodkowany na stronie
- Responsywność: pełna szerokość na telefonie, max 600px na desktop
Wskazówka: Użyj mx-auto do wyśrodkowania.
Zadanie 3: Galeria Zdjęć
ŚREDNICel: Stwórz responsywną galerię zdjęć z modalnymi okienkami.
Wymagania:
- Grid 4 kolumn na desktop, 2 na tablecie, 1 na telefonie
- Każde zdjęcie w karcie z krótkim opisem
- Po kliknięciu zdjęcie otwiera się w Bootstrap Modal
- Modal z przyciskiem zamykania
- Efekt hover na kartach (np. shadow)
- Nagłówek sekcji ze stylowanym tytułem
Wskazówka: Dokumentacja modali: data-bs-toggle="modal"
Zadanie 4: Dashboard Administracyjny
TRUDNYCel: Stwórz dashboard z sidebar, kartami statystyk i tabelą.
Wymagania:
- Górny navbar z logo i przyciskiem menu
- Boczny sidebar z nawigacją (collapsible na mobile)
- 4 karty statystyk z ikonami i liczbami (2x2 grid)
- Tabela z danymi użytkowników (użyj
tableklas Bootstrap) - Tabela responsywna (przewijalna na małych ekranach)
- Przyciski akcji w tabeli (edytuj/usuń)
- Użyj odpowiednich kolorów dla różnych typów danych
Wskazówka: Użyj Flexbox dla układu sidebar + content.
Zadanie 5: Blog Layout
TRUDNYCel: Stwórz layout strony blogowej z artykułami i sidebatem.
Wymagania:
- Navbar z logo i menu
- Layout 2 kolumn: content (8 kol) + sidebar (4 kol)
- W content: 3 karty artykułów z obrazkiem, tytułem, opisem i datą
- W sidebar: sekcja "Popularne posty" i "Kategorie"
- Pagination pod artykułami
- Na telefonie sidebar pod artykułami
- Breadcrumb nawigacja nad artykułami
Wskazówka: Użyj col-lg-8 i col-lg-4 dla układu.
💡 WSKAZÓWKI I NAJLEPSZE PRAKTYKI
1. Mobile First
Bootstrap jest zaprojektowany z myślą o podejściu "mobile first". Zacznij od projektowania dla małych ekranów, a następnie dodawaj style dla większych.
2. Nie nadużywaj !important
Bootstrap używa specyficzności CSS. Zamiast nadpisywać style z !important, używaj własnych klas lub zwiększ specyficzność selektora.
3. Używaj zmiennych CSS Bootstrap
Możesz dostosować kolory i inne wartości Bootstrap używając zmiennych CSS:
4. Container vs Container-Fluid
.container- stała szerokość, wyśrodkowany, z marginami.container-fluid- pełna szerokość ekranu (100%).container-{breakpoint}- pełna szerokość do określonego breakpointu
Częste błędy do uniknięcia:
- ❌ Zagnieżdżanie
.containerw.container - ❌ Używanie
.rowbez.container - ❌ Umieszczanie treści bezpośrednio w
.row(zawsze używaj.col-*) - ❌ Mieszanie różnych wersji Bootstrap w jednym projekcie
- ❌ Modyfikowanie plików Bootstrap bezpośrednio
🔧 Część 5: Przykład Kompletnej Strony
Pełny przykład - Strona produktu
📚 Cheat Sheet - Najważniejsze Klasy
Layout
.container- kontener o stałej szerokości.container-fluid- kontener na 100% szerokości.row- wiersz dla kolumn.col-*- kolumna (1-12).col-{breakpoint}-*- responsywna kolumna
Spacing
.m-{0-5}- margin.p-{0-5}- padding.mt-*, .mb-*, .ms-*, .me-*- marginesy kierunkowe.mx-auto- wyśrodkowanie poziome
Tekst
.text-start, .text-center, .text-end- wyrównanie.text-primary, .text-success, .text-danger- kolory.fw-bold, .fw-normal, .fw-light- grubość.fs-1do.fs-6- rozmiar czcionki
Display
.d-none, .d-block, .d-flex- typy wyświetlania.d-{breakpoint}-{value}- responsywne ukrywanie.d-flex+.justify-content-*- flexbox
📚 DODATKOWE ZASOBY
🎓 Test Wiedzy
Pytania kontrolne - sprawdź swoją wiedzę!
- Ile kolumn ma system siatki Bootstrap? (Odp: 12)
- Jaki jest największy breakpoint w Bootstrap 5? (Odp: xxl - 1400px)
- Która klasa służy do wyśrodkowania elementu poziomo? (Odp: mx-auto)
- Jak nazywa się podejście, które Bootstrap stosuje domyślnie? (Odp: Mobile First)
- Jaka klasa sprawia, że kontener zajmuje 100% szerokości? (Odp: container-fluid)
- Która klasa ukrywa element na małych ekranach? (Odp: d-none d-md-block)
- Jak dodać margines górny o wartości 3? (Odp: mt-3)
- Która klasa tworzy przycisk w stylu primary? (Odp: btn btn-primary)
⚡ Zadania Dodatkowe (Dla Chętnych)
Wyzwanie 1: Strona E-commerce
Stwórz pełną stronę sklepu internetowego z:
- Navbar z koszykiem (badge z liczbą produktów)
- Filtry boczne (kategorie, cena)
- Siatka produktów z paginacją
- Modal ze szczegółami produktu
- Formularz newsletter w stopce
Wyzwanie 2: Landing Page SaaS
Zaprojektuj nowoczesny landing page dla aplikacji SaaS:
- Navbar transparentny na hero, stały przy scrollu
- Hero z animowanym tekstem i CTA buttons
- Sekcja Features z ikonami (grid 3 kolumn)
- Sekcja Pricing z 3 planami (cards)
- Sekcja Testimonials (carousel)
- FAQ (accordion)
- Stopka z social media icons
🎉 PODSUMOWANIE
Gratulacje! Po ukończeniu tego ćwiczenia powinieneś umieć:
- ✅ Instalować i konfigurować Bootstrap
- ✅ Używać systemu siatki do tworzenia responsywnych layoutów
- ✅ Stosować gotowe komponenty Bootstrap
- ✅ Wykorzystywać klasy użytkowe do szybkiego stylowania
- ✅ Tworzyć profesjonalnie wyglądające strony internetowe
- ✅ Budować responsywne interfejsy Mobile First
Następny krok: Eksperymentuj z różnymi komponentami, łącz Bootstrap z własnymi stylami CSS i twórz unikalne projekty!
Powodzenia w nauce Bootstrap! 🚀
💼 Porady zawodowe
- Bootstrap jest wykorzystywany przez miliony stron na całym świecie
- Znajomość Bootstrap znacznie przyspiesza proces tworzenia stron
- Wiele firm szuka programistów znających Bootstrap
- Bootstrap to świetna baza do nauki responsywnego designu
- Po opanowaniu Bootstrap, będzie Ci łatwiej nauczyć się innych frameworków (Tailwind, Foundation)