HTML彈性布局


1、彈性布局的使用

(1)  display:flex;給父容器添加這個屬性;

(2)  display:flex; 容器添加彈性布局后,顯示為塊級元素;

display:inline-flex; 容器添加彈性布局后,顯示為行級元素;

(3)  設為 Flex布局后,子元素的float、clear屬性將失效。但是position屬性,依然生效。

2、作用於父容器的5個屬性

(1)flex-direction屬性決定主軸的方向(即項目的排列方向)。

        row(默認值): 主軸為水平方向,起點在左端;

        row-reverse: 主軸在水平方向,起點在右端 ;

        column:主軸為垂直方向,起點在上沿;

            column-reverse:主軸為垂直方向,起點在下沿。

(2)flex-wrap屬性定義,如果一條軸線排不下,如何換行。

            nowrap(默認):不換行。當容器寬度不夠時,每個項目會被擠壓寬度;

            wrap: 換行,並且第一行在容器最上方;

            wrap-reverse: 換行,並且第一行在容器最下方。

如下所示,使用彈性布局,橫向排列,起點在左邊,換行。

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 
 4 <head>
 5     <meta charset="UTF-8">
 6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 7     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 8     <title>彈性布局</title>
 9     <style>
10         .box {
11             width: 800px;
12             height: 500px;
13             background-color: aqua;
14             display: flex;
15             flex-wrap: wrap;
16         }
17         
18         .box div {
19             width: 150px;
20             height: 150px;
21             background-color: blueviolet;
22             border: 2px solid black;
23         }
24     </style>
25 </head>
26 
27 <body>
28     <div class="box">
29         <div>第一個盒子</div>
30         <div>第二個盒子</div>
31         <div>第三個盒子</div>
32         <div>第四個盒子</div>
33         <div>第五個盒子</div>
34         <div>第六個盒子</div>
35         <div>第七個盒子</div>
36     </div>
37 </body>
38 
39 </html>

(3)justify-content屬性定義了項目在主軸上的對齊方式。這個屬性與主軸方向息息相關。

主軸方向為:row-起點在左邊,row-reverse-起點在右邊, column-起點在上邊,column-reverse-起點在下邊。

           flex-start(默認值): 項目位於主軸起點。

           flex-end:項目位於主軸終點。

           center: 居中

           space-between:兩端對齊,項目之間的間隔都相等。(開頭和最后的項目,與父容器邊緣沒有間隔)

     space-around:每個項目兩側的間隔相等。所以,項目之間的間隔比項目與邊框的間隔大一倍。(開頭和最后的項目,與父容器邊緣有一定的間隔)

           space-evenly:每個項目兩側的間隔相等。所以,項目之間的間隔和項目與邊框的間隔相同。

第一張圖是space-between的效果,第二張圖是space-around的效果,第三張圖是  space-evenly的效果。

(4)align-items屬性定義項目在交叉軸上如何對齊。

            flex-start:交叉軸的起點對齊。

            flex-end:交叉軸的終點對齊。

            center:交叉軸的中點對齊。

            baseline: 項目的第一行文字的基線對齊。(文字的行高、字體大小會影響每行的基線)

            stretch(默認值):如果項目未設置高度或設為auto,將占滿整個容器的高度。

(5)align-content屬性定義了多根軸線的對齊方式。如果項目只有一根軸線,該屬性不起作用。

 (當項目換為多行時,可使用align-content取代align-items)

           flex-start:與交叉軸的起點對齊。

           flex-end:與交叉軸的終點對齊。

           center:與交叉軸的中點對齊。

           space-between:與交叉軸兩端對齊,軸線之間的間隔平均分布。

           space-around:每根軸線兩側的間隔都相等。所以,軸線之間的間隔比軸線與邊框的間隔大一倍。

           stretch(默認值):軸線占滿整個交叉軸。


免責聲明!

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



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