我们经常会让元素进行上下左右的居中,这里提供几种方法供大家使用。 当我们提前知道要居中元素的长度和宽度时,可以使用这种方式: absolute与margin的居中布局 当要居中的元素不定宽和定高时,我们可以使用 transform的居中布局 蚊子的博客 不过这个方案有一个比较大的缺点是:文案必须是单行的,多行的话,设置的行高就会有问题。 line-height的居中布局 给容器元素设置 line-height的居中布局 蚊子的博客 我们可以给父级元素设置为 同时,flex 布局也能替换 flex的居中布局 蚊子的博客 每种上下左右居中的方案都有不同的适用场景,现在通常是第 2 种方案和第 5 种方案适用的比较多。1. 绝对定位与 margin #
.container {
position: relative;
width: 300px;
height: 200px;
border: 1px solid #333333;
}
.content {
background-color: #ccc;
width: 160px;
height: 100px;
position: absolute;
top: 50%;
left: 50%;
margin-left: -80px; /* 宽度的一半 */
margin-top: -50px; /* 高度的一半 */
}
2. 绝对定位与 transform #
transform
来让元素进行偏移。.container {
position: relative;
width: 300px;
height: 200px;
border: 1px solid #333333;
}
.content {
background-color: #ccc;
position: absolute;
top: 50%;
left: 50%;
transform: translate3d(-50%, -50%, 0);
text-align: center;
}
3. line-height #
line-height
其实是行高,我们可以用行高来调整布局!.container {
width: 300px;
height: 200px;
border: 1px solid #333333;
}
.content {
line-height: 200px;
}
4. table 布局 #
display: table
,当前元素设置display: table-cell
:.container {
width: 300px;
height: 200px;
border: 1px solid #333333;
display: table;
}
.content {
display: table-cell;
vertical-align: middle;
text-align: center;
}
5. flex 布局 #
display: flex
,利用 flex 中的align-items
和justify-content
设置垂直方向和水平方向的居中。这种方式也不限制中间元素的宽度和高度。line-height
方案在某些 Android 机型中文字不居中的问题。.container {
width: 300px;
height: 200px;
border: 1px solid #333333;
display: flex;
align-items: center;
justify-content: center;
}
.content {
background-color: #ccc;
text-align: center;
}
6. 总结 #
版权属于:
加速器之家
作品采用:
《
署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)
》许可协议授权
评论