В этом кратком уроке я покажу вам, как отцентрировать элемент div по вертикали и горизонтали внутри другого элемента div.
Я также покажу вам, как индивидуально центрировать div по горизонтали или по вертикали, предполагая, что у вас есть поле с фиксированной шириной и гибкой высотой.
Есть разные способы добиться этого, но я собираюсь поделиться некоторыми.
Однако имейте в виду, что есть некоторые способы, которые могут в конечном итоге преследовать вас в ходе поддержки вашего кода, поэтому будьте осторожны с методами, которые вы выбираете.
Прежде чем мы продолжим, эти решения, которые я собираюсь показать вам, должны работать во всех основных браузерах.
Горизонтально и вертикально Center Div
Приведенный ниже код централизует ваш div как по горизонтали, так и по вертикали, тем самым переместив дочерний div в середину родительского div.
Обратите внимание: используйте предпочтительный размер ширины.
тело>
как отцентрировать div по горизонтали и вертикали
Горизонтально Централизировать Div
С помощью CSS мы центрируем внутренний div по горизонтали.
Использование приведенного ниже кода только централизует дочерний элемент div по горизонтали и не устанавливает вертикальное выравнивание. Ваш div будет автоматически выровнен по верху.
<голова>
<стиль>
.outerDiv {
высота: 100%;
ширина: 100%;
дисплей: таблица;
положение: абсолютное;
}
.innerDiv {
width: /* Укажите любую ширину, меньшую или % от содержащего div */
поле: 0 авто;
}
/* Если вы ориентируетесь на IE8+, лучше использовать ниже*/
.innerDiv {
дисплей: таблица;
поле: 0 авто;
}
стиль>
голова>
<тело>
<дел>
<дел>
направляясь сюда
Содержимое будет здесь...
тело>
Вертикальное центрирование блока Div
С помощью CSS мы центрируем внутренний блок по вертикали. Используйте приведенный ниже код, чтобы централизовать дочерний элемент div по вертикали и не устанавливать горизонтальное выравнивание. Ваш div автоматически выровняется по левому краю.
Как использовать классический редактор и Гутенберг в WordPress
10 июня 2021 г.
Как вертикально выровнять плавающие элементы по середине с помощью Flexbox
← Вернуться к началу блога
UX/Техники дизайна
Автор: Бобби Килпатрик
18 июня 2016 г.
Краткое содержание статьи
Нельзя ли просто использовать «vertical-align: middle»?
Flexbox спешит на помощь
Недавно я обнаружил очень простое решение на основе Flexbox проблемы, которая годами доставляла проблемы веб-дизайнерам и разработчикам.
Рассмотрим следующую ситуацию:
Вы работаете с сеткой, в которой для создания столбцов используются числа с плавающей запятой. Подумайте о Bootstrap, Foundation, Skeleton, Susy и многих других.
У вас есть два столбца динамического содержимого, расположенные рядом друг с другом, и вы не знаете размер содержимого столбца или какой столбец будет выше.
Вам необходимо вертикально выровнять два столбца по центру.
Наш желаемый макет будет выглядеть так:
Но по умолчанию два столбца будут выравниваться по верхнему краю внутри контейнера следующим образом:
Итак, как мы можем выровнять наши столбцы по середине, не нарушая наш макет на основе плавающей запятой? До недавнего времени решить эту, казалось бы, простую задачу было на удивление сложно.
Нельзя ли просто использовать «vertical-align: middle»?
К сожалению, нет по нескольким причинам.
Во-первых, как указано в документах CSS, « Свойство CSS vertical-align указывает вертикальное выравнивание встроенного поля или поля ячейки таблицы. » Наши элементы не являются встроенными, встроенными блоками или ячейками таблицы, поэтому это правило не будет работать без изменения наших стилей отображения.
Во-вторых, наша структура сетки использует « float: right » для позиционирования двух элементов столбца. Правила CSS гласят: « Плавающий ящик должен быть размещен как можно выше. » Это означает, что плавающий элемент всегда будет выравниваться по верхнему краю.
Хотя первую проблему можно решить, изменив правило « display », чтобы сделать столбцы « inline-block » или « table-cell », не существует техники CSS, которая решает вторую проблему. Нам нужно будет удалить правила с плавающей запятой, которые будут мешать базовой структуре сетки.
Flexbox спешит на помощь
Как обычно, Flexbox предлагает простое решение нашей проблемы. Вот это в два простых шага:
Добавьте ‘ display: flex ’ в наш элемент контейнера.
Добавьте ‘ align-items: center ’ в наш элемент контейнера.
Вот и все! Вот как могут выглядеть HTML и CSS для нашего упрощенного примера:
Как вы можете видеть на анимации ниже, столбцы остаются выровненными по середине независимо от размера их содержимого:
Что делает это решение особенно приятным, так это то, что добавление этих двух правил к нашему элементу-контейнеру решает проблему выравнивания без изменение стиля столбцов каким-либо образом. Современные браузеры могут использовать стиль Flexbox, в то время как более старые браузеры просто игнорируют его, оставляя два столбца с верхним выравниванием.