广告位联系
返回顶部
分享到

css把元素固定在容器底部的四种方式介绍

css 来源:未知 作者:酷站 发布时间:2022-06-19 14:36:48 人浏览
摘要

前几天被人问,「如何把元素固定在容器底部」。(本来想直接把 demo 地址给他,结果没找到,那么今天我们来补一下) Demo 地址:http://jsrun.net/vIzKp/edit 想法思路 如果是页面底部,我

前几天被人问,「如何把元素固定在容器底部」。(本来想直接把 demo 地址给他,结果没找到,那么今天我们来补一下)

Demo 地址:http://jsrun.net/vIzKp/edit

想法&思路

如果是页面底部,我们可以直接 position: fixed;bottom: 0; 基于浏览器定位直接实现。

但是他要的效果是基于父级容器,那么我们必须要使用其他手段来定位了

  • relative 来限制 absolute,然后 bottom: 0,但是在内容过长的时候会导致显示异常。所以我们需要做内部滚动。
  • 如果做内部滚动,那么我们只要可以撑开盒子即可。不需要绝对定位了

使用 flex 实现

  • 父级使用 flex 布局,column 垂直排列。
  • 父级定高(height、maxHeight),.content 子级 flex:auto; 自动撑开。 或者 .content 做高度限制。
  • footer 可以使用 absolute 加 padding 。或者完全依赖文档流布局都可以

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    .demo1{

          position: relative;

          padding-bottom: 40px;

          display: inline-flex;

          flex-direction: column;

      }

      .demo1 .footer{

          position: absolute;

          bottom: 0;

          left: 0;right: 0;

          margin: 0;

      }

      .demo1 .content{

          overflow: auto;

      }

calc 实现

如果不使用 flex ,那么我们可以用 calc 来减去 header 和 footer 空间。

1

2

3

4

5

6

7

8

9

<style>

    .demo3{

        position: relative;

    }

    .demo3 .content{

        overflow: auto;

        max-height: calc(100% - 40px);

    }

</style>

absolute 实现

如果 calc 兼容性不太好,那么还可以使用 absolute 将所有元素都脱离文档流。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<style>

    .demo4{

        position: relative;

    }

    .demo4 .header,.demo4 .footer{

        position: absolute;

        margin: 0;

        top:0;left:0 ;right:0;

    }

    .demo4 .footer{

        top: auto;

        bottom: 0;

    }

    .demo4 .content{

        overflow: auto;

        height: 100%;

        padding-top: 30px;

        padding-bottom: 30px;

        margin: 0;

        box-sizing: border-box;

    }

</style>


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计