<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> .box{ 200px; height: 200px; border: 1px solid #000000; } .cont{ padding: 50px; background: red; } /*方法1 * 最简单的flex布局,外层容器加上如下样式即可 * display: flex; justify-content: center; align-items: center; * * 兼容性: IE:ie9以上加-ms-前缀 移动端:安卓4.2-4.3加-webkit-前缀 UC浏览器加-webkit-前缀*/ .box1{ display: -webkit-flex; display: -moz-flex; display: -o-flex; display: -ms-flex; display: flex; justify-content: center; align-items: center; } /*方法2 利用table-cell 兼容性ie7以上支持 * */ .box2{ display: table-cell; text-align: center; vertical-align: middle; } .cont2{ vertical-align: middle; display: inline-block; *display:inline; *zoom:1; } /*方法3 使用CSS3 transform 兼容性 IE:ie8以上,ie9加-ms-前缀 安卓4.3-4.4.4版本浏览器加-webkit-前缀 UC加-webkit-前缀 * */ .box3{ position: relative; } .cont3{ position: absolute; left: 50%; top: 50%; transform:translate(-50%,-50%); -ms-transform:translate(-50%,-50%); /* IE 9 */ -moz-transform:translate(-50%,-50%); /* Firefox */ -webkit-transform:translate(-50%,-50%); /* Safari 和 Chrome */ -o-transform:translate(-50%,-50%); /* Opera */ } /*方法4js实现 兼容所有浏览器*/ .box4{ position: relative; } .cont4{ position: absolute; left: 50%; top: 50%; border: 5px solid #000000; } </style> </head> <body> <!--方法1--> <div class="box1 box"> <div class="cont1 cont">1</div> </div> <!--方法2--> <div class="box2 box"> <div class="cont2 cont">2</div> </div> <!--方法3--> <div class="box3 box"> <div class="cont3 cont">3</div> </div> <!--方法4--> <div class="box4 box" id="box4"> <div class="cont4 cont" id="cont4">4</div> </div> <script type="text/javascript"> var cont4=document.getElementById("cont4"); // console.log(cont4.offsetHeight,cont4.clientHeight); linCenter(cont4); function linCenter(obj){ obj.style.marginLeft="-"+obj.offsetWidth/2+"px"; obj.style.marginTop="-"+obj.offsetHeight/2+"px"; } </script> </body> </html>