居中
水平居中
1.子元素行内元素
<div class="container">
<span class="content">水平居中</span>
</div>
text-align
text-align 一般运用在块级元素中,使其中的文本对齐。实际上,运用在块级元素中的 text-align 会使其包含的内联元素水平对齐
.container {
text-align: center;
}
2.子元素块级元素
<div class="container">
<div class="content">水平居中</div>
</div>
- margin 如果块元素的高度和宽度已知,就可以通过将元素的左右 margin 值设置为 auto 将元素水平居中:
.content {
width: 100px;
height: 100px;
margin-left: auto;
margin-right: auto;
}
如果有多个块元素,需要将多个元素包裹在一个元素中以使用该方法实现水平居中:
<div class="container">
<div class="box">
<div class="content">水平居中</div>
<div class="content">水平居中</div>
</div>
</div>
.box {
display: flex;
margin-left: auto;
margin-right: auto;
}
水平垂直居中
<div class="container">
<div class="content">水平垂直居中</div>
</div>
绝对定位
使元素垂直居中最通用的方法就是使用绝对定位和 transform:
.container {
position: relative;
}
.content {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
如果元素的高度和宽度已知,也可以使用 margin 来代替 transform:
.container {
position: relative;
}
.content {
width: 100px;
height: 100px;
position: absolute;
top: 50%;
left: 50%;
margin-top: -50px;
margin-left: -50px;
}
Flex 布局
在使用 Flex 布局时,可以结合上面的水平和垂直居中来实现水平垂直居中:
.container {
display: flex;
justify-content: center;
align-items: center;
}
Grid 布局
.container {
display: grid;
place-items: center;
}
place-content 属性是 align-content 和 justify-content 的简写,
当该属性的值为 center 时,所有的子元素堆叠在父元素的中间对齐。