<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                [TOC] # 彈性布局詳解 彈性布局使容器能夠更加彈性的對子元素進行布局,能夠靈活的設置資源的大小比例、間距、對齊方式等。 對于容器元素,設置 `display: flex`或`display:inline-flex`即可使之成為彈性盒子,使子元素可以彈性布局。 ![](https://img.kancloud.cn/b6/f4/b6f4d9d65284fc25bbc3e8d4b716db27_407x269.png) ## 對于容器 彈性布局主要使用到以下屬性: ### flext-direction 設置主軸的方向,有`row`, `column`, `row-revers`, `column-reverse`四個值,默認`row`. 各個值的表現如圖所示: ![](https://img.kancloud.cn/fa/e4/fae4d34cf11db4bfe964675453948a0e_638x351.PNG) ### justify-content 主軸方向對子元素進行排列。有`flex-start`、`flext-end`、`center`、`space-between`,`space-around`五個值。默認`flex-start`。**需要注意的是,當子元素總寬度之和超出容器寬度且不換行時時,`space-between`表現和`flex-start`一致.** ![](https://img.kancloud.cn/65/29/65298b0e6842659ed773d95625917581_643x374.png) ### flex-wrap 子元素總寬度(或高度,取決于`flex-direction`)大于容器的寬度(或高度)時,子元素排列是否換行。有`nowrap`(不換行,子元素會一直在主軸方向排列,即使超出容器寬度),`wrap`(換行),`wrap-reverse`(換行,但是交叉軸方向逆向排列)3個可選值。默認`nowrap`。 ### align-items 交叉軸方向對子元素進行排列。有`flex-start`,`center`,`flex-end`,`baseline`,`stretch`5個值,默認`stretch`。前3個值表現和`justify-content`類似,`baseline`是第一行文字底部對齊,`stretch`是將子元素撐到父元素的高度(或寬度)。**需要注意的是,在換行的情況下,`center`表現類似`space-around`。** ![](https://img.kancloud.cn/b2/81/b2819c99875bdb0cc03f24ea3d8efa21_632x123.png) ### align-content 針對多行多列的情況對交叉軸方向行(或列)進行布局,對單行無效。取值和`justify-content`一樣,相應的表現也與其一致,只不過針對的是交叉軸方向。 ![](https://img.kancloud.cn/e8/85/e8854322deaf31dffb14e25892b8a2b4_639x306.png) ## 針對子元素 彈性盒子里面的子元素可以設置自己的屬性,用以定義自己順序,位置,寬度占比,空間不足的情況下的處理方式,跟彈性布局有關的有以下屬性: ### order 定義子元素的順序,默認是0,數字越小,子元素在容器中的順序越靠前。 ```html <div style="display:flex"> <div style="order: 1">Child 1</div> <div style="order: 2;">Child 2</div> <div>Child 3</div> </div> ``` ![](https://img.kancloud.cn/75/ca/75caa70346340f30828694286bd4aea9_312x56.png) ### flex-basis 設置元素寬度,它設置之后元素的寬度時彈性的,最大不會超過他應占寬度比例。比如一個300寬度的容器,有三個子元素,他們的`flex-basis`設置成100,200,100, 那么布局之后最終三個元素的寬度則變成75,150,75. ### flex-grow 定義了剩余空間的分配占比,默認為0, 即不縮放,小于0無效,會被默認成0。子元素的寬度計算方式如下:父容器寬度減去所有子元素的基準寬度,如果有剩余空間,將剩余空間按比例分配到flex-grow不為0的元素上。 ```html <div class='flex-row'> <div style="flex-grow: -1;"> -1</div> <div style="flex-grow: 0;"> 0</div> <div style="flex-grow: 1;">1</div> <div style="flex-grow: 2;">2</div> </div> ``` ![](https://img.kancloud.cn/15/52/155235b9bba7b494b1fb12d5a84e39d9_308x56.png) 以本圖舉例:容器寬度(width)為300,四個元素每個元素的margin是5, -1、0、1、2這4元素的分別自然寬度是20、10、10、10,那么現在每個元素的基準寬度時30,20,20,20, 剩余可分配空間為210,因此可以分配到70,那么1這個元素盒子及margin的總寬度為90,同理,2為160. ### flex-shirink 定義了子元素寬度之和超出父容器寬度部分的處理規則,默認值是1。子元素的寬度計算方式如下:所有子元素基準值之和減去容器的寬度,如果值是正數,每個元素的寬度為基準值減去flex-shrink所占的比例。 ```html <div class='flex-row'> <div style="flex-shrink: 1;"> -1</div> <div style="flex-shrink: 1;"> 0</div> <div style="flex-shrink: 2">1</div> <div style="flex-shrink: 2;">2</div> </div> ``` ![](https://img.kancloud.cn/ee/c1/eec1cf483c7652f23de1eadb33a9d8f3_309x56.png) 以本圖舉例: 容器寬度為300,每個子元素的基準寬度(flex-basis)是100,子元素的總寬度是400,超出100. 參與分配超出寬度的總份數書1+1+2+2=6, 所以-1,0兩個元素的的寬度是 100-100(超出部分) * 1/6 = 83.33, 1,2兩個元素的寬度時 100 - 100 * 2/6 = 66.67. ### align-self 定義單個子元素的對齊方式,可取值和`align-items`一致,默認值`auto`,即使用父元素`align-items`聲明的對齊方式。 ![](https://img.kancloud.cn/fa/f1/faf15e4b9803581832073fb03266d83c_314x106.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看