以前被人問到若是有一個div裏面有多個小的div 如何作到縮小頁面的時候實現小div的換行,首先我想到的實際上是bootstrap裏的柵格化佈局。後來纔想到CSS3還有這麼一個屬性。如今跟你們分享一下。css
源碼:html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Flex佈局</title> <style> .con { /* 要建立一個 flex 容器,只須要將一個 display: flex 屬性添加到一個元素上。 默認狀況下,全部的直接子元素都被認爲是 flex 項,並從左到右依次排列在一行中。 若是 flex 項的寬度總和大於容器,那麼 flex 項將按比例縮小,直到它們適應 flex 容器寬度 */ display: flex; /* flex-direction 決定主軸的方向 row(默認)|row-reverse|column|column-reverse*/ /* flex-direction: row; */ /* flex-wrap決定當排列不下時是否換行以及換行的方式,nowrap(默認)|wrap|wrap-reverse */ /* flex-wrap:wrap; */ /* flex-flow是lex-direction和flex-wrap的簡寫形式,如:row wrap|column wrap-reverse等。默認值爲row nowrap,即橫向排列 不換行 */ flex-flow:row wrap; /* !當主軸沿水平方向時!justify-content,決定item在主軸上的對齊方式,可能的值有flex-start(默認),flex-end,center,space-between,space-around */ justify-content:center; /* !主軸水平時!決定了item在交叉軸上的對齊方式,可能的值有flex-start|flex-end|center|baseline|stretch */ align-items:center; } .con>div { width: 100px; height: 100px; background: #8DB6CD; border: 1px solid black; margin-left: 10px; text-align: center; line-height:100px; } </style> </head> <body> <div class='con'> <!-- order的值是整數,默認爲0,整數越小,item排列越靠前 這裏只給item1 和item4設置了order屬性 1跟4排到了最後面,而且4在1的前面 --> <div style="order: 2">item 1</div> <div style="height: 300px;">item 2</div> <!-- flex-grow定義了當flex容器有多餘空間時,item是否放大 flex-shrink爲縮小 --> <div style="flex-grow:2">item 3</div> <div style="order: 1">item 4</div> <div style="flex-basis:60px">item 5</div> <div>item 6</div> <div>item 7</div> <div>item 8</div> <div>item 9</div> <div>item 10</div> <div>item 11</div> </div> </body> </html>
若有不足,請多指教bootstrap
參考連接:佈局
Felx佈局總結:https://www.cnblogs.com/nuannuan7362/p/5823381.htmlflex
10分鐘學會基本的Flex佈局:http://www.css88.com/archives/7760ui
Felx佈局:語法篇:https://blog.csdn.net/u011300580/article/details/56011564spa
Bootstrap柵格系統(佈局):https://www.cnblogs.com/chessYu/p/7337018.html.net
Bootstrap官網:https://v3.bootcss.com/css/code