css水平垂直居中对齐方式
1.文字或者内联元素的垂直水平居中对齐
css属性 -- 水平居中:text-aligin:center; 垂直居中: line-height:height; 例子:、
html:
<div class="mb10 line-align"> 我是垂直水平居中对齐的文字哦! </div> <div class="mb10 line-align"> <span>我是垂直水平居中对齐的内联元素span!</span> </div>
css:
.mb10 { margin-bottom: 10px; } /*文字或者内联元素的垂直水平居中对齐*/ .line-align { height: 40px; line-height: 40px; text-align: center; background: tan; }
2.块元素的垂直水平居中对齐
1) 定位法
优点:方便理解。一目了然。
缺点:子元素必须固定宽高才可以使用。
html:
<div class="relativeDiv"> <div class="absoluteDiv"></div> </div>
css:
/*定位法*/ .relativeDiv { height: 100px; background: tomato; position: relative; } .absoluteDiv { height: 20px; width: 100px; background: #000; position: absolute; left: 50%; top: 50%; margin-left: -50px; margin-top: -10px; }
2) css3 transform结合position方法
优点:相比完全的定位法,这个方法中,子元素不比固定宽高。
缺点:兼容性不是很好,ie9+的浏览器才支持。
html:
<div class="transform"> <div class="transformChild"></div> </div>
css:
/*css3 transform*/ .transform{ height: 100px; background: green; position: relative; } .transformChild{ width: 100px; height: 20px; background: #000; position: absolute; left: 50%; top: 50%; -webkit-transform: translate(-50%,-50%); -ms-transform: translate(-50%,-50%); -o-transform: translate(-50%,-50%); transform: translate(-50%,-50%); }
3. 变身table属性法
1) td中放span或者文字
html:
<div class="mb10 displayTable"> <div class="displayTableCell"> <span>我相当于是td中的span</span> </div> </div>
2) td中放div
html:
<div class="mb10 displayTable"> <div class="displayTableCell"> <div class="tableDiv">我相当于是td中的div</div> </div> </div>
css:
.displayTable{ display: table; width: 100%; } .displayTableCell{ width: 100%; height: 100px; display:table-cell; background: palegoldenrod; vertical-align: middle; text-align: center; } .tableDiv{ width: 200px; height: 30px; background: #000; color: #fff; margin: 0 auto; }
4.图片水平垂直居中!!!很好用的方式
图片的水平处置居中都可以使用上面的方式,不过还有个超级好用的方式,padding+伪类方法。
缺点:只支持ie9+
例子:
html:
<div class="imgGroup"> <div class="imgAlone"> <div class="imgWidth"> <img src="image/1.png"> </div> </div> <div class="imgAlone"> <div class="imgWidth"> <img src="image/2.png"> </div> </div> <div class="imgAlone"> <div class="imgWidth"> <img src="image/1.png"> </div> </div> <div class="imgAlone"> <div class="imgWidth"> <img src="image/2.png"> </div> </div> <div class="imgAlone"> <div class="imgWidth"> <img src="image/1.png"> </div> </div> <div class="imgAlone"> <div class="imgWidth"> <img src="image/2.png"> </div> </div> </div>
css:
<style type="text/css"> .imgGroup{ width: 100%; } .imgAlone{ float: left; width: 20%; position: relative; margin:2.5%; border: 1px solid #ccc; box-sizing: border-box; } .imgAlone:after{ content: ""; display: block; padding-top:100%; } .imgWidth{ position: absolute; left: 0; top:0; width: 100%; height: 100%; } .imgWidth img{ max-height: 100%; max-width: 100%; position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: auto; } </style>
文章如有bug,请留言!