css笔记:如何让⼀个div居于页⾯正中间
如何让⼀个div居于页⾯中间,我今天说的是让⼀个div⽔平居中同时垂直居中,⽽不是简单的top:50%,left:50%。当然,我们就按⼀开始的思路写⼀下:top,left属性都设为50%,看⼀下效果。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>div居于页⾯正中间</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
background-color: #EAEAEA;
}
div{
width: 200px;
height: 200px;
background-color: #1E90FF;
}
.center-in-center{
position: absolute;
top: 50%;
left: 50%;
}
</style>
</head>
<body>
<div class="center-in-center"></div>
</body>
</html>
从我的截图可以看出,div的左顶点刚好在页⾯的中⼼点处。现在的思路是,如何移动div然后让div的中⼼和页⾯中⼼重合,即可达到我们⼀开始想要的结果。在这⾥我要介绍⼀种⽅法,使⽤css的transform属性。由于这个属性的值很多,我这⾥就不⼀⼀介绍,只是说⼀下它的translate。我们给刚才的center-in-center类加上translate(0,-50%)
.center-in-center{
position: absolute;
top: 50%;
left: 50%;
transform: translate(0, -50%);
}
如果使⽤过这个属性,应该知道怎么回事了。translate(0, -50%),第⼀个值是指⽔平移动量,和tansform的translateX效果⼀样,第⼆个值那就是垂直⽅向偏移量,但为负数时,代表反⽅向移动。现在我们只需tanslate(-50%,-50%)就可以达到div既⽔平居中同时垂直居中。
附上完整代码与效果:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>div居于页⾯正中间</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
background-color: #EAEAEA;
}
div{
width: 200px;
height: 200px;
background-color: #1E90FF;
}
.center-in-center{
css实现垂直水平居中position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
-
moz-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
-o-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
</style>
</head>
<body>
<div class="center-in-center"></div>
</body>
</html>
说多两句,这也可以是⼀道⾮常不错的⾯试题,⼤家可以留意⼀下。当然还有其他解法,这⾥就不再班门弄斧了。另外,css3的transform是⼀个⾮常强⼤的属性,可以做很多变换3d之类的炫酷效果,如果有兴趣可以深⼊研究⼀下。但前端有⼀个不得不说的痛,浏览器兼容性问题。。。其他的浏览器还好说,万恶的IE,IE9⽀持⼀⼩部分属性,IE9以下全部不⽀持。如果还深爱着IE,那只能另辟蹊径,甚⾄不惜⽤js去解决咯!⼜快到周末了,⼜可以好好睡觉了,真好!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论