CSS在没有flex的情况下更改div顺序

ItF*_*eak 6 html css

给定一个 HTML:

<div class="class">1</div>
<div class="class">2</div>
<div class="class">3</div>
<div class="class">4</div>
Run Code Online (Sandbox Code Playgroud)

我知道我可以display:flex一起做:

.class :nth-child(1) { order: 2 }
.class :nth-child(2) { order: 4 }
.class :nth-child(3) { order: 1 }
.class :nth-child(4) { order: 3 }
Run Code Online (Sandbox Code Playgroud)

这应该产生

<div class="class">3</div>
<div class="class">1</div>
<div class="class">4</div>
<div class="class">2</div>
Run Code Online (Sandbox Code Playgroud)

有没有办法在不将 flexbox 与其 order 属性结合使用的情况下做到这一点?

jo3*_*3rn 11

您可以使用具有类似订单属性的网格布局。

.boxes {
  display: grid;
}

.class:nth-of-type(1) {
  order: 2;
}

.class:nth-of-type(2) {
  order: 4;
}

.class:nth-of-type(3) {
  order: 1;
}

.class:nth-of-type(4) {
  order: 3;
}
Run Code Online (Sandbox Code Playgroud)
<div class="boxes">
  <div class="class">1</div>
  <div class="class">2</div>
  <div class="class">3</div>
  <div class="class">4</div>
</div>
Run Code Online (Sandbox Code Playgroud)