8.1 Свойство align-items
Свойства align-items и align-self позволяют выравнивать Flex-элементы по поперечной оси, обеспечивая гибкость и точность в макете.
Свойство align-items управляет выравниванием Flex-элементов по поперечной оси (перпендикулярно главной оси) внутри Flex-контейнера. Поперечная ось зависит от значения свойства flex-direction:
- Если
flex-directionимеет значениеrowилиrow-reverse, поперечная ось будет вертикальной - Если
flex-directionимеет значениеcolumnилиcolumn-reverse, поперечная ось будет горизонтальной
Значения:
stretch: элементы растягиваются, чтобы заполнить контейнер (значение по умолчанию)flex-start: элементы выравниваются по началу контейнераflex-end: элементы выравниваются по концу контейнераcenter: элементы выравниваются по центру контейнераbaseline: элементы выравниваются по базовой линии текста
Пример использования:
.container {
display: flex;
height: 200px;
border: 2px solid #000;
padding: 10px;
margin-bottom: 20px;
}
.item {
background-color: #3498db;
color: white;
padding: 10px;
margin: 5px;
}
.align-stretch {
align-items: stretch;
}
.align-flex-start {
align-items: flex-start;
}
<div class="container align-stretch">
<div class="item">Элемент 1</div>
<div class="item">Элемент 2</div>
<div class="item">Элемент 3</div>
</div>
<div class="container align-flex-start">
<div class="item">Элемент 1</div>
<div class="item">Элемент 2</div>
<div class="item">Элемент 3</div>
</div>
8.2 Свойство align-self
Свойство align-self позволяет переопределить значение align-items для конкретного Flex-элемента. Это свойство применяется непосредственно к Flex-элементу и управляет его выравниванием по поперечной оси внутри Flex-контейнера.
Значения:
auto: значение наследуется от родителя (по умолчанию)stretch: элемент растягивается, чтобы заполнить контейнерflex-start: элемент выравнивается по началу контейнераflex-end: элемент выравнивается по концу контейнераcenter: элемент выравнивается по центру контейнераbaseline: элемент выравнивается по базовой линии текста
Пример использования:
.container {
display: flex;
height: 200px;
border: 2px solid #000;
padding: 10px;
margin-bottom: 20px;
align-items: flex-start;
}
.item {
background-color: #3498db;
color: white;
padding: 10px;
margin: 5px;
}
.self-flex-end {
align-self: flex-end;
}
.self-center {
align-self: center;
}
.self-baseline {
align-self: baseline;
}
<div class="container">
<div class="item self-flex-end">Элемент 3</div>
<div class="item self-center">Элемент 4</div>
<div class="item self-baseline">Элемент 5</div>
</div>
Объяснение кода:
.self-flex-end: этот элемент выравнивается по нижнему краю контейнера.self-center: этот элемент выравнивается по центру по вертикали.self-baseline: этот элемент выравнивается по базовой линии текста
8.3 Центрирование элементов
Flexbox позволяет легко центрировать элементы по вертикали и горизонтали, используя сочетание justify-content и align-items или align-self.
Пример использования:
.center-container {
display: flex;
justify-content: center; /* горизонтальное центрирование */
align-items: center; /* вертикальное центрирование */
height: 300px;
border: 2px solid #000;
}
.center-item {
background-color: #3498db;
color: white;
padding: 20px;
}
<div class="center-container">
<div class="center-item">Центрированный элемент</div>
</div>
Объяснение кода:
-
.center-container: Flex-контейнер, в котором элементы центрированы по горизонтали с помощьюjustify-content: center;и по вертикали с помощьюalign-items: center; .center-item: Flex-элемент, который выравнивается по центру контейнера
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ