彈性盒子布局


  最近在開發公司的平台系統,因為該項目主要是運行在移動端,所以采用了flex彈性布局。flex布局用起來很靈話,提高了開發效率。而且性能貌似比傳統的浮動布局好。

 1. 首先聲明父元素布局方式為彈性布局

  display: -webkit-flex; /* Safari */
  display:flex;

 2.然后設置橫向主軸子元素排列方式 

     justify-content:flex-start | flex-end | center | space-between | space-around;

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

3.然后設置縱向交叉軸子元素的排列方式

  align-items:flex-start | flex-end | center | baseline | stretch;

  • flex-start:交叉軸的起點對齊。
  • flex-end:交叉軸的終點對齊。
  • center:交叉軸的中點對齊。
  • baseline: 項目的第一行文字的基線對齊。
  • stretch(默認值):如果項目未設置高度或設為auto,將占滿整個容器的高度。

  4.在實際開發中遇到了許多問題,在這里主要列舉兩個:

         1.父元素下的兩個子元素 ,1子元素靠左,2子元素占據剩余空間。2子元素的文字不固定的,可能很多可能不多,多的話我們就用可以用溢出隱藏解決。

         但是右側過多即使溢出隱藏了,左側的文字就會自動換行。

      

          解決方法為 左側加 flex-shrink: 0;//空間不足時不會自動縮小

       

 

          2.父元素下的子元素,默認平均分配剩余空間,但是子元素無法確定數量 ,設置兩端對齊的話,子元素不夠的話默認就兩側分開顯示,就不能對稱

      

      而設置左對齊的話又不能平均分配剩余空間,真是個頭疼的問題。

  

     最后解決方法是在后面多加幾個空元素,希望每行最大顯示的數量減去2,為n-2個, 這樣剩余空間就能合理分配了。也能保證在不能尺寸屏幕下面,子元素排列正常。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM