麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > CSS > 正文

淺談css sticker-footer 布局

2024-07-11 09:07:56
字體:
來源:轉載
供稿:網友

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

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

// html<body>    <div id="sticker">        <div class="sticker-con">我是內容</div>    </div>    <div class="footer">我是腳</div></body>
// csshtml,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、嵌套層級很深,無法直接從上級繼承 百分比高度的

第一種方法:給需要的 sticker-footer 創建一個 wrapper

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

3. 當無法用百分比獲取高度時,也可通過js方式獲得

    //css樣式同第一種, 只是 sticker 的 min-height 用css獲取    <body>        <div id="sticker">            <div class="sticker-con">我是內容</div>        </div>        <div class="footer">我是腳</div>    </body>    var sticker = document.querySelector('#sticker');    var h = document.body.clientHeight;    sticker.style.minHeight = h - 44 + 'px';    //這種方式也可應對一些特殊情況,比如有頭部導航欄的情況,可以靈活的處理 min-height:

4. 強大的 flex 布局 flex-direction:column

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

sticker: flex:1; 占據除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">我是內容</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';   // 減去頭部導航欄高度</script></html>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到CSS教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 爱操av| 污黄视频在线观看 | 亚洲精品欧美在线 | 黄视频网站免费 | 九九热视频免费 | 一级裸体视频 | 欧美成人免费在线视频 | 黄色一级片免费在线观看 | 黄色电影免费网址 | 香蕉久久久久 | 国产日韩欧美一区 | 国产毛片网 | 一级在线视频 | 中文字幕欧美日韩 | 亚洲性生活免费视频 | 亚洲视频在线网 | 羞羞的小视频 | 欧美一级高潮片免费的 | 亚洲第一激情 | 久久久久国产成人免费精品免费 | 精品国产91久久久久久浪潮蜜月 | 亚洲婷婷日日综合婷婷噜噜噜 | 精品一区二区三区在线观看国产 | 亚洲片在线 | 禁漫天堂久久久久久久久久 | 中文字幕在线观看视频一区 | 国产精品久久久久久久久久尿 | 黄色网址在线播放 | 日韩av片在线免费观看 | 一级在线观看视频 | 亚洲视色| 91丝袜| 久久久久久久久免费 | 亚洲一级成人 | 免费久久久 | 毛片在线免费观看网址 | 日韩 综合| 在线a亚洲视频播放在线观看 | 久草在线播放视频 | 羞羞色院91精品网站 | 麻豆视频免费网站 |