<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Grid vs Flexbox:哪個(gè)更好?(粉絲福利更新)

          共 3144字,需瀏覽 7分鐘

           ·

          2021-04-14 20:22

          2021年清明節(jié)作者拍攝于青島


          原文:https://jason-brewer.medium.com/grid-vs-flexbox-which-one-is-better-8ee83f920f94

          作者:Jason Brewer


          這個(gè)話題已經(jīng)爭(zhēng)論了很多次,哪個(gè)更好?

          對(duì)您的網(wǎng)站布局和內(nèi)容使用Grid(網(wǎng)格)系統(tǒng)還是Flexbox?讓我們深入了解兩者之間的主要區(qū)別以及何時(shí)使用它們。

          Grid用于二維布局,F(xiàn)lexbox用于一維布局。

          網(wǎng)格布局——二維

          網(wǎng)格布局(即Bootstrap或CSS網(wǎng)格)用于二維布局。這意味著什么?這意味著,如果您要同時(shí)創(chuàng)建包含行和列的布局,請(qǐng)使用網(wǎng)格系統(tǒng)。

          對(duì)于布局將包含頁面內(nèi)容的頁面容器來說,這是一個(gè)完美的解決方案。

          Flexbox ——一維

          將Flexbox用于一維布局,這意味著內(nèi)容會(huì)沿一個(gè)方向(水平或垂直)移動(dòng)。

          以Navbar為例——您可能具有Logo和頁面鏈接,這些Logo和頁面鏈接水平排列成一行(單向)。使用Flexbox將以更少的代碼行為您提供更大的靈活性和對(duì)內(nèi)容的控制。

          使用網(wǎng)格系統(tǒng)進(jìn)行頁面布局,將Flexbox用于頁面內(nèi)容。

          這里的一般規(guī)則是Flexbox會(huì)基于內(nèi)容,而網(wǎng)格基于布局。

          Flexbox —內(nèi)容之王

          讓我們看一個(gè)簡(jiǎn)單的示例,以幫助我們了解如何將這兩個(gè)概念一起使用。

          讓我們從上方使用導(dǎo)航欄,從頭開始。這是原始的HTML:

          <nav>
          <div>Home</div>
          <div>About</div>
          <div>Contact</div>
          <div>Search</div>
          </nav>

          現(xiàn)在,在使用Flexbox之前,這些元素將像這樣簡(jiǎn)單地相互堆疊。

          讓我們貼上一個(gè) display: flex 看看會(huì)發(fā)生什么。

          nav {
          display: flex;
          }

          驚人的!現(xiàn)在,我們將元素很好地排成一行。

          讓我們把“SIGN IN”(登錄)扔到最右邊。

          nav > div:nth-child(4) {
          margin-left: auto;
          }

          真正酷的是,我們把它留給項(xiàng)目來決定它們?nèi)绾畏胖谩N覀儾恍枰鋈魏纹渌虑椋恍枰o它一個(gè) display: flex;

          現(xiàn)在,我們可以使用網(wǎng)格系統(tǒng)實(shí)現(xiàn)同樣的結(jié)果--但讓我在這里告訴你其中的區(qū)別。在這個(gè)例子中,我將使用Bootstrap網(wǎng)格系統(tǒng)來創(chuàng)建我們的行和列。

          這是我們的HTML

          <div class="row">
          <div class="col-2">Home</div>
          <div class="col-2">About</div>
          <div class="col-2">Contact</div>
          <div class="col-6">Sign In</div>
          </div>

          此處的區(qū)別是我們被迫設(shè)置許多列。

          通過Bootstraps網(wǎng)格系統(tǒng),我們需要設(shè)置相當(dāng)于12列的欄位來擴(kuò)展視口的全部寬度。

          這里還有一個(gè)使用網(wǎng)格系統(tǒng)做內(nèi)容的痛苦。如果我們將來決定添加另一個(gè)鏈接,我們每次都需要改變列寬。

          <div class="row">
          <div class="col-2">Home</div>
          <div class="col-2">About</div>
          <div class="col-2">Contact</div>
          <div class="col-2">Rad Stuff</div>
          <div class="col-4">Sign In</div>
          </div>

          有了Flexbox,我們只需將新的導(dǎo)航條鏈接放入,元素就會(huì)自行處理。

          結(jié)合兩者

          讓我們看看如何將兩者結(jié)合使用,這是網(wǎng)站布局。

          這是HTML(再次使用Bootstraps網(wǎng)格系統(tǒng)類)。

          <div class="container">
          <div class="row">
          <div class="col-12">
          Header
          </div>
          </div>
          <div class="row">
          <div class="col-3">
          Menu
          </div>
          <div class="col-9">
          <div class="row">
          <div class="col-12">
          Content
          </div>
          </div>
          <div class="row">
          <div class="col-12">
          Content
          </div>
          </div>
          </div>
          </div>
          <div class="row">
          <div class="col-12">
          Footer
          </div>
          </div>
          </div>

          現(xiàn)在,我們將添加Navbar——它是一個(gè)Flexbox容器,代替我們網(wǎng)格布局中的“HEADER”文本。在這個(gè)片段中,我只展示了包裝導(dǎo)航條的HTML。

          <header>
          <nav>
          <div>Home</div>
          <div>About</div>
          <div>Search</div>
          <div>Sign In</div>
          </nav>
          </header>

          現(xiàn)在,我們有了一個(gè)可以同時(shí)利用Grid布局和Flexbox優(yōu)勢(shì)的布局。

          我希望你現(xiàn)在對(duì)Flexbox和Grid的一般和具體區(qū)別有了深刻的了解,知道如何和何時(shí)使用它們。

          謝謝閱讀!


          粉絲福利

          極客時(shí)間專欄《朱赟技術(shù)管理課》7天有效,需要的速取!獲取資源請(qǐng)?jiān)诠娞?hào)對(duì)話框中回復(fù)關(guān)鍵字:JK04,關(guān)鍵字全部大寫哦!如果沒有關(guān)注請(qǐng)掃下面的二維碼。更多福利資料請(qǐng)查看公眾號(hào)菜單
          推薦文章

          在Vue.js中加載字體的最佳做法

          經(jīng)驗(yàn)技巧:什么是職場(chǎng)暗語?

          改善程序性能和代碼質(zhì)量:通過代理模式組合HTTP請(qǐng)求

          新老手必備的34種JavaScript簡(jiǎn)寫優(yōu)化技術(shù)

          如何在JavaScript中實(shí)現(xiàn)隊(duì)列數(shù)據(jù)結(jié)構(gòu)

          最近文章


          瀏覽 54
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  内射视频福利 | 91久久夜色精品国产九色 | 中文字幕无码A片 | 一级日韩免费观看 | 大鸡巴操我视频 |