7.1 Właściwość justify-content
Flexbox dostarcza niesamowite narzędzia do zarządzania wyrównaniem oraz rozmieszczeniem przestrzeni między elementami wewnątrz Flex-kontenera. Jedną z kluczowych właściwości dla tego jest justify-content, która kontroluje wyrównanie Flex-elementów wzdłuż osi głównej.
Właściwość justify-content określa, jak Flex-elementy będą rozmieszczone wzdłuż osi głównej Flex-kontenera. Oś główna zależy od wartości właściwości flex-direction:
- Jeśli
flex-directionma wartośćrowlubrow-reverse, oś główna będzie pozioma - Jeśli
flex-directionma wartośćcolumnlubcolumn-reverse, oś główna będzie pionowa
Wartości:
flex-start: elementy są wyrównane do początku kontenera (wartość domyślna)flex-end: elementy są wyrównane do końca konteneracenter: elementy są wyrównane do środka konteneraspace-between: elementy są równomiernie rozmieszczone z równymi odstępami między nimispace-around: elementy są równomiernie rozmieszczone z odstępami na krawędziach i między nimispace-evenly: elementy są równomiernie rozmieszczone z jednakowymi odstępami między nimi i na krawędziach kontenera
Przykład użycia:
.container {
display: flex;
border: 2px solid #000;
padding: 10px;
margin-bottom: 20px;
}
.item {
background-color: #3498db;
color: white;
padding: 10px;
margin: 5px;
}
.flex-start {
justify-content: flex-start;
}
<div class="container flex-start">
<div class="item">Element 1</div>
<div class="item">Element 2</div>
<div class="item">Element 3</div>
</div>
7.2 Wartości justify-content
1. flex-start
Przy wartości flex-start elementy są wyrównane do początku Flex-kontenera, czyli z lewej strony, jeśli kierunek osi głównej jest poziomy (row), lub z góry, jeśli kierunek osi głównej jest pionowy (column).
Przykład użycia:
.container {
display: flex;
justify-content: flex-start;
}
<div class="container">
<div class="item">Element 1</div>
<div class="item">Element 2</div>
<div class="item">Element 3</div>
</div>
2. flex-end
Przy wartości flex-end elementy są wyrównane do końca Flex-kontenera, czyli z prawej strony, jeśli kierunek osi głównej jest poziomy (row), lub z dołu, jeśli kierunek osi głównej jest pionowy (column).
Przykład użycia:
.container {
display: flex;
justify-content: flex-end;
}
<div class="container">
<div class="item">Element 1</div>
<div class="item">Element 2</div>
<div class="item">Element 3</div>
</div>
3. center
Przy wartości center elementy są wyrównane do środka Flex-kontenera. Ta wartość jest przydatna do tworzenia wyśrodkowanych układów.
Przykład użycia:
.container {
display: flex;
justify-content: center;
}
<div class="container">
<div class="item">Element 1</div>
<div class="item">Element 2</div>
<div class="item">Element 3</div>
</div>
4. space-between
Przy wartości space-between elementy są równomiernie rozmieszczone wzdłuż osi głównej z równymi odstępami między nimi. Pierwszy element jest wyrównany do początku kontenera, a ostatni element — do końca kontenera.
Przykład użycia:
.container {
display: flex;
justify-content: space-between;
}
<div class="container">
<div class="item">Element 1</div>
<div class="item">Element 2</div>
<div class="item">Element 3</div>
</div>
5. space-around
Przy wartości space-around elementy są równomiernie rozmieszczone z odstępami na krawędziach i między nimi. Odstępy między elementami będą dwa razy większe niż odstępy na krawędziach kontenera.
Przykład użycia:
.container {
display: flex;
justify-content: space-around;
}
<div class="container">
<div class="item">Element 1</div>
<div class="item">Element 2</div>
<div class="item">Element 3</div>
</div>
6. space-evenly
Przy wartości space-evenly elementy są równomiernie rozmieszczone z jednakowymi odstępami między nimi i na krawędziach kontenera. Ta wartość zapewnia równe odstępy w całym kontenerze.
Przykład użycia:
.container {
display: flex;
justify-content: space-evenly;
}
<div class="container">
<div class="item">Element 1</div>
<div class="item">Element 2</div>
<div class="item">Element 3</div>
</div>
7.3 Wyśrodkowanie menu
Przykład użycia w rzeczywistych projektach — wyśrodkowanie menu nawigacyjnego:
.nav {
display: flex;
justify-content: center;
background-color: #333;
padding: 10px;
}
.nav-item {
color: white;
padding: 10px 20px;
text-decoration: none;
}
.nav-item:hover {
background-color: #575757;
}
<nav class="nav">
<a href="#" class="nav-item">Główna</a>
<a href="#" class="nav-item">O nas</a>
<a href="#" class="nav-item">Usługi</a>
<a href="#" class="nav-item">Kontakt</a>
</nav>
Wyjaśnienie kodu:
.nav: Flex-kontener dla menu nawigacyjnego z wyrównaniem elementów do środka.nav-item: Flex-elementy (linki) z podstawowymi stylami
GO TO FULL VERSION