javascript - 具有动态添加内容的粘性页脚

标签 javascript jquery html css

我已经搜索了很长时间并尝试了几种不同的方法,但找不到解决方案。

我希望我的页脚始终位于页面底部,但不一定总是显示。因此,每当添加足够的帖子时,我希望页面继续增长,但页脚将始终位于底部。您可以在下面的代码片段中的示例中看到它是如何工作的。
但是,我不希望帖子位于左侧,或者从顶部开始。每当我尝试使用绝对定位移动 page-wrap div 时,一切都会搞砸。

最初灵感来自这篇文章:https://css-tricks.com/snippets/css/sticky-footer/

$(".btn").click(function() {
  var post = $('.status-box').val();
  $("<li>").text(post).prependTo(".posts");
});
html,
body {
  height: 100%;
}
.page-wrap {
  min-height: 100%;
  /* equal to footer height */
  margin-bottom: -200px;
}
.page-wrap:after {
  content: "";
  display: block;
}
.site-footer,
.page-wrap:after {
  /* .push must be the same height as footer */
  height: 200px;
}
.site-footer {
  background: orange;
}
.container {
  width: 520px;
  margin-top: 20px;
}
.button-group {
  margin-bottom: 20px;
}
.counter {
  display: inline;
  margin-top: 0;
  margin-bottom: 0;
  margin-right: 10px;
}
.posts {
  clear: both;
  list-style: none;
  padding-left: 0;
  width: 100%;
}
.posts li {
  background-color: #fff;
  border: 1px solid #d8d8d8;
  padding-top: 10px;
  padding-left: 20px;
  padding-right: 20px;
  padding-bottom: 10px;
  margin-bottom: 10px;
  word-wrap: break-word;
  min-height: 42px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="page-wrap">
  <div class="container">
    <form>
      <div class="form-group">
        <textarea class="form-control status-box" rows="2" placeholder="What's on your mind?"></textarea>
      </div>
    </form>
    <div class="button-group pull-right">
      <p class="counter">140</p>
      <a href="#" class="btn btn-primary">Post</a>
    </div>
    <ul class="posts">
    </ul>
  </div>
</div>

<div class="site-footer">
</div>

最佳答案

为了让你的内容居中,你可以给 .page-wrap 一个宽度和自动左边距和右边距:

.page-wrap {
  ...
  width: 50%;
  margin: 0 auto -200px auto;
}

$(".btn").click(function() {
  var post = $('.status-box').val();
  $("<li>").text(post).prependTo(".posts");
});
html,
body {
  height: 100%;
}
.page-wrap {
  min-height: 100%;
  /* equal to footer height */
  
  width: 50%;
  background: lightblue;
  margin: 0 auto -200px auto;
}
.page-wrap:after {
  content: "";
  display: block;
}
.site-footer,
.page-wrap:after {
  /* .push must be the same height as footer */
  height: 200px;
}
.site-footer {
  background: orange;
}
.container {
  width: 520px;
  margin-top: 20px;
}
.button-group {
  margin-bottom: 20px;
}
.counter {
  display: inline;
  margin-top: 0;
  margin-bottom: 0;
  margin-right: 10px;
}
.posts {
  clear: both;
  list-style: none;
  padding-left: 0;
  width: 100%;
}
.posts li {
  background-color: #fff;
  border: 1px solid #d8d8d8;
  padding-top: 10px;
  padding-left: 20px;
  padding-right: 20px;
  padding-bottom: 10px;
  margin-bottom: 10px;
  word-wrap: break-word;
  min-height: 42px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="page-wrap">
  <div class="container">
    <form>
      <div class="form-group">
        <textarea class="form-control status-box" rows="2" placeholder="What's on your mind?"></textarea>
      </div>
    </form>
    <div class="button-group pull-right">
      <p class="counter">140</p>
      <a href="#" class="btn btn-primary">Post</a>
    </div>
    <ul class="posts">
    </ul>
  </div>
</div>

<div class="site-footer">
</div>

关于javascript - 具有动态添加内容的粘性页脚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30186561/

相关文章:

javascript - 将事件类添加到当前事件链接

javascript - 如何从某个索引开始映射嵌套 json 并将其映射回该索引 1 值

javascript - 如何在 ajax 请求中将多组数据作为单个变量发布?

javascript - 使用 Jquery 加载方法和 Slick 插件

html - 如何使用纯 JavaScript 创建 Material 图标

javascript - 如何将(格式良好的)字符串变量分配给 &lt;input type ="date"/> 值

html - 即使指定 "repeat-x", body 上的图像也不重复

javascript - 如果工作人员很忙,是否仍会收到发送给网络工作人员的消息?

php - 在 Javascript 中隐藏和显示文本框

jquery - 使用 jquery ajax 调用与 dotnetnuke