H5+CSS3之如何簡單的實現自適應一排兩列布局
阿新 • • 發佈:2019-01-25
先上效果圖:
再來程式碼:
<body>
<section>
<ul class="box">
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</section>
</body>
<style>
html,body,section{
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
ul,li{
list-style: none;
margin: 0;
padding: 0;
width: 100%;
}
.box{
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content:space-between;
background: darkseagreen;
}
.box li{
width: calc(50% - 5px);
height: 100px;
background:mistyrose;
margin: 5px 0;
}
</style>
程式碼橙色部分為關鍵。運用C3的display:flex佈局。
flex-direction: row; 設定元素按主軸方向(即水平方向,起點在左端)排列。
flex-wrap: wrap;預設情況下元素都排列在主軸上(即使超出),該屬性設定元素超出換行。
justify-content:space-between;設定元素在主軸上的對齊方式,即兩端對齊,元素中間間隔相等。
程式碼中的百分比決定了專案的自適應。
無上下邊距方法:
把上文css中原來的margin:5px 0;換成margin-top:10px;
再nth-child選中前兩個li,單獨設定margin-top:0;就好啦.box li{
width: calc(50% - 5px);
height: 100px;
background:mistyrose;
margin-top: 10px;
}
.box li:nth-child(1),.box li:nth-child(2){
margin-top: 0;
}
無上下邊距效果圖: