可以使用哪个CSS选择器来选择处于包装状态的弹性框项目?

cev*_*ing 6 css css-selectors flexbox

我有display:flex3列的行,并且flex-wrap已启用。列之间是手柄divs。包好柱子后,手柄div应当消失。如何使用wrap-state作为CSS选择器来定义弹性项目被包装的情况下的属性?

section {
  display: flex;
  flex-wrap: wrap;
  background-color: lightgray;
}
section * {
  margin: 1ex;
  background-color: white;
}
section * ~ * {
  margin-left: 0;
}
.handle {
  width: 1ex;
  background-color: gray;
}
aside, article {
  flex: 1;
  min-width: 5em;
}
#wide {
  width: 30em;
}
#narrow {
  width: 10em;
}
Run Code Online (Sandbox Code Playgroud)
<section id="wide">
  <aside>
    left
  </aside>
  <div class="left handle"></div>
  <article>
    middle
  </article>
  <div class="right handle"></div>
  <aside>
    right
  </aside>
</section>
<hr>
<section id="narrow">
  <aside>
    top
  </aside>
  <div class="left handle"></div>
  <article>
    middle
  </article>
  <div class="right handle"></div>
  <aside>
    bottom
  </aside>
</section>
Run Code Online (Sandbox Code Playgroud)

在非包装模式下,我需要抑制左边距,在包装模式下,必须抑制顶部边界和手柄。如何知道何时被包裹?

dho*_*ert 5

不幸的是,没有CSS选择器来选择专门包装的flex项。

(不太可能会添加任何这样的选择器,因为它会创建怪异的循环依赖项。例如,假设flex项包装起来是因为它对于第一行来说太宽了,然后选择它并重新设置它的样式,使其很瘦,这意味着它不再包装。因此选择器将不再匹配-但它又变宽了,从而使其包装...等)

  • 您可以通过@ceving发布指向解释此问题的解决方案的代码或文档的链接 (5认同)
  • 这是参考的标准问题。如果您引用标题,则仅通过引用即可将标题移至下一页。这些问题早在TeX之前就已经解决了。 (2认同)