CSS布局中的sticky footers布局

举个栗子: 你在做一个类似博客的页面,由于数据有很多条,需要做一个分页固定在底部居中。

这个听上去so esay,似乎只需要display:fixed就可以解决问题了。

可是事实上,当数据较多时,脱离标准流的分页栏会覆盖在一条条的数据上面。

所以,我们的真正的需求应该是,当数据较少时,我们的分页栏固定在页面底部居中

当数据足够多,超过一页时,我们的分页栏应该乖乖在底部居中,而不是无视任何内容,傻傻的固定的定位在那里。


第一种  css

效果图(使用任何地方 大笑


<div class="detail">
      <div class="detail-wrapper clearfix">  //clearfix 重要地方
        <div class="detail-main">
          <p>111</p>
          <p>111</p>
          <p>111</p>
          <p>111</p><p>111</p>
          <p>111</p>
          <p>111</p>
          <p>111</p><p>111</p>
        </div>
      </div>
      <div class="detail-close">x</div>
</div>
.detail
    position fixed
    width 100%
    height 100%
    top 0
    left 0
    z-index 99
    overflow auto
    background-color rgba(7,17,27,0.8)
    color #fff
    .detail-wrapper
      min-height 100%
      .detail-main
        margin-top 50px
        padding-bottom 65px
    .detail-close
      position relative
      width 32px
      height 32px
      font-size 32px
      margin -65px auto 0 auto
      clear both  //重要地方

第二种  flex

效果图(像上面的弹框 用flex会有些问题,其他页面可以用flex布局)


<body>
<div class="wrap">
	<!-- 内容区域 -->
	<div class="content">
		<h2>Sticky-footer-flexbox布局方法</h2>
		<p>经典套路相比,首先是 HTML 部分,内容区域 content 不再需要 wrap 容器然后 CSS 部分减肥成功,仅仅使用四行代码,就解决了曾经困扰了一代人的难题而且使用 Flexbox,就不需要限定 footer 的高度,让页面布局更加灵活当然缺点也是显而易见的,只有 IE10 及以上的浏览器才支持 flex 布局</p>
	</div>
	<!-- 底部 -->
	<div class="footer">
		<p>这是页脚</p>
	</div>
</div>
</body>
                body,html{
			height: 100%;
		}
		.wrap {
			display: flex;
			flex-direction: column;
			height: 100%;
		}
		.content {
			flex: 1;
			background: #eee;
		}
		.footer {
			background: red;
		}


猜你喜欢

转载自blog.csdn.net/yang295242361/article/details/79485927
今日推荐