1. 程式人生 > >CSS3 彈性盒模型

CSS3 彈性盒模型

CSS3 彈性盒模型、盒模型、怪異盒模型

1、彈性盒模型

父級設定的屬性有,
display:flex; ------這個代表你把這部分內容設為了一個彈性盒模型

flex-direction: row; ------這個是父級預設的屬性,預設就是橫向排列,水平幾等分時就用這個
flex-direction: column; -----這個就是垂直分了

justify-content: center; ------這個表示設定了子級的div水平居中, 預設 flex-start 還有 flex-end

align-items: center; ------這個表示你讓子級的div垂直方向居中, 預設 flex-start 還有 flex-end

flex-wrap: wrap; -----當子級的div總寬度超過螢幕時,預設會擠在一起 nowrap不換行 ,但是設為wrap後,它就會自動的掉下來

子級設定的屬性有,
flex-grow: 1;-----這個表示你這個div佔幾份,隨便設,都設一樣的就變成等分了

order: -1; -----這個表示你這個div排列的位置,是在前面還是在中間還是在後面,預設值是0 越小的話越靠前

1)水平方向平均分四等分
在父級設 display: flex;
在子級設flex-grow: 1;

	<div class="container">
        <
div
class="box1">
box1</div> <div class="box2">box2</div> <div class="box3">box3</div> <div class="box4">box4</div> </div>
    .container {
         display: flex;
         flex-direction: row;    /*預設就是 row 水平 不寫就是這個*/
     }
.container div { flex-grow: 1; }

在這裡插入圖片描述
2)垂直方向等分

    .container {
         display: flex;
         flex-direction: column; /*垂直分*/
     }
     .container div {
         flex-grow: 1;
        }

在這裡插入圖片描述
3)垂直、水平居中

	.container {
        display: flex;
        flex-direction: row;
        justify-content: center; /*水平居中  預設 flex-start  還有 flex-end*/
        align-items: center; /*垂直居中 預設 flex-start  還有 flex-end*/
        }
     .container div {
            width: 20%;
        }

在這裡插入圖片描述
4)調換位置,越小越靠前

     .container {
         display: flex;
         flex-direction: row;
         justify-content: center;
         align-items: center;
     }
       .container .box2 {
            order: -1;  /*預設值是0  越小越靠前*/
        }

在這裡插入圖片描述
5)寬度超出屏幕後,換行(預設是不換行的)

     .container {
         display: flex;
         flex-direction: row;
         justify-content: center;
         align-items: center;
         flex-wrap: wrap;  /*預設是 nowrap不換行  */
     }

在這裡插入圖片描述

2、盒模型

每一個div都是一個盒子,它有
外邊距,margin
邊框,border
內邊距,padding
內容,content
四部分組成。

標準盒模型設定寬高時,指的就是內容區的寬高,這時候再設定外邊距啊、邊框啊、內邊距啊,會把整個div撐開,看起來就很大。

#box{
	width:200px;
	height:200px;
}

在這裡插入圖片描述

3、怪異盒模型

在div上設定 box-sizing: border-box;
怪異盒模型的寬高時整個
marging+border+padding+content
所以,當你設定邊框或者內邊距外邊距時,會把內容區域的寬高變小(擠的了)

        #box {
            width: 200px;
            height: 200px;
            background-color: #dddddd;
            box-sizing: border-box;
            border: 10px solid red;
        }

在這裡插入圖片描述
內容只剩180px,被邊框擠的了。