怎么固定底部內(nèi)容? - css筆記

    這種布局方式在后臺管理系統(tǒng)中比較常見,當(dāng)我們內(nèi)容不足瀏覽器窗口高度時(shí),底部內(nèi)容需要固定在底部。當(dāng)內(nèi)容超出了瀏覽器窗口高度,就會(huì)隨著內(nèi)容往后推

    這種是一個(gè)非常常見的布局方式,但是對于新手來說是比較常見的難題。

    這種布局方式在后臺管理系統(tǒng)中比較常見,當(dāng)我們內(nèi)容不足瀏覽器窗口高度時(shí),底部內(nèi)容需要固定在底部。當(dāng)內(nèi)容超出了瀏覽器窗口高度,就會(huì)隨著內(nèi)容往后推。

    在有CSS3之前,實(shí)現(xiàn)這個(gè)效果是頗有難度的。瀏覽器窗口高度是會(huì)根據(jù)不同用戶打開瀏覽器的情況,屏幕大小的差異和瀏覽器的縮放比例而變。我們需要借助JavaScript來實(shí)時(shí)獲取瀏覽器高度進(jìn)行運(yùn)算才能實(shí)現(xiàn)。雖然說標(biāo)題是說“固定”底部,但是我們想要的效果不是position: fixed。使用固定定位,在內(nèi)容高于窗口高度時(shí),就會(huì)擋住我們的內(nèi)容。

    隨著CSS3的來臨,最完美的實(shí)現(xiàn)方式是使用Flexbox。實(shí)現(xiàn)的關(guān)鍵就是使用不太被關(guān)注的flex-grow屬性,可以在我們的內(nèi)容標(biāo)簽元素(比如div)中使用。在我們下面的例子里使用了main標(biāo)簽。


    我來講解一下實(shí)現(xiàn)原理吧。

    怎么固定底部內(nèi)容? - css筆記

    flew-grow是用來控制一個(gè)flex元素相對它同等級flex元素的自身可擴(kuò)充的空間。如果我們使用flex-grow: 0,那這個(gè)flex元素就完全不會(huì)擴(kuò)展了。所以我們需要把頭部和底部之間的內(nèi)容標(biāo)簽元素設(shè)置為flex-grow: 1或者flex-grow: auto,這樣內(nèi)容部分就會(huì)自動(dòng)填充滿頭部和底部之外的所有空間。

    為了避免底部內(nèi)容受內(nèi)容部分?jǐn)U充空間的影響,我們給footer底部元素flex-shrink: 0屬性。flex-shrink的作用與flex-grow是恰恰相反,用來控制flex元素收縮的空間,這里我們給了flex-shrink: 0就是為了底部footer的大小不受影響。

    我們直接上HTML和CSS代碼看看是怎么實(shí)現(xiàn)的。

    • HTML
    <div id="document">
     <nav>
      <h1>頭部內(nèi)容</h1>
     </nav>
     <main>
      <p>可以添加更多內(nèi)容看看底部的變化哦!</p>
     </main>
     <footer>
      <h1>底部內(nèi)容</h1>
     </footer>
    </div>
    
    • CSS
    #document {
        height: 100vh;
        display: flex;
        flex-direction: column;
        background: #202020;
        font-family: microsoft yahei,wenquanyi micro hei,sans-serif !important;
    }
    
    nav, footer {
        background: #494949;
        display: flex;
        justify-content: center;
    }
    
    main {
        color: #bdbdbd;
        flex: auto;
    }
    
    footer {
        flex-shrink: 0;
    }
    
    * {
        margin: 0;
    }
    
    h1,
    p {
        padding: 15px;
    }
    
    nav > h1 {
        color: #82FCFD;
        text-shadow: 1px 1px 4px #00000080;
    }
    
    footer > h1 {
        color: #82FCFD;
        text-shadow: 1px 1px 4px #00000080;
    }
    

    知識點(diǎn)總結(jié):

    • flex-grow?--- 是用來控制一個(gè)flex元素相對它同等級flex元素的自身可擴(kuò)充的空間
    • flex-shrink?--- 作用與flex-grow是恰恰相反,用來控制flex元素收縮的空間

    下載權(quán)限
    查看
    • 免費(fèi)下載
      評論并刷新后下載
      登錄后下載
    • {{attr.name}}:
    您當(dāng)前的等級為
    登錄后免費(fèi)下載登錄 小黑屋反思中,不準(zhǔn)下載! 評論后刷新頁面下載評論 支付以后下載 請先登錄 您今天的下載次數(shù)(次)用完了,請明天再來 支付積分以后下載立即支付 支付以后下載立即支付 您當(dāng)前的用戶組不允許下載升級會(huì)員
    您已獲得下載權(quán)限 您可以每天下載資源次,今日剩余
    國內(nèi)主題

    Akina - 簡潔的單欄Wordpress博客主題

    2019-10-1 4:17:34

    一款廣告介紹標(biāo)志 - wordpress區(qū)塊

    2020-6-11 11:12:37

    ??
    Npcink上的部份代碼及教程來源于互聯(lián)網(wǎng),僅供網(wǎng)友學(xué)習(xí)交流,若您喜歡本文可附上原文鏈接隨意轉(zhuǎn)載。
    無意侵害您的權(quán)益,請發(fā)送郵件至 1355471563#qq.com 或點(diǎn)擊右側(cè) 私信:Muze 反饋,我們將盡快處理。
    0 條回復(fù) A文章作者 M管理員
      暫無討論,說說你的看法吧
    ?
    個(gè)人中心
    購物車
    優(yōu)惠劵
    今日簽到
    有新私信 私信列表
    搜索
    主站蜘蛛池模板: 亚洲一区精品伊人久久伊人| 久久久久人妻一区精品性色av| 国产精品免费视频一区| 亚洲国产高清在线一区二区三区| 无码成人一区二区| 在线视频精品一区| 无码人妻一区二区三区在线视频 | 亚洲高清一区二区三区电影| 熟女少妇精品一区二区| 免费无码一区二区| 无码精品视频一区二区三区| 日本一区午夜艳熟免费| 中文字幕久久久久一区| 一区二区三区无码高清| 无码人妻一区二区三区在线水卜樱| 99在线精品一区二区三区| 日韩毛片基地一区二区三区| 色狠狠色噜噜Av天堂一区| 中文字幕一区二区三区精华液| 国产第一区二区三区在线观看| 日韩伦理一区二区| 亚洲一区二区三区电影| 色窝窝无码一区二区三区| 又硬又粗又大一区二区三区视频| 合区精品久久久中文字幕一区| 日本强伦姧人妻一区二区| 日韩精品电影一区| 波多野结衣在线观看一区二区三区 | 无码国产精品一区二区免费vr | 欧美日韩精品一区二区在线视频 | 精品国产香蕉伊思人在线在线亚洲一区二区| 成人精品一区二区户外勾搭野战| 久久精品一区二区三区AV| 亚洲国产一区在线观看| 亚洲av日韩综合一区久热| 高清一区二区在线观看| 一区视频免费观看| 人妻免费一区二区三区最新| 国产一区二区福利| bt7086福利一区国产| 国产精品无码一区二区三区在|