先上效果图:
再来代码:
<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; }无上下边距效果图:
