用FLEX设置一排两列 50% 的设置方法:
HTML代码
<body>
<section>
<ul class="box">
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</section>
</body>
CSS代码
<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;
}