有没有“以前的兄弟”CSS选择器?

+是为下一个兄弟姐妹。 对于以前的兄弟姐妹有没有相同的东西?


不,没有“以前的兄弟姐妹”选择器。

在一个相关的说明中, ~是一般继任兄弟姐妹(意味着这个元素在这之后,但不一定是在之后),并且是一个CSS3选择器。 +是用于下一个兄弟,并且是CSS2.1。

请参见选择器级别3和5.7中的相邻兄弟组合器。级联样式表级别2修订1(CSS 2.1)规范中的相邻兄弟选择器。


我找到了一种方式来设计所有以前的兄弟姐妹(与~相反),这可能取决于您需要的功能。

假设你有一个链接列表,当它悬停在一个链接上时,所有以前的链接都会变成红色。 你可以这样做:

/* default link color is blue */
.parent a {
  color: blue;
}

/* prev siblings should be red */
.parent:hover a {
  color: red;
}
.parent a:hover,
.parent a:hover ~ a {
  color: blue;
}
<div class="parent">
  <a href="#">link</a>
  <a href="#">link</a>
  <a href="#">link</a>
  <a href="#">link</a>
  <a href="#">link</a>
</div>

选择器级别4引入:has() (以前是主题指示符! ),这将允许您选择以前的兄弟:

previous:has(+ next) {}

......但在撰写本文时,浏览器支持还有一段距离。

链接地址: http://www.djcxy.com/p/3903.html

上一篇: Is there a "previous sibling" CSS selector?

下一篇: What does the "+" (plus sign) CSS selector mean?