CSS使文字、大小不固定的图片垂直居中
一:单行文字垂直居中
- 使用line-height为父元素高度即可。
二:多行文字垂直居中
- 使用display:table-cell属性。
- 将父元素设置为display:table-cell,同时vertical-align:middle。
- html代码
<div id="content"> <span>测试多行文字垂直居中 <br />测试多行文字垂直居中 <br />测试多行文字垂直居中</span> </div>
css代码
#content{ text-align: left; padding: 0 20px; width: 300px; height: 150px; border: 5px solid #EBF3FB; display: table-cell; vertical-align: middle; }
效果展示
三:大小不固定的图片垂直居中
- 同样使用display:table-cell属性。
- html代码:
<div id="content"> <img src="img/1.jpg" alt="" id="img"/> </div>
css代码
#content{ width: 500px; height: 500px; border: 5px solid #EBF3FB; display: table-cell; vertical-align: middle; } #img{ max-width: 200px; max-height: 200px; }
效果展示
注意:
- display:table-cell属性指让标签元素以表格单元格的形式呈现。
- 但这个属性与float,position等属性冲突,设置上下居中将会不生效。且像表格元素一样,对margin值无反应。
- 这时只要在标签中间加上一层元素,设置中间元素的display属性即可。
代码:
<div id="content"> <span id="img_wrapper"> <img src="img/1.jpg" alt="" id="img"/> </span> </div>
#content{ width: 500px; height: 500px; border: 5px solid #EBF3FB; } #img{ max-width: 200px; max-height: 200px; } #img_wrapper{ height: 500px; display: table-cell; vertical-align: middle; }
注:本代码兼容各大主流浏览器,IE兼容到IE8。