服务思维下的商业设计

撇弃浮夸去直达共同的目标

您当前所在的位置: 技术描点

CSS多行文字垂直居中的方法

更新时间 2020-08-29 15:18:51 浏览 0

写这篇文章是因为要兼容IE6、IE7的问题,我们都知道一行文字时可以通过line-height来设置垂直居中,如果是多行这个肯定不行,而我的同事因为这个用了js来实现居中对齐,我觉得这是很难理解的。故而整理这篇文章。

HTML代码:

<div class="middle-box">
	<div class="middle-inner">
		<p><span class="suc-tip">前端开发博客,专注前端开发和web教程</span></p>
		<p style="display:none;"><span class="suc-tip">5年的老博客,一直致力于WEB开发</span></p>
	</div>
</div>

第一种:display:table的方法

.middle-box{display: table; height: 300px;}
.middle-inner{display: table-cell; vertical-align:middle; text-align:center;}

缺点就是不兼容ie6、ie7.怎么兼容呢?·

当然是用另外一种相对定位和绝对定位的方式。

<!--[if lt IE 8]>
<style>
.middle-inner { position: absolute; top:50%;}
.middle-inner p {position: relative; top: -50%}
</style>
<![endif]-->

可以使用IE的特有的条件语法,不过我习惯用ie hack来写。下面这个的代码实现了水平垂直多行代码(支持一行)居中对齐。目前测试IE、chrome和Firefox均兼容。代码如下:

//code from http://caibaojian.com/css-vertical-middle.html
.middle-box{display: table; height: 300px; border:1px solid #ff0000; width:400px; margin:0 auto; position:relative;}
.middle-inner{display: table-cell; vertical-align:middle; *position:absolute; *top:50%; *left:50%; width:100%; text-align:center;}
.middle-inner p{position:relative; *top:-50%; *left:-50%;}

以后遇到居中问题,这三句CSS就够用了。更多的css3 flexbox、margin负值等兼容性还需要探讨。

联系我们

contact us

地址:武汉市街道口鹏程国际A座1106

武汉互亿网络科技有限公司旗下网站

值班电话:186-2710-5881

24h 专线:027-87108990

武汉切图外包服务公司 ICP备案编号:鄂ICP备14018140号-52 鄂公网安备 42011102004121号