一、如何让一个div在页面中垂直居中(请至少列出三种)
1.距离页面窗口左边框和上边框的距离设置为50%,这个50%就是指页面窗口的宽度和高度的50%,最后将该DIV分别左移和上移,左移和上移的大小就是该DIV宽度和高度的一半。
300px;
height:200px;
position:absolute;
left:50%
top:50%;
margin:-100px 0 0 -150px ;
2.使用jquery代码
$(window).resize(function(){
$(".mydiv").css({
position: "absolute",
left: ($(window).width() - $(".div").outerWidth())/2,
top: ($(window).height() - $(".div").outerHeight())/2
});
});
3.使用绝对定位;top,bottom,left,right分别都为零
父元素设置为:
800px;
height:500px;
border:2px solid #000;
position:relative;
子元素设置为:
200px;
height:200px;
margin: auto;
position: absolute;
top: 0; left: 0; bottom: 0; right: 0;
4.(此方法在IE中可以实现只元素在父级元素中垂直居中,但在chrome中还没有实现水平居中),使用display:table-cell
父元素设置为:
800px;
height:500px;
border:2px solid #000;
display:table-cell;
vertical-align:middle;
text-align: center;
子元素设置为:
200px;
height:200px;
display:inline-block;
5.使用弹性布局的方式来解决
父级元素设置为
800px;
height:500px;
border:2px solid #000;
display:flex;
justify-content:center;
align-items:center;
子元素设置为:
200px;
height: 200px;
background-color: red;
6.绝对定位和transfrom
style>
*{
padding: 0;
margin: 0;
}
.box{
300px;
height: 300px;
background:#e9dfc7;
border:1px solid red;
position: relative;
}
img{
100px;
height: 100px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}
</style>
<!--html -->
<body>
<div class="box" >
![](3.jpg)
</div>
</body>