2

我试图将脚放在页面底部。为此,我阅读了很多网站,所有这些网站都告诉我同样的情况。

完成上述操作后,我的页脚真的卡在了底部......但是......页面的内容被这个覆盖了!

我的 CSS 具有以下属性:

html, body {
  height: 100%;
}

body {
  margin: 0px;
  font-family: Arial;
  background-image: url("../img/bg2.jpg");
}

.geral {
    min-height:100%;
    position: relative;
}

.container {
  width: 900px;
}

.container img {
  width: 250px;
  float: left;
}

.container .btn_criar_conta {
  width: 100px;
  float: right;
}

.container .user_detail {
  width: 300px;
  float: right;
}

#topo_pagina {
  height: 110px;
}



.box_login_conteiner {
  width: 410px;
  text-align: left;
}

.box_login {
  width: 350px;
  min-height: 200px;
  background-color: white;
  font-family: Arial;
  font-size: 13px;
  text-align: right;
  padding: 10px;
  border: 1px white solid;
  border-radius: 0.5em;
  color: grey;
  box-shadow: lightgrey 0.0em 0.5em 0.9em;
  padding-right: 50px;
}

.box_login li {
  list-style: none;
}

.box_login a {
  color: blue;
  text-decoration: none;
}

.box_login a:hover {
  color: blue;
  text-decoration: underline;
}

.box_login input {
  border: 1px whitesmoke solid;
  border-radius: 0.5em;
  box-shadow: lightgrey 0.0em 0.1em 0.1em;
  height: 30px;
  width: 250px;
  padding: 5px;
  color: grey;
}

.box_login .img {
  border: none;
  width: 100px;
}

.box_login .btn_submit {
  border: 1px seagreen solid;
  border-radius: 2em;
  box-shadow: grey 0.0em 0.1em 0.1em;
  height: 30px;
  width: 100px;
  padding: 5px;
  color: white;
  background-color: seagreen;
}

.index_login {
  text-align: justify;
  float: right;
  width: 400px;
  color: #2b3856;
  font-family: Geneva;
}

.index_login img{
  text-align: right;
  width: 400px;
}

.index_login hr {
  background-color: lightblue;
  border: 0px;
}

.info_login {
  font-size: 11px;
  padding: 5px;
  background-color: lightgrey;
  border-radius: 0.5em;
  color: grey;
}

.info_login a {
  color: blue;
  text-decoration: none;
}

.info_login a:hover {
  color: blue;
  text-decoration: underline;
}


.box_registrar_conteiner {
  width: 430px;
  text-align: left;
}

.box_registrar {
  width: 430px;
  min-height: 200px;
  background-color: white;
  font-family: Arial;
  font-size: 13px;
  text-align: right;
  padding: 10px;
  border: 1px white solid;
  border-radius: 0.5em;
  color: grey;
  box-shadow: lightgrey 0.0em 0.5em 0.9em;
  padding-right: 50px;
}

.box_registrar li {
  list-style: none;
}

.box_registrar a {
  color: blue;
  text-decoration: none;
}

.box_registrar a:hover {
  color: blue;
  text-decoration: underline;
}

.box_registrar input {
  border: 1px whitesmoke solid;
  border-radius: 0.5em;
  box-shadow: lightgrey 0.0em 0.1em 0.1em;
  height: 30px;
  width: 250px;
  padding: 5px;
  color: grey;
}

.box_registrar .img {
  border: none;
  width: 100px;
}


.rodape {
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 150px;
  background-color: grey;
  color: white;
  font-family: Geneva;
  font-size: 11px;
}


.rodape a {
  color: white;
  text-decoration: none;
}

.rodape a:hover {
  color: white;
  text-decoration: underline;
}

.rodape #menu {
  float: left;
  margin-right: 50px;
}

.container_footer {
  width: 900px;
  text-align: left;
}

我的 HTML 是这样的:

<html>
    <head>
        <title>Site</title>
        <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/style1.css">
    </head>
    <body>
        <div class="geral">
            <div id="topo_pagina">
                <div align="center">
                    <div class="container">
                        <br/>
                        <br/>
                        <a href="/"><img src="{{ STATIC_URL }}img/logo1.png"></a>

                        {% if user.is_authenticated %}
                            <div class="user_detail">
                                <br/>
                                Olá {{ user.first_name|capfirst }}! - <a href="/logout/">Logout</a>
                            </div>
                        {% else %}
                            <a href="/login/"><input type="image" src="{{ STATIC_URL }}img/btn_logar_conta.png" class="btn_criar_conta"></a>
                            <a href="/registrar/"><input type="image" src="{{ STATIC_URL }}img/btn_criar_conta.png" class="btn_criar_conta"></a>
                        {% endif %}
                    </div>
                </div>
            </div>
            <div id="conteudo_pagina">
                <div align="center">
                    <div class="container">
                    {% block conteudo_pagina %}
                    {% endblock %}
                    </div>
                </div>
            </div>  
            <br clear="all">
            <div class="rodape">
                <div align="center">
                    <div class="container_footer">
                        <div id="menu">
                            <h4>Multiplikação</h4>
                            <a href="/login/">Acessar</a><br/>
                            <a href="/registrar/">Criar conta</a><br/>
                        </div>
                        <div id="menu">
                            <h4>Sobre a empresa</h4>
                            Quem somos<br/>
                            Nosso time<br/>
                            Trabalhe com a gente<br/>
                        </div>
                        <div id="menu">
                            <h4>Conectividade</h4>
                            Facebook<br/>
                            Twitter<br/>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </body>
</html>

有人可以帮助我吗?我真的不知道该尝试什么。=(

提前感谢大家!

4

3 回答 3

1

这是一个 Fiddle 修改了您的标记以实现粘性页脚:

http://jsfiddle.net/2MXvP/1/

我使用的技术是这个:http ://www.cssstickyfooter.com/

重大变化是:

  • .rodape元素已在标记中移动,因此它是.geral.
  • .rodape具有与其高度相等的负上边距。
  • .geral有一个新的子元素 ,.main它的底部填充等于 的高度.rodape

我可能也做了一些其他的 CSS 更改,但仅限于.rodape,.geral.main.

如果您查看我在上面链接的http://www.cssstickyfooter.com/,您应该能够弄清楚它是如何工作的。该页面上有一些关于 IE 和 Opera 兼容性的注释,我没有在我的 Fiddle 中实现,我只在 Chrome 中进行了测试。

于 2012-06-11T05:16:45.580 回答
0

简单的:

position: absolute;从您的 css 中删除(上面 css 的第 189 行)。

您的页脚覆盖内容的原因是因为它的定位是绝对的,因此将其排除在内容的正常流动之外。一旦你删除了上面提到的行,.rodape 将默认静态定位 - 然后它将考虑它之前的元素(例如#conteudo_pagina)并将其放置在它们之后(不覆盖它们)。

你可能想知道的一件事:

<br clear="all">使用clear,一个你不想在你的 css 中使用的不推荐使用的 HTML 属性。尝试使用 ABCaesar 建议的填充。

于 2012-06-11T04:54:06.337 回答
0

听起来您希望页脚始终可见,但您不希望内容的最底部被它覆盖。如果是这种情况,您可以在 .geral 类中添加一个 padding-bottom 属性。

不幸的是,我不确定哪个是您的页脚,并且您的 CSS 中没有任何内容可以真正帮助我弄清楚,但无论如何,这里有一个示例,假设您的页脚高 200 像素:

.geral {padding-bottom:200px}

应该给你确切的空间来查看页脚而不覆盖任何东西。

编辑 如果您希望它始终可见,但不掩盖文本,请从 .geral 中取出 .rodape 并将其放在 body 标记内。你的 html 现在应该是这样的:

<html>
    <head>
        <title>Site</title>
        <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/style1.css">
    </head>
    <body>
        <div class="rodape">
             <!-- rodape content -->
        </div>
        <div class="geral">
             <!-- geral content -->
        </div>
    </body>
</html>

将此样式添加到您的 CSS

.rodape {width:100%; height:200px; position:fixed;}
.geral {padding-bottom:200px;}

我认为这会给你带来你想要的效果。

于 2012-06-11T03:30:53.827 回答