16

可能重复:
是否有 CSS 父选择器?

我知道这是在黑暗中拍摄,但是有没有办法只使用 css、CSS2、没有 jquery、没有 javascript 来选择元素的祖先并设置其样式?我已经浏览了选择器,但如果我错过了什么或者有一个聪明的解决方法,我会发布这个。

例如,假设我有一个嵌套在 div 中的类名为“test”的表。是否有某种:

<div>
    <table class="test">
    </table>
</div>
div (with child) .test
{
     /*styling, for div, not .test ...*/
}
4

4 回答 4

11

CSS2 或 CSS3 中没有父选择器之类的东西。实际上,可能永远不会有,因为一旦您开始使用父选择器,CSS 的整个“级联”部分就不会很好处理。

这就是 jQuery 的用途:-)

于 2009-08-09T17:17:18.293 回答
9

在 CSS 中有一个 :empty 选择器可以让你匹配空元素,你可以用 :not 选择器来否定效果。

div:not(:empty) {
    // your styles here
}

但是我不确定是否所有浏览器都支持这个。

于 2009-08-09T17:18:06.403 回答
3
div:not(:empty) {
    margin:0;
}

未被 http://jigsaw.w3.org/css-validator/识别为 CSS2

CSS 的目的是从更多包含到更具体的元素“级联”。我想你有可能“颠倒你的逻辑”,比如

div.myclass   { /* format parent */ }
div.myclass * { /* neutralize formats in descendants */}
div.myclass img { /* more specific formats for img children */ }

祝你好运迈克

于 2009-10-07T10:58:37.050 回答
2

:empty 伪类,Firefox 支持,但不兼容 IE。

但是 IE 的一个非常简单的 jQuery 解决方法位于http://www.webmasterworld.com/css/3944510.htm。救了我的培根

于 2010-07-01T23:04:40.590 回答