最近在項目中遇到不固定寬高的圖片要水平垂直居中的狀況,發現垂直居中存在兼容性問題,下面收集了一些方法,可根據須要權衡使用。css
1. 背景法(兼容性好,簡單,但不利於動態導入的圖片)html
html:express
<div class="wrap"></div>
css:this
.wrap{ width:300px; height:200px; background: url(../img/test.jpg) center center no-repeat; }
2. 圖片外面用個p標籤,經過設置line-height使圖片垂直居中(兼容性較好)url
html:spa
<div class="wrap"> <img src="./img/test.jpg"> </div>
css:code
.wrap{ width: 300px; height: 300px; border: 1px solid #000; text-align: center; } .wrap p{ width: 300px; height: 300px; line-height: 300px; } .wrap p img{ *margin-top:expression((300 - this.height )/2); vertical-align: middle; }
3. 利用display:table-cell(不兼容IE六、7)htm
html:blog
<div class="wrap"> <img src="./img/test.jpg"> </div>
css:圖片
.wrap{ width: 300px; height: 200px; border: 1px dashed #ccc; display: table-cell; vertical-align: middle; text-align: center; }
4. 添加table標籤(兼容性好,可是冗餘標籤比較多)
html:
<div class="wrap"> <table> <tr> <td align="center"><img src="./img/test.jpg"/></td> </tr> </table> </div>
css:
.wrap{ width: 300px; height: 200px; border: 1px dashed #ccc; text-align: center; } .wrap table{ width: 300px; height: 200px; }