CSS(3)具有后代选择器,例如, td em {color: red};
,但是显然是no ancestor selector。什么是替代CSS的选择祖先
那么,我应该怎么做而不是像td {border: 1pt solid red} em;
这样的东西?即如何在某个(X)HTML元素的祖先上设置样式?
注:
- JavaScript是不相关的解决办法,东西XPath'y可能。
CSS(3)具有后代选择器,例如, td em {color: red};
,但是显然是no ancestor selector。什么是替代CSS的选择祖先
那么,我应该怎么做而不是像td {border: 1pt solid red} em;
这样的东西?即如何在某个(X)HTML元素的祖先上设置样式?
注:
可以等待CSS4选择来实现,然后做
td! em {
border: 1pt solid red;
}
见http://dev.w3.org/csswg/selectors4/。
或者......
var xpathresult = document.evaluate("//td[.//em]",
document, null, XPathResult.ANY_TYPE, null);
while (e=xpathresult.iterateNext()){
e.classList.add("border");
}
见https://developer.mozilla.org/en-US/docs/DOM/document.evaluate。普通的浏览器支持注意事项适用。
具有exclamantion标记'td'的元素是该规则适用的元素,而不是选择器'em'最右侧的元素。只是不要屏息支持:) – 2013-05-15 05:47:30
正如我理解你的例子,如果一个'td'包含'em',那么你想设置一个'边界'。这是不可能通过CSS单独。您是否打开了“解决方法”中的javascript/JQuery解决方案(如您所标记的)?如果是这样,那么有一个解决方案。 – ScottS 2013-05-14 14:09:04
重复的http://stackoverflow.com/questions/1251768/css-parent-ancestor-selector。 – 2013-05-15 05:32:46