CSS总结div中的内容垂直居中的五种⽅法
⼀、⾏⾼(line-height)法
如果要垂直居中的只有⼀⾏或⼏个⽂字,那它的制作最为简单,只要让⽂字的⾏⾼和容器的⾼度相同即可,⽐如:
p { height:30px; line-height:30px; width:100px; overflow:hidden; }
这段代码可以达到让⽂字在段落中垂直居中的效果。
⼆、内边距(padding)法
另⼀种⽅法和⾏⾼法很相似,它同样适合⼀⾏或⼏⾏⽂字垂直居中,原理就是利⽤padding将内容垂直居中,⽐如:
p { padding:20px 0; }
这段代码的效果和line-height法差不多。
text align center三、模拟表格法
将容器设置为display:table,然后将⼦元素也就是要垂直居中显⽰的元素设置为display:table-cell,然后加上vertical-align:middle来实现。
html结构如下:
<div id="wrapper">
<div id="cell">
<p>测试垂直居中效果测试垂直居中效果</p>
<p>测试垂直居中效果测试垂直居中效果</p>
</div>
</div>
css代码:
#wrapper {display:table;width:300px;height:300px;background:#000;margin:0 auto;color:red;}
#cell{display:table-cell; vertical-align:middle;}
实现如图所⽰:
遗憾的是IE7及以下不⽀持。
四、CSS3的transform来实现
css代码如下:
.center-vertical{
position: relative;
top:50%;
transform:translateY(-50%);
}.center-horizontal{
position: relative;
left:50%;
transform:translateX(-50%);
}
五:css3的box⽅法实现⽔平垂直居中
html代码:
<div class="center">
<div class="text">
<p>我是多⾏⽂字</p>
<p>我是多⾏⽂字</p>
<p>我是多⾏⽂字</p>
</div>
</div>
.
center {
width: 300px;
height: 200px;
padding: 10px;
border: 1px solid #ccc;
background:#000;
color:#fff;
margin: 20px auto;
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-pack: center;
-
webkit-box-align: center;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-pack: center;
-moz-box-align: center;
display: -o-box;
-o-box-orient: horizontal;
-o-box-pack: center;
-o-box-align: center;
display: -ms-box;
-ms-box-orient: horizontal;
-
ms-box-pack: center;
-ms-box-align: center;
display: box;
box-orient: horizontal;
box-pack: center;
box-align: center;
}
六:flex布局
html代码:
<div class="flex">
<div>
<p>我是多⾏⽂字我是多⾏⽂字我是多⾏⽂字我是多⾏⽂字</p>      <p>我是多⾏⽂字我是多⾏⽂字我是多⾏⽂字我是多⾏⽂字</p>    </div>
</div>
CSS代码:
.flex{
/*flex 布局*/
display: flex;
/*实现垂直居中*/
align-items: center;
/*实现⽔平居中*/
justify-content: center;
text-align: justify;
width:200px;
height:200px;
background: #000;
margin:0 auto;
color:#fff;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。