方法1、使用line-heigh使多行文字居中或圖片居中html
把文字包裹在一個inline-block元素中vertical-align middle,外部元素line-heigh等於高度佈局
1 <div class="box1"> 2 <span>多行居中測試多行居中測試多行居中測試多行居中測試多行居中測試多行居中測試多行居中測試多行居中測試多行居中測試多行居中測試多行居中測試多行居中</span> 3 </div>
1 .box1{ 2 background-color: #ccc; 3 width: 300px; 4 height: 300px; 5 margin: 100px auto; 6 line-height: 300px; 7 } 8 .box1 span{ 9 display: inline-block; 10 line-height: 20px; 11 vertical-align: middle; 12 }
圖片居中:測試
1 <div class="box1"> 2 <img src="common-header-logo.png"> 3 </div>
1 .box1{ 2 background-color: #ccc; 3 width: 300px; 4 height: 300px; 5 margin: 100px auto; 6 line-height: 300px; 7 text-align: center;
font-size: 0; 8 } 9 .box1 img{ 10 vertical-align: middle; 11 }
效果:flex
方法二:使用flex佈局實現居中(更簡單,不支持IE9)ui
HTML以下:spa
<div class="box"> <span>span多行居中測試<br>span多行居中測試<br>span多行居中測試</span> <p>p另外一個段落元素</p> </div>
CSS以下:code
.box{ display: flex; width: 500px; height: 300px; margin: 50px auto; border: 2px solid #000; align-items: center;/*副軸居中*/ } .box span{/*span是另外一個flex佈局容器,它自己將自適應填滿除p元素外的寬度*/ flex: 1; display: flex; justify-content: center;/*主軸居中*/ }
方法三:使用絕對定位使圖片居中htm