CSS 保持右边距固定 header

CSS keep right margin with fixed header

所以我遇到了以下问题:

<!DOCTYPE html>
<html>
<head>
    <title>grouping Divs</title>
    <link type="text/css" rel="stylesheet" href="stylesheet.css" />
</head>
<body>
    <div id="header"></div>
    <div class="left"></div>
    <div class="right"></div>
    <div id="footer"></div>
</body>
</html>

所以基本上 4 个 div 每个组成网页上的元素。 CSS:

#header {
    height: 40px;
    width: 100%;
    background-color: brown;
    border-radius: 5px;

    position: fixed;
}

.left {
    height: 2000px;
    width: 70px;
    background-color: magenta;
    border-radius: 5px;

    float: left;
}

.right {
    height: 2000px;
    width: 70px;
    background-color: magenta;
    border-radius: 5px;

    float: right;
}

#footer {
    height: 60px;
    width: 100%;
    background-color: brown;
    border-radius: 5px;

    clear: both;
}

现在我喜欢做的是以与页脚相同的方式显示 header,然后才保持位置固定。我尝试过的所有事情似乎都出现了问题,从 header 中删除位置:固定修复了问题,但我想保持它的固定。将宽度设置为 99% 之类的东西只有在屏幕分辨率合适的情况下才有效。

我真的不知道下一步该怎么做,所以任何帮助都将不胜感激!

你可以这样做(你的 <body> 默认会带来一些 padding

CSS

body{
    margin:0;
    padding:0;
}

DEMO HERE

添加:

body {
    margin: 5px;
    padding: 0;
}

这将删除正文的边距和填充,使其看起来完全如您所愿。

并为 css 中可用的宽度添加 calc() 函数:

#header {
    width: calc(100% - 10px);
}

演示 jsfiddle.