所謂 “Sticky Footer”,并不是什么新的前端概念和技術(shù),它指的就是一種網(wǎng)頁效果:如果頁面內(nèi)容不足夠長時(shí),頁腳固定在瀏覽器窗口的底部;如果內(nèi)容足夠長時(shí),頁腳固定在頁面的最底部。但如果網(wǎng)頁內(nèi)容不夠長,置底的頁腳就會(huì)保持在瀏覽器窗口底部。
實(shí)現(xiàn)
方法
1. 將內(nèi)容部分的底部外邊距設(shè)為負(fù)數(shù)
這是個(gè)比較主流的用法,把內(nèi)容部分最小高度設(shè)為100%,再利用內(nèi)容部分的負(fù)底部外邊距值來達(dá)到當(dāng)高度不滿時(shí),頁腳保持在窗口底部,當(dāng)高度超出則隨之推出的效果。
<body> <div class="wrapper"> content <div class="push"></div> </div> <footer class="footer"></footer></body>html, body { height: 100%; margin: 0;}.wrapper { min-height: 100%; /* 等于footer的高度 */ margin-bottom: -50px;}.footer,.push { height: 50px;}
這個(gè)方法需要容器里有額外的占位元素(如.push)
需要注意的是.wrapper的margin-bottom值需要和.footer的負(fù)的height值保持一致,這一點(diǎn)不太友好。
2. 將頁腳的頂部外邊距設(shè)為負(fù)數(shù)
既然能在容器上使用負(fù)的margin bottom,那能否使用負(fù)margin top嗎?當(dāng)然可以。
給內(nèi)容外增加父元素,并讓內(nèi)容部分的底部內(nèi)邊距與頁腳高度的值相等。
<body> <div class="content"> <div class="content-inside"> content </div> </div> <footer class="footer"></footer></body>html, body { height: 100%; margin: 0;}.content { min-height: 100%;}.content-inside { padding: 20px; padding-bottom: 50px;}.footer { height: 50px; margin-top: -50px;}
不過這種方法和上一種一樣,都需要額外添加不必要的html元素。
3. 使用flexbox彈性盒布局
以上三種方法的footer高度都是固定的,通常來說這不利于網(wǎng)頁布局:內(nèi)容會(huì)改變,它們都是彈性的,一旦內(nèi)容超出固定高度就會(huì)破壞布局。所以給footer使用flexbox吧,讓它的高度可以變大變小變漂亮~( 主站蜘蛛池模板: 乐安县| 大邑县| 平谷区| 上饶县| 北安市| 五寨县| 社会| 叙永县| 侯马市| 洪江市| 新绛县| 太白县| 佳木斯市| 高密市| 麦盖提县| 珲春市| 六枝特区| 汉川市| 阳朔县| 南丰县| 四川省| 安陆市| 苍溪县| 海安县| 乐平市| 桑日县| 呼伦贝尔市| 黑河市| 尚志市| 肃北| 万全县| 曲松县| 永新县| 铜陵市| 上栗县| 华坪县| 繁峙县| 龙游县| 富宁县| 山丹县| 北票市|