有溢出的css伪选择器吗?

Cha*_*III 25 html css css-selectors pseudo-class

我试图改变某种东西的风格,而不是它的父div正在溢出.

.pDiv { display: block; width: 300px; height: 100px; border: 1px solid rgb(0,0,0); }
.cDiv { display: block; padding 4px; border-bottom: 1px solid rgb(0,0,0);
.pDiv:overflow .cDiv { border-bottom: none; }

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

有可能做这样的事吗?我会使用last-child伪选择器,但子项的数量可能会有所不同,所以我希望它仅在父div被溢出时才删除last-child的border-bottom.我也想要一个纯CSS解决方案,没有JS!

Bol*_*ock 14

CSS无法根据任何类型的已用或计算样式进行选择,因此您运气不佳.

  • 据我所知,CSS无法选择使用过的或计算出的样式,这是正确的.但它可以 - 在某些情况下 - 选择计算状态,例如:hover和:active.所以我觉得有一天会有一些希望:溢出可能是一个可选择的状态.这将是非常好的:) (6认同)
  • @AdrianSchmidt,直到有人错误地启动了无限重新渲染循环,因为他们的“:overflowing”样式删除了溢出,而原始样式重新触发了溢出......等等。 (3认同)
  • 呸,那太蹩脚了。基本上,当用户滚动到溢出父 div 的底部时,我试图消除 2 个底部边框彼此重叠的情况。我想我必须使用 JS,可惜没有一个简单的 CSS 解决方案:( (2认同)
  • @CharlesJohnThompsonIII:“简单的 CSS 解决方案”无论如何都是一个矛盾修辞法 (2认同)
  • @canon 嗯……是的……确实如此……这当然不是其他计算状态的问题。这可能就是 CSS 无法选择计算样式的原因 (2认同)