亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > CSS > 正文

詳解網站footer沉底效果的三種解決方案

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

問題背景

很多網站設計一般是兩個部分,content + footer,content里面裝的是網站主體內容,footer里面展示網站的注冊信息等等,因為網站內容高度不定的原因,會出現下面兩種情況:

1.內容較少時,這個footer固定在在頁面的底部。如下所示:

2.內容較長時,footer跟在內容后面滑動,大致表現如下圖紅色框起來的部分:

這個需求在PC端還是很常見的,我在自己的應用中也遇到了這個問題,今天總結了一下實現這種布局的幾個方法。

方法1 使用js計算

為什么第一個就采用js控制的呢,因為實不相瞞,當初我第一次遇到這個問題的時候,直接就使用js去解決的(主要是我知道js肯定能實現的,所以也就沒有花時間去想別的方法)

主要思路是:在頁面加載完成后計算屏幕高度 - content內容真實的高度的值,如果差值大于

footer的高度,就給footer的style加上fixed定位,使它固定在屏幕底部。

demo代碼如下:

<!DOCTYPE html><html><head>    <title>footer沉底效果</title>    <style type="text/css">        div {            margin: 0,            padding: 0;            box-sizing: border-box;            position: relative;        }        html, body {            width: 100%;            height: 100%;        }        #container {            width: 100%;            height: 100%;        }        #content {            background: blue;        }        #footer {            width: 100%;            height: 100px;            background: red;        }        .footer-fixed {            position: fixed;            left: 0;            bottom: 0;        }    </style></head><body><div id="container">    <div id="content"> content </div>    <div id="footer">        footer    </div></div><script type="text/javascript">    let height = document.getElementById('container').clientHeight - document.getElementById('content').clientHeight;    // 這里給footer加上另外的class,使其固定    if (height > 100) document.getElementById('footer').classList.add('footer-fixed');</script></body></html>

本著能使用css解決就絕對不使用js的原則,這個方法雖然最容易想到,但是還是不推薦使用,而且,這段css代碼要獲取clientHeight,將會導致頁面頁面重排和重繪,性能考慮上來說,也不推薦。

方法2 采用flex布局 + min-height

flex布局中的justify-content: space-between;搭配超級好用的min-height,剛好可以滿足在content內容不足的時候,footer的沉底效果

demo代碼如下:

<!DOCTYPE html><html><head>    <title>footer沉底效果</title>    <style type="text/css">        div {            margin: 0;            padding: 0;            box-sizing: border-box;            position: relative;        }        html, body {            width: 100%;            height: 100%;            margin: 0;            padding: 0;        }        #container {            width: 100%;            // 重點代碼            // 雖然不知道container的高度,但是可以設置一個最小高度,這樣有利于布局            min-height: 100%;            display: flex;            flex-direction: column;            justify-content: space-between;        }        #content {            background: blue;        }        #footer {            width: 100%;            height: 100px;            background: red;        }    </style></head><body><div id="container">    <div id="content">         content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>    </div>    <div id="footer">        footer    </div></div></body></html>

min-height實在是超級好用的一個css屬性了,搭配flex輕松實現沉底效果。

方法3 巧用flex + margin-top

這個技巧是在講margin auto的妙用中學到的,在flex格式化上下文中,margin auto會自動去分配剩余空間。這里面我們可以在footer上使用margin-top:auto來達到沉底效果。

<!DOCTYPE html><html><head>    <title>footer沉底效果</title>    <style type="text/css">        div {            margin: 0;            padding: 0;            box-sizing: border-box;            position: relative;        }        html, body {            width: 100%;            height: 100%;            margin: 0;            padding: 0;        }        #container {            width: 100%;            min-height: 100%;            display: flex;            flex-direction: column;        }        #content {            background: blue;        }        #footer {            width: 100%;            height: 100px;            background: red;            margin-top: auto; // 重點代碼        }    </style></head><body><div id="container">    <div id="content">         content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>        content  <br>    </div>    <div id="footer">        footer    </div></div></body></html>

總結:以上三種方法都屬于沒什么副作用的,其實實現這種沉底效果還有別的實現方式,但是對其他布局有影響,這里不贅述,之后有了更好的解決方案,再來更新。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品国产91久久久| 欧美一区二区三区精品电影| 国产美女被下药99| 一区二区三区高清国产| 精品丝袜一区二区三区| 久久99热精品| 欧美精品videossex88| 久久久中文字幕| 国产精品2018| 日韩av电影在线网| 欧美亚洲激情在线| 国产精品久久久久久久7电影| 国产综合在线观看视频| 欧美午夜精品久久久久久浪潮| 日韩欧美精品网址| 黄色成人av网| 精品久久久久久久久久久久久久| 欧美电影在线观看完整版| 欧美另类极品videosbestfree| 国产精品爽爽爽爽爽爽在线观看| 成人久久一区二区三区| 亚洲视频一区二区三区| 国产精品一区二区久久久| 2020国产精品视频| 欧美精品成人91久久久久久久| 欧美特黄级在线| 亚洲免费电影一区| 国产免费成人av| 亚洲一二在线观看| 亚洲第一免费网站| 国产欧美精品日韩精品| 国产女人精品视频| 亚洲色图美腿丝袜| 国产精品成人国产乱一区| 92国产精品久久久久首页| 亚洲第一视频在线观看| 国产做受69高潮| 亚洲视频网站在线观看| 亚洲成色www8888| 欧美极品少妇xxxxⅹ免费视频| 精品露脸国产偷人在视频| 日韩欧美一区视频| 国产亚洲精品一区二区| 亚洲а∨天堂久久精品9966| 色噜噜国产精品视频一区二区| 成人久久久久久久| 久久精品国产久精国产思思| 亚洲欧美制服丝袜| 欧美激情综合色| 亚洲精品中文字幕av| 欧美极品美女电影一区| 国内精品久久久久久| 欧美性生交xxxxxdddd| 日韩视频在线免费| 色偷偷噜噜噜亚洲男人| 日韩中文字幕在线观看| 欧美精品999| 大伊人狠狠躁夜夜躁av一区| 成人精品在线视频| 热久久免费视频精品| 中文字幕在线精品| 国产aⅴ夜夜欢一区二区三区| 色综合久久天天综线观看| 亚洲另类欧美自拍| 亚洲女同精品视频| 欧美日韩高清区| 91色精品视频在线| 91大神在线播放精品| 国产精品中文字幕在线观看| 国产亚洲视频在线观看| 欧美黄色三级网站| 国产手机视频精品| 国产69精品久久久久9999| 少妇高潮久久77777| 国产精品第三页| 国产激情999| 97在线免费观看| 蜜月aⅴ免费一区二区三区| 欧美—级高清免费播放| 久久久av亚洲男天堂| 亚洲第一精品久久忘忧草社区| 57pao国产成人免费| 日韩在线欧美在线国产在线| 国产成人精彩在线视频九色| 国产在线a不卡| 狠狠色香婷婷久久亚洲精品| 国产日韩在线观看av| 97超视频免费观看| 国产精品亚洲美女av网站| 成人黄色在线观看| 久久久人成影片一区二区三区| 日韩一区二区欧美| 欧美大胆在线视频| 国产精品爽黄69天堂a| 国产精品丝袜一区二区三区| 国产日本欧美一区| 日本亚洲欧美成人| 26uuu国产精品视频| 亚洲女人初尝黑人巨大| 欧美黑人一级爽快片淫片高清| 深夜精品寂寞黄网站在线观看| 色综合色综合久久综合频道88| 国产成人在线视频| 日本韩国在线不卡| 亚洲国产一区二区三区四区| 精品日韩中文字幕| 久久国产精品久久久久久久久久| 国产成人涩涩涩视频在线观看| 日韩在线一区二区三区免费视频| 九九九久久国产免费| 精品久久久久久久久久久久久久| 亚洲女人天堂成人av在线| 78色国产精品| 中文字幕一精品亚洲无线一区| 亚洲中国色老太| 欧美日韩精品二区| 色综合久久悠悠| 国产精品自产拍在线观| 日本亚洲欧美成人| 久久成年人免费电影| 亚洲精品不卡在线| 欧美一乱一性一交一视频| 亚洲天堂成人在线| 日韩最新中文字幕电影免费看| 国产精品免费小视频| 91美女片黄在线观看游戏| 日本一区二区在线播放| 国产精品美女免费看| 成人免费视频a| 久久久国产精彩视频美女艺术照福利| 国产精品福利无圣光在线一区| 亚洲人成77777在线观看网| 91久久久久久久久久久| 亚洲精品资源在线| 国产成人拍精品视频午夜网站| 在线电影中文日韩| 欧美日韩免费观看中文| 亚洲欧美另类在线观看| 日韩欧美在线视频日韩欧美在线视频| 久久6精品影院| 欧美精品久久久久久久久久| 亚洲精品美女久久久| 欧美激情欧美激情| 亚洲女人天堂av| 精品福利在线看| 国产综合视频在线观看| 亚洲国产天堂久久综合| 91精品视频免费看| 亚洲高清在线观看| 亲爱的老师9免费观看全集电视剧| 国产精品伦子伦免费视频| 亚洲第一精品电影| 国产精品自产拍在线观看中文| 国产一区二区在线播放| 成人精品久久一区二区三区| 欧美国产日韩精品| 欧美猛男性生活免费| 国内精品小视频| 亚洲精品二三区| 久久精品国产久精国产一老狼| 在线观看欧美日韩| 中文字幕日韩电影| 国产日本欧美一区二区三区在线| 欧美激情在线观看|