有没有办法用CSS中的一个选择器更改整个文档?

时间:2013-08-13 20:43:24

标签: html css css-selectors

我正在尝试更改HTML中整个页面的字体。总的来说,我的意思是一切:按钮,表格等。有没有办法在CSS中做到这一点?

html {
    color: green;
}

这会使文字变为绿色,而不是按钮文本。

5 个答案:

答案 0 :(得分:3)

嗯,有universal selector

* {
  color: green;
}

请注意,此选择器的特异性最低(MDN)。

答案 1 :(得分:2)

外卡选择器

* {
    color: green;
}

可能是你需要过度使用内联CSS和javascript生成的CSS。在这种情况下,也使用!important

* {
        color: green !important;
    }

答案 2 :(得分:1)

使用*通用CSS选择器。

通用选择器匹配任何元素类型。如果它不是简单选择器的唯一组件,则可以暗示(因此省略)。

选择器div *将匹配以下em元素:

    h1元素中的
  • “Universal”(匹配<h1>
  • 在p元素中“强调”(匹配<p>
  • 第一个li元素中的
  • “not”(与<ul><li>匹配)
  • 第二个li元素中的
  • “type”(与<ul><li>匹配)

示例:

This rule set will be applied to every element in a document:

* {
  color: green;
}

另外要添加,它与大多数浏览器兼容,尽管它可能在Internet Explorer 5.5, 6.0, 7.0中出错。

答案 3 :(得分:1)

如果您不需要支持IE&lt; 8,并且想要一些不那么smelly的东西,只在html上设置一个明确的颜色,并强制其他所有颜色继承继承。默认情况下,大多数元素都已继承颜色,但不是全部。

由于这意味着应用两个不同的color声明,因此您需要两个单独的规则:

html {
    color: green;
}

body * {
    color: inherit !important;
}

答案 4 :(得分:0)

老实说,你不应该依赖通配符选择器来做到这一点。您应该利用CSS的本机继承。最好的办法是从样式表中删除特定的颜色声明(根据需要),并将颜色添加到您的body或html标记中。使用通配符与此类似,除非您声明每个元素都应该具有与本机继承相关的CSS。