将CSS应用于除某些类后代之外的任何元素?

托尼·博格达诺夫(Tony Bogdanov)

是否可以将某些CSS应用于除某个类的后代之外的任何元素?

这是一个小提琴:http : //jsfiddle.net/68jgdthm

如您所见,我希望页面上的dark所有内容都属于light该类的后代元素这里的技巧是,不知道元素是否是直接后代,例如,可能是这样的:

<div class="light">
  <p>Element</p>
</div>

但也可能是这样的:

<div class="light">
  <div>
    <div>
      <p>Element</p>
    </div>
  </div>
</div>

dark类几乎总是加到body元件和将永远是任何的父light类。

一个人可能会说:

  • 只需使主体“变轻”并将dark添加到所需的任何元素即可。-但实际上我需要相反的东西,我需要一切dark,某些要素light

  • 然后添加“浅色”样式并将light添加到所需的元素。-我已经有了dark样式,因此我正在寻找一个更简单的“排除”解决方案(我正在使用LESS,因此添加前缀等非常容易)。

时钟

如果不编写单独的选择器,将无法以这种方式排除后代。:not()出于此处所述的原因,即使使用也无法执行此操作

幸运的是,.light元素仅会在.dark元素的上下文中发生反之亦然的事实使此操作变得容易一些。由于您已经有bodyCSS规则,因此只需添加.light p到该规则,然后将整个规则集移动到下面即可,.dark p因此.light p具有优先权:

.dark p {
    color: #000;
}

body, .light p {
    color: #ccc;
}

更新的小提琴

另外,如果您想保留body规则的最前面,则可以提高其特异性.light p以确保其优先级:

body, body .light p {
    color: #ccc;
}

.dark p {
    color: #000;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将CSS应用于除悬停元素之外的其他元素?

来自分类Dev

将CSS样式应用于除具有特定ID之外的所有元素

来自分类Dev

将CSS样式应用于除具有特定ID之外的所有元素

来自分类Dev

CSS:将CSS样式应用于除材料角度之外的所有内容

来自分类Dev

将CSS样式应用于父类的子元素

来自分类Dev

将CSS规则应用于除一个标签之外的所有内容

来自分类Dev

将CSS应用于除一个特定页面之外的所有页面

来自分类Dev

如何将某些设置应用于除另一台主机之外的ssh主机?

来自分类Dev

如何将du(fx)应用于除某些子目录之外的所有子目录?

来自分类Dev

如何将 href 和 data-toggle 应用于除其子元素之一之外的元素?

来自分类Dev

在Vuetify应用中仅将CSS类应用于某些屏幕宽度

来自分类Dev

将CSS应用于元素“路径”

来自分类Dev

jQuery将CSS应用于除第二行以外的所有元素

来自分类Dev

如何将CSS3滤镜灰度应用于除figcaption的标记之外的所有属性?

来自分类Dev

CSS类将应用于div元素和按钮元素

来自分类Dev

CSS 类/id 样式未应用于使用 PHP 包含的 <nav>、<footer> 和 <header> 后代

来自分类Dev

在CSS中,html标记和类名称之间的空格是否表示该样式将应用于该标记内的任何元素?

来自分类Dev

使用CSS将悬停类应用于文本框和td元素

来自分类Dev

CSS选择器将规则应用于相似元素的多个类

来自分类Dev

将CSS应用于特定类的最后一个元素

来自分类Dev

jQuery将CSS类应用于下一个单个元素

来自分类Dev

如何使用 JavaScript 将类应用于元素以使 CSS 转换起作用?

来自分类Dev

如何将引导程序类应用于 css 文件中的每个相同的 HTML 元素?

来自分类Dev

将CSS应用于某些列表项

来自分类Dev

将CSS动画应用于特定元素,而不应用于其子元素

来自分类Dev

将类应用于ckeditor中的块级元素

来自分类Dev

将随机类应用于多组元素,无需重复

来自分类Dev

将类应用于具有属性的元素

来自分类Dev

如何将模板应用于除特殊模板之外的所有模板

Related 相关文章

  1. 1

    如何将CSS应用于除悬停元素之外的其他元素?

  2. 2

    将CSS样式应用于除具有特定ID之外的所有元素

  3. 3

    将CSS样式应用于除具有特定ID之外的所有元素

  4. 4

    CSS:将CSS样式应用于除材料角度之外的所有内容

  5. 5

    将CSS样式应用于父类的子元素

  6. 6

    将CSS规则应用于除一个标签之外的所有内容

  7. 7

    将CSS应用于除一个特定页面之外的所有页面

  8. 8

    如何将某些设置应用于除另一台主机之外的ssh主机?

  9. 9

    如何将du(fx)应用于除某些子目录之外的所有子目录?

  10. 10

    如何将 href 和 data-toggle 应用于除其子元素之一之外的元素?

  11. 11

    在Vuetify应用中仅将CSS类应用于某些屏幕宽度

  12. 12

    将CSS应用于元素“路径”

  13. 13

    jQuery将CSS应用于除第二行以外的所有元素

  14. 14

    如何将CSS3滤镜灰度应用于除figcaption的标记之外的所有属性?

  15. 15

    CSS类将应用于div元素和按钮元素

  16. 16

    CSS 类/id 样式未应用于使用 PHP 包含的 <nav>、<footer> 和 <header> 后代

  17. 17

    在CSS中,html标记和类名称之间的空格是否表示该样式将应用于该标记内的任何元素?

  18. 18

    使用CSS将悬停类应用于文本框和td元素

  19. 19

    CSS选择器将规则应用于相似元素的多个类

  20. 20

    将CSS应用于特定类的最后一个元素

  21. 21

    jQuery将CSS类应用于下一个单个元素

  22. 22

    如何使用 JavaScript 将类应用于元素以使 CSS 转换起作用?

  23. 23

    如何将引导程序类应用于 css 文件中的每个相同的 HTML 元素?

  24. 24

    将CSS应用于某些列表项

  25. 25

    将CSS动画应用于特定元素,而不应用于其子元素

  26. 26

    将类应用于ckeditor中的块级元素

  27. 27

    将随机类应用于多组元素,无需重复

  28. 28

    将类应用于具有属性的元素

  29. 29

    如何将模板应用于除特殊模板之外的所有模板

热门标签

归档