怎么固定底部?jī)?nèi)容? – css筆記

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

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

    這種布局方式在后臺(tái)管理系統(tǒng)中比較常見,當(dāng)我們內(nèi)容不足瀏覽器窗口高度時(shí),底部?jī)?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)原理吧。

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

    flew-grow是用來控制一個(gè)flex元素相對(duì)它同等級(jí)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)填充滿頭部和底部之外的所有空間。

    為了避免底部?jī)?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>頭部?jī)?nèi)容</h1>
     </nav>
     <main>
      <p>可以添加更多內(nèi)容看看底部的變化哦!</p>
     </main>
     <footer>
      <h1>底部?jī)?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;
    }
    

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

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

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

    給TA贊賞
    共{{data.count}}人
    人已贊賞
    ??
    Npcink上的部份代碼及教程來源于互聯(lián)網(wǎng),僅供網(wǎng)友學(xué)習(xí)交流,若您喜歡本文可附上原文鏈接隨意轉(zhuǎn)載。
    無意侵害您的權(quán)益,請(qǐng)發(fā)送郵件至 1355471563#qq.com 或點(diǎn)擊右側(cè) 私信:Muze 反饋,我們將盡快處理。
    ?
    購物車
    優(yōu)惠劵
    搜索
    主站蜘蛛池模板: 中文字幕精品一区二区| av在线亚洲欧洲日产一区二区| 亚洲日韩AV无码一区二区三区人| 国内自拍视频一区二区三区| 国产免费一区二区视频| 高清一区二区三区| 亚洲国产精品无码第一区二区三区 | 国产探花在线精品一区二区| 国产精品无码一区二区三区不卡| 日本亚洲成高清一区二区三区| 日韩精品一区二三区中文| 无码国产精品一区二区免费| 久久人做人爽一区二区三区| 国产AV午夜精品一区二区三区| 精品日韩在线视频一区二区三区| 又紧又大又爽精品一区二区| av一区二区三区人妻少妇| 日本一区二区三区免费高清| 亚洲国产视频一区| 国产福利微拍精品一区二区| 亚洲宅男精品一区在线观看| 国产精品一区二区久久| 日本一区二区视频| 成人区人妻精品一区二区三区 | 91精品国产一区| 麻豆aⅴ精品无码一区二区| 国产AV一区二区三区无码野战 | 无码人妻精品一区二区三区久久久| 亚洲影视一区二区| 国产日韩一区二区三区在线播放| 国产自产对白一区| 国产麻豆剧果冻传媒一区| 在线免费视频一区二区| 国产伦精品一区二区三区在线观看 | 国产在线精品一区二区高清不卡| 国产精品视频一区二区三区不卡| 综合久久一区二区三区 | 日韩精品免费一区二区三区| 国产乱人伦精品一区二区在线观看 | 无码人妻精品一区二区三| 制服丝袜一区在线|