小编Bar*_*ara的帖子

如何结合 Flexbox 顺序和第 n 个子级(奇数)

我有 5 个 div,每个第二个 div 的颜色都应该与其他 div 不同。

<div class="element element1">Element1</div>
<div class="element element2">Element2</div>
<div class="element element3">Element3</div>
<div class="element element4">Element4</div>
<div class="element element5">Element5</div>
Run Code Online (Sandbox Code Playgroud)

在我的 CSS 中我有

.element {
 background-color: grey;
}

.element:nth-child(odd) {
 background-color: pink;
}
Run Code Online (Sandbox Code Playgroud)

现在这些元素的顺序会动态地改变,我想用 Flexbox 来做到这一点。这意味着我的 CSS 看起来像这样:

.element {
 background-color: grey;
 display:flex;
}

.element5 {
 order: 1;
}

.element2 {
 order: 2;
}
Run Code Online (Sandbox Code Playgroud)

由于 flexbox 不会更改 DOM,因此 nth-child(odd) 仍会为每个第二个 DOM 元素设置样式,这不是用户将看到的顺序。但这就是我想要的。用户看到的每个第二个元素都应该有不同的颜色,即使该元素使用 Flexbox 更改了顺序。有谁知道这是如何运作的?我只能使用 CSS 或 HTML,不能使用 JavaScript 或 PHP。

html css sass css-selectors flexbox

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

css ×1

css-selectors ×1

flexbox ×1

html ×1

sass ×1