解决div用margin:auto水平居中遇到滚动条跳动的问题

内容摘要
目前div水平居中用的方法基本上都是margin:auto,这种方法在大多数时候没什么问题,但是如果遇到界面在滚动条中切换的时候,div就会左右跳动。
如何才能解决这个问题
文章正文

目前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>

代码注释
[!--zhushi--]

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!