目前div水平居中用的方法基本上都是margin:auto,这种方法在大多数时候没什么问题,但是如果遇到界面在滚动条中切换的时候,div就会左右跳动。
如何才能解决这个问题呢?
我们想到了一个vw的长度单位,vw相对于视口(viewport)的宽度。视口被均分为100单位的vw。
而100%的宽度是相对于浏览器窗口(window)的宽度,利用二者这个不同,来解决如上问题。
代码如下:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
html,body{
padding: 0;
margin: 0;
}
.container{
margin-left:calc(100vw - 100%);
}
.content{
margin: auto;
width: 95vw;
max-width: 1208px;
height: 400px;
background: #eee;
border: 1px solid #ddd;
}
.footer{
z-index: 100;
position: fixed;
margin: auto;
left: 0;
right: calc(100% - 100vw);
width: 95vw;
background: rgba(255, 255, 255, .8);
max-width: 1208px;
height: 65px;
bottom: 0px;
border: 3px solid #eeeeee;
}
</style>
</head>
<body>
<div class="container">
<div class="content"></div>
<div class="footer"></div>
</div>
</body>
</html>