固定宽度为100%的位置忽略了主体填充

Jgo*_*731 3 html css

我试图制作一个跨越页面宽度减去10px左右的页脚.我试图通过在10px的所有侧面给身体填充来做到这一点.在下面的代码中,标题工作正常,但页脚忽略右侧的主体填充.为什么这样做,我该如何解决?

<!DOCTYPE html>
<html>
    <head>
        <style>
            div {
                padding:0;
                margin:0;
            }
            body {
                margin: 0;
                padding: 0 10px;
            }
            #header {
                height: 150px;
                width: 100%;
                margin: 0 auto;
                background: #333;
            }
            #footer {
                position: fixed;
                bottom: 5px;
                width: 100%;
                background: #f63;
                text-align: center;
            }
        </style>
    </head>
    <body>
        <div id="header"></div>
        <div id="footer">I am the footer!</div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

小智 10

页脚宽度和内边距是单独计算的。您可以使用 usebox-sizing: border-box来防止这种情况发生

使用它让所有元素都以这种方式表现
* {
     box-sizing: border-box;
  }
Run Code Online (Sandbox Code Playgroud)

Travis Neilson 在他的 YouTube 频道 DevTips 上有一段精彩的视频,他在视频中解释了盒子模式的概念。


Eps*_*neR 5

您的页脚不会忽略正文填充,通过控制台查看该元素大小,您将看到页脚宽度为窗口宽度的100%+左侧填充的10px +右侧填充的10px.

你可以在css中使用calc函数:https://developer.mozilla.org/en-US/docs/Web/CSS/calc

#footer {
  width: calc(100% - 20px);
}
Run Code Online (Sandbox Code Playgroud)

的jsfiddle