摘要:寫在最前是的一種布局場景。頁腳永遠固定在頁面的底部,頁面內(nèi)容不夠長的時候頁腳黏在視窗底部,內(nèi)容足夠長時會被向下移動。老式門戶網(wǎng)站由于內(nèi)容過短常常版權(quán)頁腳前移,移動端特定布局也需要來解決這些問題。
寫在最前:Sticky Footer是css的一種布局場景。頁腳footer永遠固定在頁面的底部,頁面內(nèi)容不夠長的時候頁腳黏在視窗底部,內(nèi)容足夠長時會被向下移動。老式門戶網(wǎng)站由于內(nèi)容過短常常版權(quán)頁腳前移,移動端特定布局也需要Sticky Footer來解決這些問題。
一、利用絕對定位和padding完美兼容已知底部高度,利用絕對定位和padding完美兼容
https://codepen.io/qietuniu/pen/KYxMwv
去除標(biāo)簽多余的margin,padding,給html和body設(shè)置100%
外部容器min-height為100%,使得內(nèi)容少時也能撐開
主體內(nèi)容設(shè)置padding-bottom,這個為底部的高度,可以使內(nèi)容完全顯示否則會使主體內(nèi)容有底部面積大小區(qū)域被遮擋
footer高度固定,進行絕對定位
DOM節(jié)點
樣式代碼
html, body { height: 100%; } .container { position: relative; min-height: 100%; height: auto !important; height: 100%; /*IE6不識別min-height*/ } .section { padding-bottom: 60px; } .footer { position: absolute; width: 100%; height: 60px; bottom: 0px; }二、利用padding-bottom和margin-top完美兼容
已知底部高度,利用padding-bottom和margin-top完美兼容
https://codepen.io/qietuniu/pen/dLqpdR
去除標(biāo)簽多余的margin,padding,給html和body設(shè)置100%;
外部容器min-height為100%,使得內(nèi)容少時也能撐開
主體內(nèi)容設(shè)置padding-bottom,這個為底部的高度
footer高度固定,margin-top的值為高度負值,footer與container同級。
DOM節(jié)點
樣式代碼
html, body { height: 100%; } .container { min-height: 100%; height: auto !important; height: 100%; /*IE6不識別min-height*/ } .section { padding-bottom: 60px; } .footer { position: relative; margin-top: -60px; width: 100%; height: 60px; }三、新增塊級元素填補頁腳遮擋
已知底部高度,新增塊級元素填補頁腳遮擋,實現(xiàn)完美兼容
https://codepen.io/qietuniu/pen/dLqpez
去除標(biāo)簽多余的margin,padding,給html和body設(shè)置100%;
外部容器min-height為100%,使得內(nèi)容少時也能撐開
主體內(nèi)容設(shè)置margin-bottom,值為底部的高度的負值
footer位置在與container同級,section同級新增塊元素.底部和新增塊元素高度一致
DOM節(jié)點
樣式代碼
html, body { height: 100%; } .container { min-height: 100%; height: auto !important; height: 100%; /*IE6不識別min-height*/ margin-bottom: -60px; } .placeholder, .footer { height: 60px; }四、用表格屬性實現(xiàn)完美兼容
底部不定高度,利用表格屬性實現(xiàn)完美兼容
https://codepen.io/qietuniu/pen/QPVKVR
去除標(biāo)簽多余的margin,padding,給html和body設(shè)置100%
外部容器min-height為100%;使得內(nèi)容少時也能撐開,display屬性設(shè)置為table
主體內(nèi)容display屬性設(shè)置為table-row,高度設(shè)置為100%
DOM節(jié)點
樣式代碼
html, body { height: 100%; } .container { display: table; width: 100%; min-height: 100%; } .section { display: table-row; height: 100%; }五、calc計算
vh存在兼容有限,一般在移動端使用。100vh可代替body和html的100%來拿到視口高度實現(xiàn)效果
https://codepen.io/qietuniu/pen/NmLRmV
外部容器使用calc計算,100vh減去底部高度
footer位置與container同級,高度固定
主體內(nèi)容display屬性設(shè)置為table-row,高度設(shè)置為100%
DOM節(jié)點
樣式代碼
.container { min-height: calc(100vh - 60px); } .footer { height: 60px; }六、flex彈性布局
底部不定高度,利用flex彈性布局實現(xiàn)效果,兼容性有限建議移動端使用
https://codepen.io/qietuniu/pen/EJeNYW
外部容器display設(shè)為flex彈性布局,flex-flow設(shè)置方向為column縱向并設(shè)置最小高度為100vh
主體內(nèi)容flex屬性設(shè)為1
DOM節(jié)點
樣式代碼
.container { display: flex; flex-flow: column; min-height: 100vh; } .section { flex: 1 }七、Grid網(wǎng)格布局
底部不定高度,利用Grid網(wǎng)格實現(xiàn)效果,兼容性有限建議移動端使用
https://codepen.io/qietuniu/pen/EJeNYW
外部容器display設(shè)為grid網(wǎng)格布局,grid-template-rows設(shè)置一個網(wǎng)格的行,fr單位可以幫助我們創(chuàng)建一個彈列的網(wǎng)格軌道,它代表了網(wǎng)格容器中可用的空間(就像Flexbox中無單位的值)
header頭部的位置放在主體內(nèi)容內(nèi)部
footer中g(shù)rid-row-start和grid-row-end屬性設(shè)置單元格開始和結(jié)束的行線
DOM節(jié)點
樣式代碼
.container { min-height: 100vh; display: grid; grid-template-rows: 1fr auto; } .footer { grid-row-start: 2; grid-row-end: 3; }結(jié)語
以上方法各有優(yōu)劣,根據(jù)使用場景選擇合適的方案
場景 | 方案 |
---|---|
兼容性要求高 | ①②③ |
底部不固定高度 | ④⑥⑤⑦ |
PC端建議 | ①② |
移動端建議 | ①②⑥ |
完整代碼
尊重原創(chuàng),如需轉(zhuǎn)載請注明出處!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/114512.html
摘要:寫在最前是的一種布局場景。頁腳永遠固定在頁面的底部,頁面內(nèi)容不夠長的時候頁腳黏在視窗底部,內(nèi)容足夠長時會被向下移動。老式門戶網(wǎng)站由于內(nèi)容過短常常版權(quán)頁腳前移,移動端特定布局也需要來解決這些問題。 showImg(https://segmentfault.com/img/bVbrIV9?w=200&h=354); 寫在最前:Sticky Footer是css的一種布局場景。頁腳foot...
摘要:本章集中介紹四個重要的小功能回到頂部浮動按鈕矢量圖標(biāo)頁腳沉底和粘性側(cè)邊欄。因為我們想在全站都擁有這個按鈕,所以將剛寫好的模塊引用到中在后面引入注意模塊用到了,因此要在后面引入。 本章集中介紹四個重要的小功能:回到頂部浮動按鈕、矢量圖標(biāo)、頁腳沉底和粘性側(cè)邊欄。 這幾個功能與Django基本沒啥關(guān)系,更多的是前端知識,但是對博客網(wǎng)站都很重要,問的讀者也比較多,因此也集中講一下好了。 回到頂...
摘要:怎樣才能讓粘性定位起作用粘性定位有兩個主要部分,粘性元素和粘性容器。這是粘性元素可以浮動的最大區(qū)域。最好是在以粘性容器底部為自然位置的元素上使用它。 翻譯:瘋狂的技術(shù)宅原文:https://medium.com/@elad/css-... 本文首發(fā)微信公眾號:jingchengyideng歡迎關(guān)注,每天都給你推送新鮮的前端技術(shù)文章 瀏覽器對 CSS粘性定位有著非常好的支持,但很多...
摘要:怎樣才能讓粘性定位起作用粘性定位有兩個主要部分,粘性元素和粘性容器。這是粘性元素可以浮動的最大區(qū)域。最好是在以粘性容器底部為自然位置的元素上使用它。 翻譯:瘋狂的技術(shù)宅原文:https://medium.com/@elad/css-... 本文首發(fā)微信公眾號:jingchengyideng歡迎關(guān)注,每天都給你推送新鮮的前端技術(shù)文章 瀏覽器對 CSS粘性定位有著非常好的支持,但很多...
閱讀 3202·2021-11-25 09:43
閱讀 3413·2021-11-11 16:54
閱讀 840·2021-11-02 14:42
閱讀 3754·2021-09-30 09:58
閱讀 3668·2021-09-29 09:44
閱讀 1284·2019-08-30 15:56
閱讀 2103·2019-08-30 15:54
閱讀 2990·2019-08-30 15:43