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-direction
ma wartośćrow
lubrow-reverse
, oś główna będzie pozioma - Jeśli
flex-direction
ma wartośćcolumn
lubcolumn-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