【问题标题】:Fixed position footer at 100% width extends past window to right100% 宽度的固定位置页脚从窗口向右延伸
【发布时间】:2014-11-17 00:21:30
【问题描述】:

在尝试将此页脚设置在固定位置时,我需要帮助。我边走边学,并试图做出合理的流动布局。这是一项正在进行的工作,但在我将页脚放在正确的位置之前我无法继续。

我的问题是它一直延伸到右侧的窗口之外。有时它会创建一个滚动条并且不遵循边距规则。我已经尝试了几乎所有我能想到的以及通过使用可靠的谷歌可以找到的东西。我已经使用了最新的 chrome 和 firefox 版本来查看是否是 chrome 问题。

我曾经有一个包装容器,但我已将其移除并将页脚代码从一个地方移动到另一个地方,试图为它找到一个可以正常运行的地方。

body {
    text-align: center;
    margin-top: 0;
    background-color: #1A1A1A;
    background-image: url('#');
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    background-size: cover;}

    #logo {
    background-color: rgba(53, 53, 53, 0.9);
    padding: 10px;
    position: relative;
    margin-right: auto;
    margin-left: auto;
    margin-bottom: 5px;
    height: 90px;
    -webkit-border-bottom-left-radius: 5px;
    -webkit-border-bottom-right-radius: 5px;
    -moz-border-bottom-left-radius: 5px;
    -moz-border-bottom-right-radius: 5px;
    -ms-border-bottom-left-radius: 5px;
    -ms-border-bottom-right-radius: 5px;
    -o-border-bottom-left-radius: 5px;
    -o-border-bottom-right-radius: 5px;
    border-bottom-left-radius: 5px;
    border-bottom-right-radius: 5px;}
    
    #nav {
    background-color: rgba(53, 53, 53, 0.9);
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    -msborder-radius: 5px;
    -o-border-radius: 5px;
    border-radius: 5px;
    padding: 0px;
    position: relative;
    margin-right: 0;
    margin-left: 0;}

    ul {
    list-style: none;
    margin: 0;
    display: inline-block;
    position: relative;}

    li {
    display: inline-block;
    position: relative;}

    a {
    display: inline-block;
    text-decoration: none;
    height: 100px;
    width: 100px;
    position: relative;
    text-align: center;}

    #link1:hover {
    background-color: #727272;
    -webkit-transition: all 0.3s;
    -moz-transition: all 0.3s;
    -ms-transition: all 0.3s;
    -o-transition: all 0.3s;
    transition: all 0.3s;}

    #link1:active {
    background-color: #ba6a15;}

    #link2:hover {
    background-color: #727272;
    -webkit-transition: all 0.3s;
    -moz-transition: all 0.3s;
    -ms-transition: all 0.3s;
    -o-transition: all 0.3s;
    transition: all 0.3s;}

    #link2:active {
    background-color: #ba6a15;}

    #link3:hover {
    background-color: #727272;
    -webkit-transition: all 0.3s;
    -moz-transition: all 0.3s;
    -ms-transition: all 0.3s;
    -o-transition: all 0.3s;
    transition: all 0.3s;}

    #link3:active {
    background-color: #ba6a15;}

    #link4:hover {
    background-color: #727272;
    -webkit-transition: all 0.3s;
    -moz-transition: all 0.3s;
    -ms-transition: all 0.3s;
    -o-transition: all 0.3s;
    transition: all 0.3s;}

    #link4:active {
    background-color: #ba6a15;}

    #footer {
    background-color: rgba(53, 53, 53, 0.9);
    position: fixed;
    bottom: 0;
    width: 100%;
    height: 22px;
    padding: 3px;
    color: #FFF;}
<!DOCTYPE html>
    <html>
    <head>
    </head>

    <body>    
    <header>
            <div id="logo"><img src="#" alt="logo"></div>
    <nav>
    <ul>
            <li id="link1"><a href="#"><img src="#" alt=""; height="100"; width="100"></a></li>

            <li id="link2"><a href="#"><img src="#"  alt=""; height="100"; width="100"></a></li>

            <li id="link3"><a href="#"><img src="#"  alt=""; height="100"; width="100"></a></li>

            <li id="link4"><a href="#"><img src="#" alt=""; height="100"; width="100"></a></li>
    </ul>
    </nav>
    </header>
    <footer>Hello there!</footer>
    </body>

【问题讨论】:

  • 添加css html,body{ margin:0px; padding:0px; }

标签: html css position footer fixed


【解决方案1】:

您可以通过将margin:0px; 设置为bodybox-sizing: border-box; 设置为footer 来做到这一点

JSFiddle - DEMO

body {
    text-align: center;
    background-color: #1A1A1A;
    background-image: url('#');
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    background-size: cover;
    margin:0px;
}
#footer {
    background-color: rgba(53, 53, 53, 0.9);
    position: fixed;
    bottom: 0;
    width: 100%;
    height: 22px;
    padding: 3px;
    color: #FFF;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

【讨论】:

  • 哦,谢谢。我知道该特定修复与某些浏览器不交叉兼容。这会是一个问题吗?如果是,我可以使用什么替代代码?
  • @srob 我已经用浏览器前缀更新了我的答案并检查了它 - developer.mozilla.org/en-US/docs/Web/CSS/box-sizing
  • @srob 你可以使用max-width: 100%;
  • 哦,那么 webkits 可以处理很多事情,感谢@caeth 的替代建议。 :)
【解决方案2】:

试试这个:

<div id="footer">Hello there!</div>

【讨论】:

    【解决方案3】:

    这里有什么问题:

    #footer {
       width: 100%;
       padding: 3px;
    }
    

    您的页脚宽度设置为 100% + 6px 的内边距。

    尝试添加它以使填充(和边框)成为页脚内容的一部分:

    #footer{
       box-sizing: border-box;
    }
    

    【讨论】:

      猜你喜欢
      • 2011-09-13
      • 2017-07-01
      • 2013-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-03
      • 1970-01-01
      相关资源
      最近更新 更多