CSS3 彈性盒子模型

彈性盒子:flex佈局

  • 彈性盒子是一種佈局方式
  • 特點:改變元素的排列方式
  • 採用flex佈局的元素:稱爲flex容器,簡稱“容器”。它的所有子元素自動成爲容器成員,成爲flex項目(簡稱“項目”)
  • 彈性盒子中的項目可以是塊級元素、行內元素、行內塊級元素
  • 並且行內元素在彈性盒子中可以設置寬高
  • display:inline-flex :轉成行內彈性盒子
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>標題</title>
    <link rel="stylesheet" href="../css/reset.css">
    <style type="text/css">
        .box{
            width: 400px; height: 400px; background: bisque;
            margin: 50px auto; overflow: hidden;
            /* 轉成彈性盒子 */
            display: flex;
        }
        .zxw{
            width: 120px; height: 50px; line-height: 50px;
            background: red; text-align: center; color: #fff;
            margin-top: 10px;
        }
    </style>
</head>
<body>
    <ul class="box">
        <li class="zxw">zxw1</li>
        <li class="zxw">zxw2</li>
        <li class="zxw">zxw3</li>
    </ul>
</body>
</html>

主軸、交叉軸方向

x軸稱爲主軸;y軸稱爲交叉軸

flex-direction:row | column | row-reverse | column-reverse;:定義彈性元素排列方向及順序

  • row:默認值;表示主軸是水平正向
  • column:表示主軸是垂直正向
  • row-reverse:表示主軸是水平方向
  • column-reverse:表示主軸是垂直方向

換行、及換行方式

flex-wrap: nowrap | wrap | wrap-reverse;:定義是否換行,換行方式都是交叉軸方向

  • nowrap:默認值;不換行
  • wrap:換行;默認交叉軸正向換行
  • flex-wrap:換行;交叉軸反向換行

主軸方向對齊方式

justify-content: flex-start | flex-end | center | space-between | space-around;:子元素在主軸方向上的對齊方式

  • flex-start:默認值;開始方向對齊
  • flex-end:結束方法對齊
  • center:居中對齊
  • space-between:兩端對齊,項目之間的間隔都相等
  • space-around:項目會平均地分佈在行裏,兩端保留項目與項目之間間距大小的一半

交叉軸方向對齊方式

align-items: flex-start | flex-end | center | baseline | stretch;:子元素在交叉軸方向上的對齊方式

  • flex-start:開始方向對齊
  • flex-end:結束方法對齊
  • center:居中對齊
  • baseline:項目的第一行文字的基線對齊
  • stretch:默認值;如果項目沒設置高度或設爲auto,將佔滿整個容器的高度

多行內容在交叉軸上對齊方式

justify-content: flex-start | flex-end | center | space-between | space-around | stretch;:多行子元素在交叉軸方向上的對齊方式

  • flex-start:開始方向對齊
  • flex-end:結束方法對齊
  • center:居中對齊
  • space-between:兩端對齊,項目之間的間隔都相等
  • space-around:項目會平均地分佈在行裏,兩端保留項目與項目之間間距大小的一半
  • stretch:默認值;會拉伸容器內每一個項目佔用空間,填充方式爲給每個項目下方增加空白,佔滿整個交叉軸

設置彈性元素的順序

order:默認值0

  • 元素按照order屬性的值增序進行佈局
  • 值越小排列越靠前,擁有相同order屬性值的元素按照它們在源代碼中出現的順序進行佈局

彈性元素的擴展比率

flex-grow:0:默認值爲0;設置彈性元素的擴展比率來分配剩餘空間


彈性元素的收縮比率

flex-shrink:1:默認值爲1;設置彈性元素的收縮比率來收縮空間

  • 多出來的尺寸
  • 總權重:元素1尺寸 * 收縮比率 + 元素2尺寸 * 收縮比率…
  • 收縮空間:元素尺寸 * 收縮比率 * 多出來的尺寸 / 總權重

最大和最小寬高度

max-width:定義元素最大寬度

該屬性值會對元素的寬度設置一個最大限制。因此,元素可以比指定值窄,但不能比其寬。不允許指定負值

min-width:定義元素最小寬度

該屬性值會對元素的寬度設置一個最小限制。因此,元素可以比指定值寬,但不能比其窄。不允許指定負值

max-height:定義元素最大高度

該屬性值會對元素的高度設置一個最大限制。因此,元素可以比指定值矮,但不能比其高。不允許指定負值

min-height:定義元素最小高度

該屬性值會對元素的高度設置一個最小限制。因此,元素可以比指定值高,但不能比其矮。不允許指定負值

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章