垂直居中方法总结
之前总结了水平居中的方法,现在将垂直居中总结了一下分享给大家。
(1) 父元素高度不确定的文本,图片,块级元素的垂直居中
父元素高度不确定的文本,图片,块级元素的垂直居中是通过给父级元素设置相同上下边距实现的。
<style>
.wrap{background:#ccc;width:500px;color:red;margin-bottom:10px;padding-top:20px;padding-bottom:20px;}
.test{width:200px;height:50px;background:red;}
</style>
<div class="wrap">hello word</div>
<div class="wrap"><img src="logo.jpg" height="129" width="238" alt="" /></div>
<div class="wrap"><div class="test"></div></div>
效果如下:
(2)父级元素高度确定的单行文本的垂直居中
父级元素高度确定的单行文本的垂直居中,是通过给父元素设置line-height来设置的,line-height值和父元素的高度值相同
<style>
.wrap{background:#ccc;width:500px;color:red;height:100px;line-height:100px;}
</style>
<div class="wrap">hello word</div>
(3)父元素高度确定的文本,图片,块级元素的垂直居中
父元素高度确定的文本,图片,块级元素的垂直居中有两种方法:
方法一:说到垂直居中,在表格table中用到的垂直居中属性vertical-align:middle,但是只有父级元素为th或td时,这个vertical-align:middle属性才会生效,对于其他的块级元素div,p等是不起作用的。在火狐和ie8,可以设置display:table-cell,激活vertical-align:middle属性,但是在ie6,ie7下不支持vertical-align,所以这种办法没有跨浏览器兼容,但是我们可以用最笨的方法实现兼容,既然ie6,ie7不支持块级元素设置为display:table-cell来模拟表格,那么我们直接用表格布局好了
<style>
.wrap{background:#ccc;width:500px;color:red;height:100px;}
.test{width:100px;height:50px;background:red;}
</style>
<!-- 文本 -->
<table>
<tbody>
<tr>
<td class="wrap">
hello word<br>
hello word<br>
hello word<br>
</td>
</tr>
</tbody>
</table>
<!-- 图片 -->
<table>
<tbody>
<tr>
<td class="wrap">
<img src="logo.jpg" height="50" alt="" />
</td>
</tr>
</tbody>
</table>
<!-- 块级元素 -->
<table>
<tbody>
<tr>
<td class="wrap">
<div class="test"></div>
</td>
</tr>
</tbody>
</table>
因为td默认情况下就隐式的设置了vertical-align:middle;所以在wrap就不用设置了,这种方法虽然很好的解决了浏览器对的兼容性问题,但是添加了无语义标签,增加了嵌套。
方法二:对支持display:table-cell的浏览器用display:table-cell和vertical-align:middle;来实现居中,对不支持display:table-cell的ie6,ie7使用特定hack实现垂直居中。
<style>
.mb10{margin-top:10px;}
.wrap{background:#ccc;width:500px;height:100px;display:table-cell;color:red;vertical-align:middle;*position: relative;}
.verticalWrap{*position:absolute;top:50%;}
.vertical{*position: relative;top:-50%;}
.test{width:100px;height:50px;background:red;}
</style>
<div class="mb10">
<div class="wrap">
<div class="verticalWrap">
<div class="vertical">
hello word <br>
hello word <br>
hello word
</div>
</div>
</div>
</div>
<div class="mb10">
<div class="wrap">
<div class="verticalWrap">
<div class="vertical">
<img src="logo.jpg" height="50" alt="" />
</div>
</div>
</div>
</div>
<div class="mb10">
<div class="wrap">
<div class="verticalWrap">
<div class="vertical">
<div class="test"></div>
</div>
</div>
</div>
</div>
以上就是我总结的垂直居中的几种方式,希望本文对大家有所帮助
本文转载自:迹忆客(https://www.jiyik.com)
以上是 垂直居中方法总结 的全部内容, 来源链接: utcz.com/z/290100.html