Lekcja: Organizacja layoutu za pomocą float, flexbox i grid
Cel lekcji
Nauczysz się organizować układ strony internetowej przy użyciu trzech popularnych metod:
- Float
- Flexbox
- CSS Grid
Zrozumiesz ich różnice, zastosowania oraz nauczysz się tworzyć elastyczne i przejrzyste układy.
Część teoretyczna
Float
Float to starsza metoda układania elementów na stronie, polegająca na „unoszeniu” elementów w prawo lub lewo w obrębie ich kontenera.
Przykład użycia:
.container {
width: 100%;
}
.box {
float: left; /* lub right */
width: 50%;
height: 100px;
background-color: lightblue;
}
Problemy z float:
- Elementy po float mogą „wypływać” z rodzica, co wymaga użycia technik „czyszczenia” (clear: both).
Atrybuty do zapamiętania:
float
(wartości:left
,right
,none
)clear
(wartości:left
,right
,both
,none
)
Flexbox
Flexbox to nowoczesna metoda układu elementów, skupiająca się na jednym wymiarze – poziomym lub pionowym. Pozwala na łatwe rozmieszczanie, wyrównywanie i rozciąganie elementów w kontenerze.
Najważniejsze właściwości:
-
Na kontenerze:
display: flex;
flex-direction
(wartości:row
,row-reverse
,column
,column-reverse
)justify-content
(wartości:flex-start
,center
,space-between
,space-around
,space-evenly
)align-items
(wartości:stretch
,center
,flex-start
,flex-end
,baseline
)flex-wrap
(wartości:nowrap
,wrap
,wrap-reverse
)
-
Na elementach wewnętrznych:
flex
(wartości: liczby określające proporcje np.1
,2
)align-self
(wartości: jakalign-items
)
Przykład użycia:
.container {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.box {
flex: 1; /* Każde dziecko zajmie równą część dostępnej przestrzeni */
height: 100px;
background-color: lightcoral;
}
CSS Grid
Grid umożliwia budowanie layoutów w dwóch wymiarach – wierszy i kolumn – z precyzyjnym określeniem ich układu.
Najważniejsze właściwości:
-
Na kontenerze:
display: grid;
grid-template-columns
(np.1fr 2fr
,repeat(3, 1fr)
)grid-template-rows
(np.100px auto 50px
)gap
(np.10px
,row-gap
,column-gap
)
-
Na elementach wewnętrznych:
grid-column
(np.1 / 3
)grid-row
(np.1 / 2
)
Przykład użycia:
.container {
display: grid;
grid-template-columns: 1fr 2fr 1fr; /* Trzy kolumny */
grid-template-rows: auto 100px;
gap: 10px;
}
.box {
background-color: lightgreen;
}
Ćwiczenia praktyczne
Ćwiczenia z Float
Ćwiczenie 1: Wstęp do float
Stwórz dwa prostokątne elementy obok siebie w jednym wierszu.
- Lewy element (niebieski) ma zajmować 30% szerokości kontenera.
- Prawy element (czerwony) ma zajmować 70%.
Ćwiczenie 2: Layout strony z Float
Stwórz stronę o układzie:
- Nagłówek (u góry, szerokość 100%)
- Część główna (podzielona na dwie kolumny):
- Lewa kolumna (40% szerokości) zawiera dwa divy o różnych wysokościach.
- Prawa kolumna (60% szerokości) jest jednym divem.
- Użyj
clear
na odpowiednich elementach.
Ćwiczenia z Flexbox
Ćwiczenie 3: Wyrównanie elementów
Stwórz poziomy układ trzech elementów (zielony, żółty, fioletowy):
- Każdy z elementów powinien mieć 20% szerokości kontenera.
- Wyśrodkuj elementy zarówno poziomo, jak i pionowo.
- Między elementami dodaj równą ilość miejsca.
Ćwiczenie 4: Layout strony z Flexbox
Zbuduj layout:
- Nagłówek (zawiera tytuł i menu nawigacyjne z trzema linkami wyśrodkowanymi w poziomie).
- Część główna (układ pionowy, w którym dwa divy zajmują po 50% wysokości).
- Ustaw przestrzeń między elementami przy pomocy
justify-content
.
Ćwiczenia z CSS Grid
Ćwiczenie 5: Prosty grid
Stwórz układ czterech kwadratowych elementów (100x100px) w dwóch rzędach i dwóch kolumnach.
- Dodaj przestrzeń 10px między nimi.
Ćwiczenie 6: Layout strony z Grid
Zaprojektuj layout strony z trzema sekcjami:
- Nagłówek zajmuje całą szerokość.
- Część główna dzieli się na dwie kolumny (70% i 30% szerokości).
- Stopka zajmuje całą szerokość.
- Użyj
grid-template-areas
do opisania układu.
Dodatkowe ćwiczenia
Ćwiczenie 7: Kombinacja Float i Flexbox
Stwórz układ, w którym:
- Nagłówek wykorzystuje Flexbox do rozmieszczenia logo, nawigacji i przycisku wyszukiwania.
- Główna część zawiera dwa elementy umieszczone obok siebie przy pomocy float.
Ćwiczenie 8: Zaawansowany Grid Layout
Stwórz stronę z układem Grid, w którym:
- Nagłówek zajmuje jedną kolumnę na szerokość całej strony.
- Część główna ma dwie kolumny (60% i 40% szerokości) oraz trzy rzędy.
- Stopka zajmuje jedną kolumnę w dolnym rzędzie.
- Wyrównaj elementy wewnątrz siatki.
Linki do dokumentacji W3C:
Używaj linków, by sprawdzać szczegóły dotyczące każdej właściwości i jej zastosowania.