1

我正在尝试在 a<a>悬停之后设置所有节点的样式。

HTML代码是

<a href="#">test</a>
<p>Is styles</p>
<p>Is not styled</p>
<p>Is not styled</p>
<p>Is not styled</p>
<p>Is not styled</p>

CSS代码是

a:hover + p {
    background: #ffbbff;
}

这是一个小提琴。问题是,只有第一个兄弟是样式化的。我错过了什么吗?

4

4 回答 4

3

试试~(通用兄弟组合器)

a:hover ~ p {
    background: #ffbbff;
}

http://jsfiddle.net/bKvMw/1/

于 2013-04-21T22:17:57.487 回答
1

+只选择相邻的兄弟姐妹。你想用~

请参阅相邻兄弟选择器通用兄弟选择器

于 2013-04-21T22:18:08.783 回答
0

你需要一个通用的兄弟选择器,+是一个相邻的兄弟选择器

试试这个:

a:hover ~ p {
    background: #ffbbff;
}
于 2013-04-21T22:18:28.850 回答
0

您使用了错误的选择器。+选择相邻的兄弟姐妹。您需要使用通用的兄弟选择器 ~

a:hover ~ p {
    background: #ffbbff;
}

看这个演示。

如果您愿意,您甚至可以组合这些选择器:

a:hover ~ p {
    background: #ffbbff;
}

a:hover + p {
    background: #ffffbb;
}

看这个演示。

于 2013-04-21T22:49:57.740 回答