我知道这是一个黑暗中的镜头,但有没有办法,只使用CSS,CSS2,没有jquery,没有javascript,来选择和设计元素的祖先?我已经通过选择器,但我发布这个以防我错过了一些东西或有一个聪明的解决方法。
例如,假设我有一个类名为“test”的表嵌套在div中。有某种形式:
<div>
<table class="test">
</table>
</div>
div (with child) .test
{
/*styling, for div, not .test ...*/
}
答案 0 :(得分:10)
CSS2或CSS3中没有父选择器。实际上,可能永远不会有,因为一旦你开始做父选择器,CSS的整个“层叠”部分就不会很好了。
这就是jQuery的用途: - )
答案 1 :(得分:7)
在CSS中有一个:空选择器,允许你匹配空元素,你可以用以下方法否定效果:不是选择器。
div:not(:empty) {
// your styles here
}
但是我不确定所有浏览器是否支持此功能。
答案 2 :(得分:2)
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 */ }
祝你好运
麦克
答案 3 :(得分:1)
:Firefox支持的空伪类,但与IE不兼容。
但IE的一个非常简单的jQuery解决方法是http://www.webmasterworld.com/css/3944510.htm。保存了我的培根