欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談css sticker-footer 布局

  發(fā)布時(shí)間:2017-11-06 14:46:48   作者: 大桔子   我要評(píng)論
本篇文章主要介紹了css sticker-footer 布局,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

在網(wǎng)頁(yè)設(shè)計(jì)中,Sticky footers設(shè)計(jì)是最古老和最常見(jiàn)的效果之一,大多數(shù)人都曾經(jīng)經(jīng)歷過(guò)。它可以概括如下:如果頁(yè)面內(nèi)容不夠長(zhǎng)的時(shí)候,頁(yè)腳塊粘貼在視窗底部;如果內(nèi)容足夠長(zhǎng)時(shí),頁(yè)腳塊會(huì)被內(nèi)容向下推送。這種效果不僅是無(wú)處不在,很受歡迎,而且實(shí)現(xiàn)起來(lái)看上去也非常容易。但實(shí)際上實(shí)現(xiàn)起來(lái)要比預(yù)期花的時(shí)間更多。此外,在CSS2.1中的解決方案中幾乎都要給頁(yè)腳設(shè)置一個(gè)固定高度。這是很脆弱的,很少是可行的。實(shí)際上實(shí)現(xiàn)這個(gè)效果過(guò)于復(fù)雜,而且還需要增加特定的標(biāo)記和一些Hack手段。在CSS2.1中受到一些限制,但使用現(xiàn)代CSS,我們能把這個(gè)效果做得更好,那要如何做呢?

1、嵌套層級(jí)不深,可直接繼承自 body width:100%; height:100%;

// html
<body>
    <div id="sticker">
        <div class="sticker-con">我是內(nèi)容</div>
    </div>
    <div class="footer">我是腳</div>
</body>
// css
html,body{
    width:100%;
    height:100%;
}
#sticker{
    width:100%;
    min-height:100%;
}
.sticker-con{
    padding-bottom:40px;    // 40px 為 footer 本身高度
}
.footer{
    margin-top:-40px;  // 40px 為 footer 本身高度
}

2、嵌套層級(jí)很深,無(wú)法直接從上級(jí)繼承 百分比高度的

第一種方法:給需要的 sticker-footer 創(chuàng)建一個(gè) wrapper

   <body>
        <div id="wrapper">
            <div id="sticker">
                <div class="sticker-con">我是內(nèi)容</div>
            </div>
            <div class="footer">我是腳</div>
        </div>
    </body>
    .wrapper{
        position:fixed;  // 這樣 wrapper 就可以直接從 html,body 繼承 百分比高度了
        overflow:auto;   // 當(dāng)高度超過(guò) 100% ;時(shí)產(chǎn)生滾動(dòng)條
        width:100%;
        height:100%;     // 繼承自 body
    }
    // wrapper 內(nèi)部包裹的結(jié)構(gòu),就如上所示了,css樣式也一樣

3. 當(dāng)無(wú)法用百分比獲取高度時(shí),也可通過(guò)js方式獲得

    //css樣式同第一種, 只是 sticker 的 min-height 用css獲取

    <body>
        <div id="sticker">
            <div class="sticker-con">我是內(nèi)容</div>
        </div>
        <div class="footer">我是腳</div>
    </body>


    var sticker = document.querySelector('#sticker');
    var h = document.body.clientHeight;
    sticker.style.minHeight = h - 44 + 'px';

    //這種方式也可應(yīng)對(duì)一些特殊情況,比如有頭部導(dǎo)航欄的情況,可以靈活的處理 min-height:

4. 強(qiáng)大的 flex 布局 flex-direction:column

將wrapper容器 display:flex; flex-direction:column

sticker: flex:1; 占據(jù)除footer以外的剩余空間

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
    <title>sticker footer</title>
</head>
<style>
    html,body{
        width: 100%;
        height: 100%;
        background-color: #ccc;
        margin:0;
        padding: 0;
        
    }
    header{
        height:44px;
        width: 100%;
        text-align: center;
        line-height: 44px;
    }
    #wrapper{
        display: flex;
        flex-direction: column;
        width: 100%;
        /*height: 100%;*/
    }
    #sticker{
        background-color: red;
        flex: 1;
    }
    #sticker .sticker-con{
        padding-bottom: 40px;
    }
    .footer{
        background-color: green;
        height: 40px;
    }
</style>    
<body>

    <header>我是頭部</header>
    <div id="wrapper">
        <div id="sticker">
            <div class="sticker-con">我是內(nèi)容</div>
        </div>
        <div class="footer">我是腳</div>
    </div>
    
</body>
<script>
    var wrapper = document.querySelector('#wrapper');
    var h = document.body.clientHeight;
    wrapper.style.minHeight = h - 44 + 'px';   // 減去頭部導(dǎo)航欄高度

</script>
</html>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解css布局實(shí)現(xiàn)左中右布局的5種方式

    這篇文章主要介紹了詳解css布局實(shí)現(xiàn)左中右布局的5種方式的相關(guān)資料,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-05
  • CSS實(shí)現(xiàn)多行多列的布局的實(shí)例代碼

    這篇文章主要介紹了CSS實(shí)現(xiàn)多行多列的布局的實(shí)例代碼,需要的朋友可以參考下
    2018-02-28
  • css Flex布局的可伸縮性(Flexibility)

    這篇文章主要介紹了css Flex布局的可伸縮性(Flexibility)的相關(guān)資料,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-07
  • 淺談css網(wǎng)頁(yè)的幾種布局

    這篇文章主要介紹了淺談css網(wǎng)頁(yè)的幾種布局的相關(guān)資料,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-08
  • 如何理解 CSS 布局和塊級(jí)格式上下文

    這篇文章主要介紹了如何理解 CSS 布局和塊級(jí)格式上下文的相關(guān)資料,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-14
  • 詳解使用CSS3的@media來(lái)編寫(xiě)響應(yīng)式的頁(yè)面

    這篇文章主要介紹了詳解使用CSS3的@media來(lái)編寫(xiě)響應(yīng)式的頁(yè)面,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-01
  • CSS布局方案小結(jié)

    這篇文章主要介紹了CSS布局方案小結(jié),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2018-03-13

最新評(píng)論