首页 > 编程知识 正文

css水平垂直居中的方式,css如何水平垂直居中

时间:2023-05-04 05:32:36 阅读:257753 作者:680

CSS水平居中、垂直居中、水平垂直居中方法总结

文字的水平居中:

text-align:center;

单行文字的垂直居中:

line-height:30px;height:30px;

让有宽度的div水平居中:

margin: 0 auto;width:300px;//必须要有宽度,margin:0 auto才能让它居中

让绝对定位的div垂直居中:

position:absolute;top:0;bottom:0;margin:auto 0; //垂直方向的auto 发挥的作用width:300px;height:300px;

同理,让绝对定位的div水平和垂直方向都居中:

position:absolute;top:0;left: 0;right:0;bottom:0;margin:auto; width:300px;height:300px;

已知宽高的容器的水平垂直方向居中:

width: 300px;height:300px;position: absolute;top:50%;left:50%;margin-top: -150px; //自身高度的一半margin-left:-150px;

未知宽高的容器的水平垂直方向居中:

width:300px;height:300px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);

*注:transform属性,低版本浏览器不兼容,例如IE8

水平垂直居中记得要想到flexbox:

.container{ display: flex; align-items: center; justify-content: center;}.container .div{//whatever}

此时.div无论是否已知宽高,都能两个方向居中。

垂直居中(表格布局法)

.container{ display: table;}.container .div{ display: table-cell; vertical-align:middle;} 为什么height=line-height就能垂直居中?

拜读了mmdbwb大神的文章:

行高指的是什么?
行高指的是文本行的基线间的距离。

什么是基线?
基线不是文字的下端沿。是英文字母X的下端沿。

文字有顶线,底线,基线和中线,用以确定文字行的位置。

什么是行距?
行高与字体尺寸之间的差。

还要理解一个概念 -- 行内框
     行内元素会生成一个行内框。它无法显示出来,但是又确实存在。

     在没有其他因素影响的时候,行内框等于内容区域。
    > 设定行高可以增加或者减少行内框的高度,即:将行距的值(行高-字体尺寸)除以2,分别加到内容区域的上下两边。这是理解的关键,也就是内容区域的上面和下面均等增加一个距离。可以在一段文字上进行调试看看,发现增加减小line-height时,文字是整体上下缩进的,而非第一行不动,后面的向上靠拢。

行内框具有垂直居中性。即行内框占据的空间按与文字内容公用水平中垂线。(mmdbwb)

关于vertical-align:middle属性,也很神奇,可以好好再拜读下大神的文章。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。