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