9.1 Właściwość grid-template-areas
CSS Grid Layout daje niezłe możliwości do tworzenia skomplikowanych layoutów dzięki nazwanym obszarom
(grid areas
). Właściwość grid-template-areas
pozwala ustawić obszary siatki, które można wykorzystać do
prostszego rozmieszczania elementów. To narzędzie pozwala deweloperom wizualnie organizować layout i ułatwia jego utrzymanie.
Podstawowe koncepcje grid-template-areas
-
Definiowanie obszarów:
- Właściwość
grid-template-areas
pozwala przypisać nazwy do różnych obszarów siatki - Każda nazwa obszaru to prostokątna grupa komórek
- Właściwość
-
Użycie nazwanych obszarów:
-
Zdefiniowane obszary można używać do rozmieszczania elementów, ustawiając właściwość
grid-area
dla każdego z nich
-
Zdefiniowane obszary można używać do rozmieszczania elementów, ustawiając właściwość
Składnia grid-template-areas:
.container {
display: grid;
grid-template-areas:
"header header header"
"sidebar main main"
"footer footer footer"
}
Składnia dla elementów Grid:
.header {
grid-area: header;
}
.sidebar {
grid-area: sidebar;
}
.main {
grid-area: main;
}
.footer {
grid-area: footer;
}
Wyjaśnienie:
- Każdy wiersz w wartości
grid-template-areas
reprezentuje wiersz w siatce - Każde słowo w wierszu to komórka lub grupa komórek
- Kropki (.) można używać dla pustych komórek
9.2 Przykład użycia grid-template-areas
Przykład pełnej implementacji:
CSS
.grid-container {
display: grid;
grid-template-areas:
"header header header"
"sidebar main main"
"footer footer footer";
grid-gap: 10px;
}
.header {
grid-area: header;
background-color: #2ecc71;
padding: 20px;
text-align: center;
}
.sidebar {
grid-area: sidebar;
background-color: #3498db;
padding: 20px;
text-align: center;
}
.main {
grid-area: main;
background-color: #9b59b6;
padding: 20px;
text-align: center;
}
.footer {
grid-area: footer;
background-color: #e74c3c;
padding: 20px;
text-align: center;
}
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Przykład Grid Areas</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="grid-container">
<div class="header">Header</div>
<div class="sidebar">Sidebar</div>
<div class="main">Main Content</div>
<div class="footer">Footer</div>
</div>
</body>
</html>
Wyjaśnienie kodu:
-
.grid-container
: definiuje kontener Grid za pomocądisplay: grid
i ustala layout siatki przy użyciugrid-template-areas
. W tym przypadku layout składa się z trzech wierszy: pierwszy to nagłówek, drugi składa się z paska bocznego i głównej treści, trzeci to stopka -
.header
,.sidebar
,.main
,.footer
: definiują style dla różnych obszarów siatki i łączą te obszary z nazwami wgrid-template-areas
za pomocą właściwościgrid-area
9.3 Zarządzanie pustymi obszarami
Właściwość grid-template-areas
pozwala zostawiać obszary puste, używając kropki
(.) do oznaczenia pustego miejsca.
Przykład pełnej implementacji:
CSS
.grid-container {
display: grid;
grid-template-areas:
"header header header"
". main ."
"footer footer footer";
grid-gap: 10px;
}
.header {
grid-area: header;
background-color: #2ecc71;
padding: 20px;
text-align: center;
}
.main {
grid-area: main;
background-color: #9b59b6;
padding: 20px;
text-align: center;
}
.footer {
grid-area: footer;
background-color: #e74c3c;
padding: 20px;
text-align: center;
}
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Puste obszary Grid Areas</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="grid-container">
<div class="header">Header</div>
<div class="main">Main Content</div>
<div class="footer">Footer</div>
</div>
</body>
</html>
Wyjaśnienie kodu:
-
.grid-container
: tworzy kontener Grid z trzema obszarami: nagłówek, główna treść i stopka. Środkowy wiersz zawiera puste obszary po lewej i prawej stronie głównej treści -
.header
,.main
,.footer
: definiują style dla obszarów i łączą je z nazwami obszarów wgrid-template-areas
GO TO FULL VERSION