CSS 系列之div 居中
让 div
内的元素水平垂直居中。
接下来,我们就来看看 div 在高度已知,高度未知的情况下,如何进行水平垂直居中。
我们先来看看两段 html 代码,解释下面的内容居中和元素居中。
- 内容居中
1 | <div class="box">我是内容</div> |
- 元素居中
1 | <div class="box"> |
高度已知
div 内容居中
首先是内容,直接写在 div
中的,无嵌套任何元素。
- 用于内容居中
1 | .box { |
我们设置行高与高度相等时,可以设置对 line-height
进行设置,就可以进行垂直居中,然后使用 text-align
就可以进行水平居中。
当然,我们还是需要来看结果.
其实这种方式,也可以用于元素居中,但是如果外部元素有其他内容时就会出错。我们来看一下
首先是内部只有一个元素时。
1 | .content { |
然后我们来看看内部还有其他元素时。
1 | <div class="box"> |
所以不建议使用在元素居中的情况下。
position
绝对定位当然是要用在元素居中的情况了,需要使用内部元素进行偏移。
- 用于元素居中
1 | .box { |
从结果来看,我们是可以进行居中的。
- 首先我们通过设置父元素
position: relative
,然后在子元素中设置position: absolute
。 - 我们对子元素进行偏移,
top 50%
,left 50%
,当然偏移之后,其实不是居中的。 - 我们在对其这是
margin
将以往top
以及left
方向挤压,居中。
高度未知
flex 居中
首先,当然要说一下,我们最常见的 flex
布局的居中了
- 用于内容或者元素居中
我们来看看 flex
怎么居中。
1 | .box { |
我们就可以看到结果了。
偏移居中
我们需要设置一个相对定位进行偏移,然后使用 transform
,往回偏移一个元素的一半宽度。
- 用于元素居中
1 | .box { |
我们可以看到结果跟 flex
布局是相同的。
table-cell
设置 table-cell 之后,可以设置 vertical-align: middle
进行垂直居中设置。
- 用于内容居中
1 | .box { |
居中方式,大体都介绍了一遍,如果后续发现新方式,可以评论我,让我加一加,谢谢各位。
相关文章推荐
-------------------- 本文结束
感谢阅读 --------------------