Spec-Zone.ru › CSS

Выравнивание блоков для блочных, абсолютно позиционированных и табличных макетов

Спецификация выравнивания блоков описывает, как работает выравнивание в различных методах макета. На этой странице мы рассмотрим, как работает выравнивание блоков в контексте блочного макета, включая плавающие, позиционированные и табличные элементы. Поскольку цель этой страницы — подробно описать аспекты, специфичные для блочного макета и выравнивания блоков, ее следует читать в совокупности с основной страницей выравнивания блоков, которая описывает общие особенности выравнивания блоков во всех методах макета.

align-content и justify-content

Свойство justify-content не применяется к блочным контейнерам или ячейкам таблицы.

Свойство align-content применяется к блочной оси для выравнивания содержимого блока внутри его контейнера. Если запрашивается метод распределения содержимого, такой как space-between, space-around или space-evenly, то используется резервное выравнивание, так как содержимое обрабатывается как один объект выравнивания.

justify-self

Свойство justify-self используется для выравнивания элемента внутри его содержащего блока по оси inline.

Это свойство не применяется к плавающим элементам или ячейкам таблицы.

align-self

Свойство align-self не применяется к блочным элементам (включая плавающие), потому что в блочной оси содержится более одного элемента. Оно также не применяется к ячейкам таблицы.

Абсолютно позиционированные элементы

Контейнер выравнивания — это позиционированный блок, учитывающий значения смещений top, left, bottom и right. Ключевое слово normal соответствует stretch, за исключением случаев, когда позиционированный элемент является замещающим элементом, в этом случае он соответствует start.

Выравнивание в этих методах макета сегодня

Поскольку в настоящее время браузеры не поддерживают выравнивание блоков в блочном макете, ваши варианты выравнивания — использовать один из существующих методов выравнивания или сделать даже один элемент внутри контейнера flex-элементом, чтобы использовать свойства выравнивания, как указано в flexbox.

Выравнивание блоков по горизонтали до flexbox обычно достигалось путем установки авто-отступов на блоке. margin со значением auto поглощает всё доступное пространство в этой размерности, следовательно, установив отступы слева и справа в значение auto, можно выровнять блок по центру:

.container {
  width: 20em;
  margin-left: auto;
  margin-right: auto;
}

В табличном макете вы можете использовать свойство vertical-align для выравнивания содержимого ячейки внутри этой ячейки.

Для многих случаев использования превращение блочного контейнера в flex-элемент обеспечит необходимую возможность выравнивания. В примере ниже контейнер с одним элементом внутри преобразован в flex-контейнер для возможности использования свойств выравнивания.

<div class="box">
  <div></div>
</div>
.box {
  height: 300px;
  border: 2px dotted rgb(96 139 168);
}

.box > * {
  border: 2px solid rgb(96 139 168);
  border-radius: 5px;
  background-color: rgb(96 139 168 / 0.2);
}
.box {
  display: flex;
  align-items: center;
  justify-content: center;
}

.box div {
  width: 100px;
  height: 100px;
}

Справочник

Свойства CSS

  • justify-content
  • align-content
  • justify-self
  • align-self

Элементы глоссария

  • Объект выравнивания
  • Контейнер выравнивания
  • Резервное выравнивание

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_box_alignment/Box_alignment_in_block_abspos_tables

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API