垂直居中问题
一般的做法是用 position 定位和 margin 负值来实现的。这里介绍几种不同的方法。
多行文字垂直居中
-
文字外部容器高度不固定 : 给多行文字上下设置 padding 值即可。
以下是实现代码和效果图。
.container{
width: 200px;
background-color: #f2dede;
margin-top: 50px;
}
.inner-container{
padding: 10px 0;
}
.inner-container p{
text-align: center;
margin: 0;
}
<!-------------内容高度不固定的垂直居中--------->
<div class="container">
<div class="inner-container">
<p>这里是文字</p>
<p>这里是文字</p>
<p>这里是文字</p>
<p>这里是文字</p>
<p>这里是文字</p>
<p>这里是文字</p>
<p>这里是文字</p>
</div>
</div>
![多行文本垂直居中(高度不固定)](http://www.fanyank.com/images/hexoWeb/%E5%A4%9A%E8%A1%8C%E6%96%87%E5%AD%97%E5%9E%82%E7%9B%B4%E5%B1%85%E4%B8%AD%EF%BC%88%E9%AB%98%E5%BA%A6%E4%B8%8D%E5%9B%BA%E5%AE%9A%EF%BC%89.png)
-
文字外部容器高度固定 : 首先给外容器用 height 给出一个定值,然后将其 display 属性设置为 table-cell,接下来设置内容,将内容的 vertical-align 属性设置为 middle。需要注意的是使用这种方法,外容器不能设置为浮动状态。
以下是实现代码和效果图。
.container{
width: 200px;
background-color: #f2dede;
margin-top: 50px;
}
.table-container{
width: 200px;
height: 200px;
display: table-cell;
vertical-align: middle;
}
<!-------------内容高度固定的垂直居中(文字)--------->
<div class="container">
<div class="table-container">
<span>这里是文字</span>
<span>这里是文字</span>
<span>这里是文字</span>
<span>这里是文字</span>
<span>这里是文字</span>
</div>
</div>
![多行文本垂直居中(高度固定)](http://www.fanyank.com/images/hexoWeb/%E5%A4%9A%E8%A1%8C%E6%96%87%E5%AD%97%E5%9E%82%E7%9B%B4%E5%B1%85%E4%B8%AD%EF%BC%88%E9%AB%98%E5%BA%A6%E5%9B%BA%E5%AE%9A%EF%BC%89.png)
内容垂直居中
-
嵌套标签的垂直居中 : 嵌套标签的垂直居中实际上和上述的高度固定的居种方法是一样的。
以下是代码和效果图。
.container{
width: 200px;
background-color: #f2dede;
margin-top: 50px;
}
.table-container{
width: 200px;
height: 200px;
display: table-cell;
vertical-align: middle;
}
ul{
display: inline-block;
padding: 0;
background-color: #2aabd2;
vertical-align: middle;
list-style: none;
}
ul li{
float: left;
height: 20px;
}
<!-------------内容高度固定的垂直居中(嵌套标签)--------->
<div class="container">
<div class="table-container">
<ul>
<li><a href="#">标签</a></li>
<li><a href="#">标签</a></li>
<li><a href="#">标签</a></li>
<li><a href="#">标签</a></li>
<li><a href="#">标签</a></li>
<li><a href="#">标签</a></li>
<li><a href="#">标签</a></li>
<li><a href="#">标签</a></li>
<li><a href="#">标签</a></li>
<li><a href="#">标签</a></li>
<li><a href="#">标签</a></li>
<li><a href="#">标签</a></li>
<li><a href="#">标签</a></li>
<li><a href="#">标签</a></li>
<li><a href="#">标签</a></li>
<li><a href="#">标签</a></li>
</ul>
</div>
</div>
![内容垂直居中(嵌套标签)](http://www.fanyank.com/images/hexoWeb/%E5%86%85%E5%AE%B9%E5%9E%82%E7%9B%B4%E5%B1%85%E4%B8%AD%EF%BC%88%E5%B5%8C%E5%A5%97%E6%A0%87%E7%AD%BE%EF%BC%89.png)
-
图片垂直居中 : 同上。
以下是代码和效果图。
.container-img{
width: 330px;
background-color: #f2dede;
margin-top: 50px;
}
.table-container-img{
width: 330px;
height: 250px;
display: table-cell;
vertical-align: middle;
}
<!-------------内容高度固定的垂直居中(图片)--------->
<div class="container-img">
<div class="table-container-img">
![](bg.jpg)
</div>
</div>
![内容垂直居中(图片)](http://www.fanyank.com/images/hexoWeb/%E5%86%85%E5%AE%B9%E5%9E%82%E7%9B%B4%E5%B1%85%E4%B8%AD%EF%BC%88%E5%9B%BE%E7%89%87%EF%BC%89.png)
网友评论