Web前端學習—基礎篇(34)_CSS3彈性盒子:彈性盒子特點、如何設置彈性盒子


6.6、彈性盒子

6.6.1、彈性盒子簡介

1、特點

   flex布局  簡單、快速、高效頁面布局

2、flex布局與傳統布局對比

 傳統布局:
   1、兼容性好
   2、PC端頁面更多使用傳統布局
   3、布局繁瑣
   4、有局限性,不能在移動端有很好的布局
 flex布局:
  1、 IE11及更早版本的不支持或部分支持
  2、 移動端兼容性要比PC端要好
  3、 在盒模型中較為靈活
  4、 操作方便,布局簡單,移動端使用廣泛
  5、 css3新增布局方式,一種當頁面需要使用不同屏幕大小,不同的設備類型時,能夠確保元素擁有恰當的行為

3、彈性盒模型的內容包含:彈性容器、彈性子元素

4、引入彈性盒子的目的

用一種更加有效的方式對容器的子元素進行排列、對齊、分配空白空間,即使彈性子元素尺寸發生改變,彈性容器也能正常工作

5、原理

 為父元素設置display:flex屬性,控制子元素的排列方式及位置

6.6.2、設置彈性盒子——display屬性,在父元素上設置

  • display: flex; 將盒子設置為彈性容器
  • display: inline-flex;

6.6.3、基本概念

  • flex容器、項目

  • 默認在容器中有兩根軸線

 默認主軸:水平方向,左側為主軸起點,右側為主軸終點
 默認交叉軸:垂直方向,上方為交叉軸起點,下方交叉軸的終點

將容器設置為flex布局之后,子元素中的float|clear|vertical-align屬性都無效

6.6.4、容器屬性——在父元素上設置

  • flex-direction屬性 設置主軸方向,子元素的排列方向
   flex-direction: row;/*默認值,主軸方向為水平方向,起點在左側,排列次序與文檔順序一致 */
   flex-direction: row-reverse;/* 主軸方向水平方向,排列次序與文檔順序相反 */
   flex-direction: column;/* 主軸方向為垂直方向,起點在上方,排列次序與文檔順序一致 */
   flex-direction: column-reverse;/* 主軸方向為垂直方向,排列次序與文檔順序相反 */
  • justify-content屬性 彈性子元素在主軸方向的對齊方式
   justify-content: flex-start;/* 默認值,子元素位於彈性容器的開頭 */
   justify-content: flex-end;/* 子元素位於彈性容器的結尾 */
   justify-content: center;/* 子元素位於彈性容器的中部 */
   justify-content: space-around;/* 子元素的之前、之間、之后都有空白空間 */
   justify-content: space-between;/* 子元素之間有空白空間 */
  • align-items屬性 彈性子元素在交叉軸上的對齊方式
   align-items: stretch;/* 默認值,如果彈性子元素沒有設置高度或高度為auto,將占滿整個父元素高度 */
   align-items: flex-start;/* 子元素位於交叉軸起點 */
   align-items: flex-end;/* 子元素位於交叉軸終點 */
   align-items: center;/* 子元素位於交叉軸中點 */
   align-items: baseline;/* 子元素在第一行文字的基線對齊 */
  • flex-wrap屬性 彈性子元素在一根軸線上放不下時的換行方式
   flex-wrap: wrap;/* 換行,第一行在上方顯示 */
   flex-wrap: wrap-reverse;/* 換行,第一行在下方顯示 */
   flex-wrap: nowrap;/* 默認值,不換行 */
  • align-content屬性 多根軸線的對齊方式,如果只有一根軸線,屬性失效
   align-content: stretch;/* 默認值,軸線占滿整個交叉軸 */
   align-content: flex-start;/* 交叉軸起點對齊 */
   align-content: flex-end;/* 交叉軸終點對齊 */
   align-content: center;/* 交叉軸中點對齊 */
   align-content: space-around;/* 軸線兩側都有空白空間 */
   align-content: space-between;/* 軸線之間有空白空間 */

6.6.5、項目屬性——寫在子盒上

  • order屬性 子元素的排列次序
  屬性值沒有單位,是數值,默認數值為0,數值越小,排列越靠前
  • flex-grow屬性 子元素的放大比例
  屬性值沒有單位,是數值,默認為0,表示不放大
  • flex-shrink屬性 子元素的縮小比例
   屬性值沒有單位,是數值
   默認值為1,表示當空間不足時,等比例縮小
   屬性值為0,表示當空間不足時,不縮小

  • align-self屬性 彈性容器中被選中子項的對齊方式
   align-self: auto; 默認值,元素繼承了父元素的align-items屬性,如果父元素沒有屬性則屬性值為stretch
   align-self: stretch; 占滿整個容器高度
   align-self: flex-start; 交叉軸起點對齊
   align-self: flex-end; 交叉軸終點對齊
   align-self: center; 交叉軸中點對齊
   align-self: baseline; 子元素的第一行文字基線對齊


免責聲明!

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



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