Here is fiddle http://jsfiddle.net/uday_redI/V9F7d/7/我有 2 个 div,一个是外盒,另一个是innerBox
, 单击时innerBox
我需要改变外部的属性box
.
从 css3 开始这是不可能的,那么 css4 中有什么可用的吗?
可能没有 CSS4 这样的东西,但有“选择器级别 4”这样的东西。这是下一代选择器未完成的规范,并且does在规范中包含父选择器。或者更准确地说,是一个“主题”选择器。
规范文档在这里:http://dev.w3.org/csswg/selectors/ http://dev.w3.org/csswg/selectors/
但请注意,这是一个devURL,并且规范仍在进行中。
在实际代码中,主题选择器可能如下所示:
div > !.foo > span
这将选择一个具有该类的元素foo
,这是一个孩子div
,并且有一个span
小时候就在其中。
然而,正如我所说,这不是一个完成的规范(事实上,主题选择器的语法在此过程中已多次更改,并且仍可能随时进一步更改)。它还尚未在任何浏览器中实现,并且也不期望它很快实现。
此外,即使/当选择器级别 4 在浏览器中实现时,规范也明确指出,出于性能原因,某些选择器可以排除在实现之外(它们区分“快速”选择器和“完整”选择器集) 。主题选择器是其中之一:如果规范保持原样,那么浏览器就不会强制将其添加到 CSS 中。在这种情况下,他们可能会将其添加到 Javascript 中,即像这样的方法document.querySelector()
但不是 CSS 本身。这不会以任何方式真正帮助您,因为无论如何已经可以通过 javascript 找到父元素。 (有关详细信息,请参阅上面链接的规范中的第 2.1 节)。
所以简短的回答是:不,这是不可能的。将来也许有可能,但这对现在没有帮助,甚至在将来也可能会出现令人震惊的警告。
(您可能还喜欢阅读本文 http://www.sitepoint.com/css-selectors-level-4-the-path-to-css4/这是比实际规范更适合最终用户的文档。但您会注意到,自本文撰写以来,主题选择器语法已发生变化)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)