我有七个div,其中五个是小的,两个是大的,如下所示:
<div class='halfPanel'>TEST</div>
<div class='halfPanel'>TEST</div>
<div class='halfPanel'>TEST</div>
<div class='halfPanel'>TEST</div>
<div class='halfPanel'>TEST</div>
<div class='fullPanel'>TEST</div>
<div class='fullPanel'>TEST</div>
CSS(层叠样式表):
.halfPanel{
width:48%;
display:inline-block;
height:48%;
border:1px solid black;
text-align:center;
margin-bottom:4%;
}
.fullPanel{
width:100%;
display:inline-block;
height:100%;
border:1px solid black;
text-align:center;
margin-bottom:4%;
}
我需要在每个halfPanel后面添加一个间隙,如果右侧有另一个halfPanel跟随。但是挑战在于这七个面板是可拖动的,并且可以以任何方式重新排列。我不能添加一个新的div包装两个halfPanels,也不能使用jQuery来实现。我需要用纯CSS实现,而不对HTML进行任何绝对的更改。
我尝试过的方法是:
div.halfPanel + div.halfPanel{
margin-left:2%;
}
div.halfPanel + div.halfPanel+ div.halfPanel{
margin-left:0%;
}
div.halfPanel + div.halfPanel+ div.halfPanel+div.halfPanel + div.halfPanel{
margin-left:0%;
}
div.halfPanel + div.halfPanel + div.halfPanel+ div.halfPanel{
margin-left:2%;
}
但我知道这是丑陋的CSS,而且不具有可扩展性。 有更好的方法来实现这个吗?
JSFiddle 是我实现的内容。
编辑:我不能使用 flexbox。