即使页面向下扩展,如何将网站页脚保持在底部

时间:2016-11-12 20:23:32

标签: html css

我的网站页脚出现问题。每当在页面下方添加更多内容并且滚动条可用时,用户滚动并且页脚不在底部。页脚处于绝对位置,并在用户向下滚动之前整齐地显示在屏幕底部。如果用户不必向下滚动,则会发现这一点,但显然某些页面比其他页面长。所有代码如下所示。使用固定显然不会做我想要的。我希望用户向下滚动到页面底部以找到其中的页脚,就像大多数网站一样。

HTML:

<div id="topbox">

<img style="position:relative;left:12px;top:3.5px;width:121.55px;
height:42.5px;">

<div id="box" class="boxa">
text1
</div>

<div id="box" class="boxb">
text2
</div>

</div>

<div style="position:absolute;top:10px;right:0px;">
<img> 
</div>

<div id="textbox" style="top:40px;left:90px;margin-right:500px;">Imagine a lot of text here, possibly enough to cause the page to overflow downwards.</div>

<img style="width:15%;height:15%;float:right;z-index:1;
position:relative;bottom:200px;margin-right:100px;">

<div class="backgroundimage"></div>

<div id="footer"><p style="position:relative;top:39px;left:5px;font-size:80%;">Footer text.</p></div>

CSS:

#box {
position:relative;
}


.boxa {
left:173px;
bottom:34px;
width:249px;
}


.boxb {
left:430px;
bottom:55px;
width:90px;
}


#textbox {
position:relative;
background:rgba(255,255,255,1);
padding:7.5px;
font-family:arial;
z-index:1;
//box-shadow:0 0 30px rgba(000,000,000,1);
border-radius:15px;
line-height:25px;
font-size:90%;
}


#topbox {
background-color:white;
width:50000px;
height:50px;
position:relative;
bottom:8px;
right:8px;
padding-right:20px;
}


@media screen and (min-width:1008px) {

#textbox {
    width:auto;
    }
}


@media screen and (max-width:1006px) {

#textbox {
    width:auto;
}
}


#footer {
background-color:gray;
height:75px;
position:absolute;
bottom:0px;
left:0px;
color:lightgray;
font-family:arial;
width:100%;
}


.backgroundimage {
border-bottom:300px solid rgb(247,145,47);
border-right:3000px solid transparent;
z-index:0;
position:relative;
right:110px;
bottom:70px;
}

请仔细阅读我的代码,了解我的尝试以及一切如何协同工作。我对页面没有任何问题,所以如果有完全与页脚无关的代码,请保持原样。另外请实际阅读我已经说过的内容,这样你就完全了解我想要实现的目标。非常感谢提前。

4 个答案:

答案 0 :(得分:0)

将其设为position:absolute

#footer { 
position:absolute; 
bottom:0; 
left:0;
right:0; 
}

答案 1 :(得分:0)

如果你的意思是一个粘性页脚,它总是位于较低内容的底部位置。当可以看到更多内容时,页脚会再次被分解。

一种方法是使用flexbox。在里面使用一个包装器和两个div。第二个是页脚。然后你给第一个div更多的空间。

此技术适用于所有现代浏览器。

&#13;
&#13;
*{
  padding: 0;
  margin: 0;
}

body {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
}

main {
  flex: 1;
}
&#13;
<body>
  <header>header…</header>
  <main>main…</main>
  <footer>footer…</footer>
</body>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

如果我理解了你想要的东西,试试这个:

.backgroundimage {
  border-bottom: 300px solid rgb(247,145,47);
  z-index: 0;
  position: relative;
  right: 110px;
}

#footer {
  background-color: gray;
  height: 75px;
  bottom: 0;
  left: 0;
  right: 0;
  margin-top: 0px;
  color: lightgray;
  font-family: arial;
  width: 100%;

}

答案 3 :(得分:-1)

包裹div中的所有元素

<body>
  <div> ...all your content... </div>
  <div id"footer"></div>
</body>

jsfiddle link

&#13;
&#13;
#box {
  position: relative;
}

.boxa {
  left: 173px;
  bottom: 34px;
  width: 249px;
}

.boxb {
  left: 430px;
  bottom: 55px;
  width: 90px;
}

#textbox {
  position: relative;
  background: rgba(255, 255, 255, 1);
  padding: 7.5px;
  font-family: arial;
  z-index: 1;
  //box-shadow:0 0 30px rgba(000,000,000,1);
  border-radius: 15px;
  line-height: 25px;
  font-size: 90%;
}

#topbox {
  background-color: white;
  width: 50000px;
  height: 50px;
  position: relative;
  bottom: 8px;
  right: 8px;
  padding-right: 20px;
}

@media screen and (min-width:1008px) {
  #textbox {
    width: auto;
  }
}

@media screen and (max-width:1006px) {
  #textbox {
    width: auto;
  }
}

html {
  height: 100%;
  box-sizing: border-box;
}

body {
  min-height: 100%;
  padding-bottom: 75px;
  /*size of the footer*/
  position: relative;
  margin: 0;
  box-sizing: border-box;
}

#footer {
  background-color: gray;
  height: 75px;
  position: absolute;
  bottom: 0px;
  left: 0px;
  color: lightgray;
  font-family: arial;
  width: 100%;
}

.backgroundimage {
  border-bottom: 300px solid rgb(247, 145, 47);
  border-right: 3000px solid transparent;
  z-index: 0;
  position: relative;
  right: 110px;
  bottom: 70px;
}
&#13;
<div id="mainpart">
  <div id="topbox">

    <img style="position:relative;left:12px;top:3.5px;width:121.55px;
height:42.5px;">

    <div id="box" class="boxa">
      text1
    </div>

    <div id="box" class="boxb">
      text2
    </div>

  </div>

  <div style="position:absolute;top:10px;right:0px;">
    <img>
  </div>

  <div id="textbox" style="top:40px;left:90px;margin-right:500px;">Imagine a lot of text here, possibly enough to cause the page to overflow downwards.</div>

  <img style="width:15%;height:15%;float:right;z-index:1;
position:relative;bottom:200px;margin-right:100px;">

  <div class="backgroundimage"></div>
</div>
<div id="footer">
  <p style="position:relative;top:39px;left:5px;font-size:80%;">Footer text.</p>
</div>
&#13;
&#13;
&#13;