flexbox — Вертикальное выравнивание содержимого flex элементов
Задать вопрос
Вопрос задан
Изменён 3 года 3 месяца назад
Просмотрен 492 раза
Выравниваю блоки с помощью flex контейнера. Получается такая ситуация:
Когда в одном из них текст перемещается на следующую строку — все остальные блоки тоже становятся выше, при этом текст остаётся сверху, нужно, чтобы был по центру. Подскажите, как выровнять текст в этих блоках по вертикальному центру?
Код:
<div> <div>NATIVE GROUP HDHFJFJFJFJF DJRKTKTK</div> <div>КУРСЫ</div> <div>Sign Up</div> </div>
- flexbox
- выравнивание
. inner { display: flex; align-items: center; width: 100%; height: 100%; text-align: center; } .inner div { width: 100%; } .wrap { width: 20%; text-align: center; border: 1px solid red; }
<div> <div> <div> <div>NATIVE GROUP HDHFJFJF DJRKTKTK GROUP HDHFJFJF DJRKTKTE GROUP HDHFJFJF </div> </div> </div> <div> <div> <div>КУРСЫ</div> </div> </div> <div> <div> <div>Sign Up</div> </div> </div> </div>
Зарегистрируйтесь или войдите
Регистрация через GoogleРегистрация через Facebook
Регистрация через почту
Отправить без регистрации
Почта
Необходима, но никому не показывается
Отправить без регистрации
Почта
Необходима, но никому не показывается
Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки
CSS/Свойство vertical-align
Синтаксис
CSS 2‒2. 2
CSS 3
vertical-align: baseline | sub | super | top | text-top | middle | bottom | text-bottom | <процент> | <длина> | inherit
Описание
Свойство vertical-align
устанавливает вертикальное выравнивание содержимого элемента или самого элемента.
Применяется: | к встроенным и «table-cell » элементам; |
---|---|
Наследование: | отсутствует; |
Проценты: | относительно «line-height » самого элемента; |
Медиа: | визуальные. |
Вычисляемое значение: | для <процента> и <длины> ‒ абсолютная длина, в противном случае как указано |
JavaScript
[объект]
Поддержка браузерами
Chrome
Поддерж.
Firefox
Поддерж.
Opera
Поддерж.
Maxthon
Поддерж.
IExplorer
Поддерж.
Safari
Поддерж.
iOS
Поддерж.
Android
Поддерж.
Спецификация
CSS | Раздел | |
---|---|---|
1 | 5.4.4 ‘vertical-align’ | Перевод |
2 | 10.8.1 Leading and half-leading ‘vertical-align’… | |
10.8.1 Leading and half-leading ‘vertical-align’… | ||
2.2 | 10.8.1 Leading and half-leading vertical-align… | |
3 | 2.2. Transverse Box Alignment: the vertical-align property |
Значения
- baseline
- Устанавливает выравнивание базовой линии текущего элемента по базовой линии элемента родителя.
- sub
- Устанавливает положение текста в качестве нижнего индекса (текст опускается немного вниз; размер шрифта остается прежним).
- super
- Устанавливает положение текста в качестве верхнего индекса (текст поднимается немного вверх; размер шрифта остается прежним).
- top
- Устанавливает выравнивание верхней границы элемента по верхней границе самого высокого элемента. В таблице устанавливает выравнивание содержимого ячейки по её верхней границе.
- text-top
- Выравнивает верхнюю границу элемента по самому высокому элементу текста родительского элемента.
- middle
- Выравнивает середину элемента по средней линии родительского элемента. В таблице содержимое ячейки выравнивается (вертикально) по центру.
- bottom
- Выравнивает нижную границу элемента по нижней границе родительского элемента. В таблице содержимое ячейки выравнивается (вертикально) по нижней границе ячейки.
- text-bottom
- Выравнивает нижнюю границу элемента по самому нижнему элементу текста (букве) родительского элемента.
- <процент>
- Устанавливает в процентном соотношении положение элемента относительно базовой линии. (Значение равное «
0
» соответствует значению «baseline
».) - <длина>
- Устанавливает в условных единицах высоту положения элемента относительно базовой линии. (Значение равное «
0
» соответствует значению «baseline
».) - inherit
- Указывает, что элемент должен унаследовать параметры родительского элемента.
Начальное значение: «baseline
».
Пример использования
Листинг кода
<!DOCTYPE html>
<html>
<head>
<meta charset=»utf-8″>
<title>Свойство vertical-align</title>
<style type=»text/css»>
.
display: inline-block;
width: 15px;
height: 15px;
border: 1px solid red;
vertical-align: 5pt;
}
</style>
</head>
<body>
<h2>Вертикальное выравнивание</h2>
<p>Выравнивание элемента [<span></span>] в тексте </p>
</body>
</html>
Свойство vertical-align
4 способа центрирования содержимого с помощью CSS
Начало основного содержимого
CSS, макет · 28 сентября 2021 г.
Flexbox
Использование flexbox для вертикального и горизонтального центрирования содержимого обычно является предпочтительным методом . Все, что требуется, — это три строки кода в элементе контейнера, чтобы установить display: flex
, а затем центрировать дочерний элемент по вертикали и горизонтали, используя align-items: center
и justify-content: center
соответственно. Вы можете просмотреть центрирующий фрагмент кода Flexbox для кода и примеров.
Grid
Использование модуля сетки очень похоже на flexbox, а также распространенный метод, особенно если вы уже используете сетку в макете . Единственным отличием от предыдущего метода является отображение
, которое вместо этого настроено на сетку
. Вы можете просмотреть фрагмент кода и примеры центрирования сетки.
Преобразование
Центрирование преобразования использует, как следует из названия, преобразования CSS для центрирования элемента. Это зависит от элемента контейнера, имеющего position: absolute
, что позволяет дочернему элементу использовать position: absolute
для позиционирования самого себя. Затем слева: 50%
и сверху: 50%
используются для смещения дочернего элемента и transform: translate(-50%, -50%)
для инвертирования его положения. Вы можете просмотреть фрагмент кода и примеры центрирования преобразования.
Таблица
И последнее, но не менее важное: центрирование таблицы — это старый метод, который вам может понравиться при работе с старыми браузерами . Это зависит от использования display: table
в элементе контейнера. Это позволяет дочернему элементу использовать display: table-cell
в сочетании с text-align: center
и vertical-align: middle
для центрирования по горизонтали и вертикали. Вы можете просмотреть фрагмент кода и примеры для выравнивания таблицы отображения.
Автор Angelos Chalaris
Меня зовут Angelos Chalaris, инженер-программист JavaScript, я живу в Афинах, Греция. Лучшие фрагменты из моих приключений в программировании публикуются здесь, чтобы помочь другим научиться программировать.
Если вы хотите оставаться на связи, подписывайтесь на меня на GitHub или в Twitter.
Центрирование CSS
Набор методов центрирования элементов HTML в любой ситуации с использованием CSS.
Коллекция · 5 фрагментов
Центрирование Flexbox
Горизонтальное и вертикальное центрирование дочернего элемента внутри родительского элемента с использованием flexbox.
CSS, Layout · 30 декабря 2020 г.
Центрирование сетки
Горизонтальное и вертикальное центрирование дочернего элемента внутри родительского элемента с помощью
сетка
.CSS, Layout · 30 декабря 2020 г.
Центрирование таблицы отображения
Центрирование дочернего элемента по вертикали и горизонтали внутри его родительского элемента с использованием
display: table
.CSS, Layout · 30 декабря 2020 г.
CSS Центр сетки по вертикали и по горизонтали [2022 Tutorial]
демо, теперь пришло время дать вам представление о том же принципе. В этом уроке мы будем использовать CSS Сетка для центрирования по горизонтали и вертикали .
Как и Flexbox, центрировать элемент HTML очень легко с помощью CSS Grid.
Чтобы полностью центрировать элемент с сеткой CSS, нам нужен следующий код CSS:
.container { отображение: сетка; место-предметы: центр; мин-высота: 100вх; }
Свойство min-height является необязательным. В этом случае необходимо задать холсту HTML вертикальную высоту.
Приведенный выше код для выравнивания элемента по горизонтали и вертикали с помощью сетки CSS приведет к следующему примеру CodePen:
Просмотреть сетку Pen CSS Grid проще всего по центру по вертикали и горизонтали от Chris Bongers (@rebelchris) на КодПене.
Центр сетки CSS по горизонтали
Если, например, вы хотите только центрировать элемент по горизонтали , вы можете использовать следующий код сетки CSS:
. container { отображение: сетка; выравнивание содержимого: по центру; мин-высота: 100вх; }
Мы можем использовать свойство justify-content
и передать значение center
, чтобы сделать его горизонтально центрированным.
Примечание: это то же самое, что и для
display: flex
.
Этот код приводит к следующему Codepen:
См. Сетку Pen CSS Grid наиболее простой по центру по горизонтали от Chris Bongers (@rebelchris) на КодПене.
CSS Сетка центрируется по вертикали
С другой стороны, возможно, вы хотите только центрировать элемент по вертикали .
В сетке CSS для этого можно использовать следующий код:
.container { отображение: сетка; выравнивание элементов: по центру; мин-высота: 100вх; }
Мы используем align-items
со значением center
, чтобы получить вертикальное выравнивание элемента.