【发布时间】:2016-04-28 05:07:23
【问题描述】:
我想知道是否有一个 CSS 选择器可以用来选择所有后代,直到遇到某个标签。
例如,在下面的 DOM 结构中,我想为“id1”添加一个选择器,以便它可以设置所有后代的样式,但不包括“id4”。也就是class1和class2对应的div。我事先知道 id1 和 id4,但我不知道 class1 和 class2(在我点击“id4”之前,链中可能还有更多)。我希望将样式应用于与class1和class2对应的div,但仅此而已。基本上,应用程序的 div 已经将它们的位置设置为某个东西,我希望能够保持原样,只需修改对应于 class1 和 class2 的 div 的位置。
理想情况下,我希望避免列出我正在使用的所有 div,因为该应用程序在 ID“deep-nesting-of-known-divs-here”下有相当多的 div
<div id="id 1">
<div class="class1">
<div class="class2">
<div id="id4">
<div id="deep-nesting-of-known-divs-here">
</div>
</div>
</div>
</div>
</div>
原因是我在某个站点的 Safari 上遇到了一个奇怪的问题。我有一个将 iframe 注入页面的扩展程序。注入 iframe 后,页面似乎正在运行一个脚本,导致 id2 和 id3 在 id1 和 id4 之间注入。因此,iframe 无法正常显示。
【问题讨论】:
-
大多数样式应用于
id4的祖先将被id4继承。您必须单独覆盖每个继承的样式。
标签: css