美文网首页让前端飞
CSS多种方法实现页面底部固定

CSS多种方法实现页面底部固定

作者: 67a920c75520 | 来源:发表于2019-01-18 18:28 被阅读5次

    当我们在写页面时经常会遇到页面内容少的时候,footer会戳在页面中间或什么?反正就是不在最底部显示,反正就是很难看,下面要讲的布局就是解决如何使元素粘住浏览器底部,

    方法一:footer高度固定+绝对定位

    html

    <div class="dui-container">
    <header>Header</header>
    <main>Content</main>
    <footer>Footer</footer>
    </div>
    
    

    CSS

    .dui-container{
    position: relative;
    min-height: 100%;
    }
    main {
    padding-bottom: 100px;
    }
    header, footer{
    line-height: 100px;
    height: 100px;
    }
    footer{
    width: 100%;
    position: absolute;
    bottom: 0
    }
    
    

    方法二:在主体content上的下边距增加一个负值等于底部高度

    html

    <header>Header</header>
    <main>Content</main>
    <footer>Footer</footer>
    
    

    CSS

    html, body {
    height: 100%;
    }
    main {
    min-height: 100%;
    padding-top: 100px;
    padding-bottom: 100px;
    margin-top: -100px;
    margin-bottom: -100px;
    }
    header, footer{
    line-height: 100px;
    height: 100px;
    }
    
    

    方法三:将页脚的margin-top设为负数

    html

    <header>Header</header>
    <main>Content</main>
    <footer>Footer</footer>
    
    

    CSS

    main {
    min-height: 100%;
    padding-top: 100px;
    padding-bottom: 100px;
    }
    header, footer{
    line-height: 100px;
    height: 100px;
    }
    header{
    margin-bottom: -100px;
    }
    footer{
    margin-top: -100px;
    }
    
    

    方法四: 通过设置flex,将footer的margin-top设置为auto

    html

    <header>Header</header>
    <main>Content</main>
    <footer>Footer</footer>
    
    

    CSS

    body{
    display: flex;
    min-height: 100vh;
    flex-direction: column;
    }
    header,footer{
    line-height: 100px;
    height: 100px;
    }
    footer{
    margin-top: auto;
    }
    
    

    方法五: 通过函数calc()计算内容的高度

    html代码

    <header>Header</header>
    <main>Content</main>
    <footer>Footer</footer>
    
    

    CSS代码

    main{
    min-height: calc(100vh - 200px); /* 这个200px是header和footer的高度 */
    }
    header,footer{
    height: 100px;
    line-height: 100px;
    }
    
    

    方法六: 通过设置flexbox,将主体main设置为flex

    html

    <header>Header</header>
    <main>Content</main>
    <footer>Footer</footer>
    
    

    CSS代码

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

    方法七: 使用grid布局

    Html代码

    <header>Header</header>
    <main>Content</main>
    <footer>Footer</footer>
    
    

    CSS代码

    html {
    height: 100%;
    }
    body {
    min-height: 100%;
    display: grid;
    grid-template-rows: auto 1fr auto;
    }
    .footer {
    grid-row-start: 3;
    grid-row-end: 4;
    }
    
    

    方法八: display-*

    html

    <header>Header</header>
    <main>Content</main>
    <footer>Footer</footer>
    
    

    CSS

    body {
      min-height: 100%;
      display: table;
      width: 100%;
    }
    main {
      display: table-row;
      height: 100%;
    }
    

    相关文章

      网友评论

        本文标题:CSS多种方法实现页面底部固定

        本文链接:https://www.haomeiwen.com/subject/enfodqtx.html