我想制作一个两列html结构,如下图所示:
每个框内的数字表示html标记中div's
的顺序。
挑战在于我希望在移动设备上使用不同的排序顺序。例如,在移动设备上,数字4应低于数字1而不更改html。我认为使用flexbox
应该是实现这一目标的最佳方式。但我无法使其发挥作用。
使用floats
并不是这样,因为在第一边有空格时,下一个div
会自动浮动到那一边。
我也无法为每列制作额外的包装器,因为使用order
将不起作用。
有人有想法吗?
* {
box-sizing: border-box;
}
.row {
display: inline-block;
width: 100%;
}
.item {
border: 1px solid #000;
width: 50%;
float: left;
}

<div class="row">
<div style="height:200px;" class="item">1</div>
<div style="height:150px;" class="item">2</div>
<div style="height:100px;" class="item">3</div>
<div style="height:50px; float:right;" class="item">4</div>
<div style="height:75px; float:right;" class="item">5</div>
<div style="height:150px; float:right;" class="item">6</div>
</div>
&#13;
答案 0 :(得分:1)
以下代码功能:
* {
box-sizing: border-box;
}
.row {
display: flex;
flex-direction: column;
flex-wrap: wrap;
height: 100vh;
max-width: 100vw;
}
.item {
width: 45%;
margin: 5px;
border: 1px solid #000;
}
@media ( max-width: 500px ), ( max-height: 500px ) {
.row { flex-direction: row; }
.item { flex-basis: 100%; }
.item:nth-child(1) { order: -2; }
.item:nth-child(4) { order: -1; }
}
&#13;
<div class="row">
<div style="height:200px;" class="item">1</div>
<div style="height:150px;" class="item">2</div>
<div style="height:100px;" class="item">3</div>
<div style="height:50px;" class="item">4</div>
<div style="height:75px;" class="item">5</div>
<div style="height:150px;" class="item">6</div>
</div>
&#13;