1

是否可以定义 css 类的行为依赖于其他 css 类?

例如; 什么时候

a:hover 

然后我想设置

p {background:#fff;}

纯CSS可以做到吗?

编辑:假设不存在嵌套关系。

4

4 回答 4

2

如果你有这样的结构:

<a><p>...</p></a>

那么这个:

a:hover p {background: #fff;}

将工作。但是,块元素不应该放在内联元素内(在这种情况下,没有<p><a>

如果您的标记是有效的,并且看起来像这样:

<p><a>...</a></p>

那么你可以有

p:hover {background: #fff;}

但是后代不能影响父 css(除非您使用 javascript),而相反是正确的(父 css 影响后代)

于 2013-03-07T14:21:53.873 回答
2

如果您的意思是无论他们在 DOM 中的什么位置,您都希望所有人p都拥有这种风格,那么不,您不能那样做。当收到悬停时a:hover,您需要使用脚本将样式(或包含该样式的某个类)应用于p元素。a

于 2013-03-07T14:25:09.063 回答
0

我不明白为什么你会受到这些限制而没有一点创造力。如果您使用固定定位,则后代可以与其父代重叠。并且仍然像后代一样回应。

于 2013-03-07T14:36:06.497 回答
0

如果<p>标签紧跟在<a>标签之后,那么您可以使用相邻的兄弟选择器,例如

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

这在 IE8+ 中受支持

于 2013-03-07T15:06:13.450 回答