<address id="ttjl9"></address>

      <noframes id="ttjl9"><address id="ttjl9"><nobr id="ttjl9"></nobr></address>
      <form id="ttjl9"></form>
        <em id="ttjl9"><span id="ttjl9"></span></em>
        <address id="ttjl9"></address>

          <noframes id="ttjl9"><form id="ttjl9"></form>

          后端人員如何快速上手css(flex布局

          2019-6-21    seo達人

          如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

          網頁布局(layout)是 CSS 的一個重點應用。畢竟簡單的樣式不能總依賴前端人員。
          布局的傳統解決方案,基于盒狀模型,依賴 display 屬性 + position屬性 + float屬性。它對于那些特殊布局非常不方便,比如,垂直居中就不容易實現。

          2009年,W3C 提出了一種新的方案----Flex 布局,可以簡便、完整、響應式地實現各種頁面布局。目前,它已經得到了所有瀏覽器的支持,這意味著,現在就能很安全地使用這項功能。

          Flex 是 Flexible Box 的縮寫,意為"彈性布局",用來為盒狀模型提供最大的靈活性。

          采用 Flex 布局的元素,稱為 Flex 容器(flex container),簡稱"容器"。它的所有子元素自動成為容器成員,稱為 Flex 項目(flex item),簡稱"項目"。


          容器默認存在兩根軸:水平的主軸(main axis)和垂直的交叉軸(cross axis)。主軸的開始位置(與邊框的交叉點)叫做main start,結束位置叫做main end;交叉軸的開始位置叫做cross start,結束位置叫做cross end。

          項目默認沿主軸排列。單個項目占據的主軸空間叫做main size,占據的交叉軸空間叫做cross size。

          先說第一個屬性flex-direction 屬性決定主軸的方向(即項目的排列方向)。
          .box {
          flex-direction: row | row-reverse | column | column-reverse;
          }
          row(默認值):主軸為水平方向,起點在左端。
          row-reverse:主軸為水平方向,起點在右端。
          column:主軸為垂直方向,起點在上沿。
          column-reverse:主軸為垂直方向,起點在下沿。
          廢話少說,立刻上代碼,驗證下。

          row:

          眾所周知,h1和p都是塊級元素,都會縱向排列,一旦采用 Flex 布局,就以x和y軸為基礎排序,
          column:

          不但模糊了塊級元素和行內元素的區別,而且左右的排序也很靈活。
          row-reverse:

          flex-wrap屬性
          默認情況下,項目都排在一條線(又稱"軸線")上。flex-wrap屬性定義,如果一條軸線排不下,就會換行。
          .box{
          flex-wrap: nowrap | wrap | wrap-reverse;
          }
          (1)nowrap(默認):不換行。
          (2)wrap:換行,第一行在上方。
          (3)wrap-reverse:換行,第一行在下方。
          wrap:

          雖然他換行了,但是每行的元素是不是靠的太近了
          在這時候就能用到
          justify-content屬性
          justify-content屬性定義了項目在主軸上的對齊方式。
          .box {
          justify-content: flex-start | flex-end | center | space-between | space-around;
          }
          它可能取5個值,具體對齊方式與軸的方向有關。下面假設主軸為從左到右。

          flex-start:(默認值):左對齊
          flex-end:右對齊
          center: 居中
          space-between:兩端對齊,項目之間的間隔都相等。
          space-around:每個項目兩側的間隔相等。所以,項目之間的間隔比項目與邊框的間隔大一倍。

          space-between:

          但是還是有點不對勁,原來沒有垂直居中。
          align-items屬性就出來了
          align-items屬性定義項目在交叉軸上如何對齊。
          .box {
          align-items: flex-start | flex-end | center | baseline | stretch;
          }
          它可能取5個值。具體的對齊方式與交叉軸的方向有關,下面假設交叉軸從上到下。
          flex-start:交叉軸的起點對齊。
          flex-end:交叉軸的終點對齊。
          center:交叉軸的中點對齊。
          baseline: 項目的第一行文字的基線對齊。
          stretch(默認值):如果項目未設置高度或設為auto,將占滿整個容器的高度。

          還有很多屬性可以靈活的調整頁面的排版,我只舉例最簡單的幾種排版。
          沒有float,沒有position,也沒有行和塊。只要知道x軸和y軸就能輕松布局。
          如果想了解flex布局,可以看一下這位大佬的博客:
          語法篇:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html
          實戰篇:http://www.ruanyifeng.com/blog/2015/07/flex-examples.html


          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://www.syprn.cn

          存檔

          亚洲va欧美va天堂v国产综合