块级、绝对定位和表格布局的盒对齐

CSS 盒对齐模块详细说明了对齐在各种布局方法中的工作原理。在本指南中,我们将探讨盒对齐如何在块级布局(包括浮动、定位和表格元素)的上下文中工作。由于本指南旨在详细说明特定于块级布局和盒对齐的内容,因此应结合盒对齐指南阅读,该指南详细说明了盒对齐在各种布局方法中的共同特性。

align-content 和 justify-content

justify-content 属性不适用于块容器或表格单元格。

align-content 属性应用于块轴,以便在容器内对齐盒子的内容。如果请求了内容分布方法(如 space-betweenspace-aroundspace-evenly),则将使用回退对齐方式,因为内容被视为单个对齐主体

justify-self

justify-self 属性用于在内联轴上对齐其包含块内的项目。

此属性不适用于浮动元素或表格单元格。

align-self

align-self 属性不适用于块级盒子(包括浮动),因为块轴中有多个项目。它也不适用于表格单元格。

绝对定位元素

对齐容器是定位块,考虑到 top、left、bottom 和 right 的偏移值。normal 关键字解析为 stretch,除非定位项是替换元素,在这种情况下它解析为 start

当前在这些布局方法中进行对齐

由于我们目前在块级布局中没有浏览器支持盒对齐,因此您的对齐选项要么是使用现有对齐方法之一,要么是将容器内的单个项目也变成弹性项目,以便使用弹性盒中指定的对齐属性。

在弹性盒出现之前,块的水平对齐通常是通过在块上设置自动外边距来实现的。marginauto 值将吸收该维度中的所有可用空间,因此将左右外边距设置为 auto,您可以将块推到中心位置。

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

在表格布局中,您可以使用 vertical-align 属性来对齐单元格内单元格的内容。

对于许多用例,将块容器转换为弹性项目将为您提供所需的对齐功能。在下面的示例中,一个带有一个项目的容器已转换为弹性容器,以便能够使用对齐属性。

html
<div class="box">
  <div></div>
</div>
css
.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;
}

另见