层叠是说按作者,读者和浏览器这样的优先级顺序来应用样式.如果读者样式中有!important这个声明,则读者的样式优先级最高.
我想问这个读者的样式是不是要自己写css文件?
还有比如ie自定义颜色字体这些选项是属于读者还是浏览器默认层面?
第一个问题:是需要读者(user)自己写的,IE可以通过Internet 选项
-> 外观
-> 辅助功能
-> 用户样式表
来指定样式文件。Chrome可以使用Stylish
扩展来实现。
至于你说的ie中自定义字体颜色,它的优先级比user agent
的高,但是比user
的低,你可以理解为他修改了user agent
的默认值,也可以认为他保存在了一个你看不到的user
级别的样式文件中。
下面是关于这三者优先级之间的一个简单的介绍,便于大家理解,如果已经了解,可以选择跳过。
CSS按来源的不同分为3类author
, user
, user agent
。简单解释一下:
-
author
: 来自文档的样式文件。我们平常所写的样式基本上都是这一类的。 -
user
: 用户指定的自定义的样式文件。一些UA允许用户导入自定义的样式文件。 -
user agent
: 一些UA(如:浏览器)要为某些元素预设一个默认的样式,以方便阅读。
详情请参考(见参考链接)
那么,这三者之间的关系是如何呢?
标准里面说的很清楚,优先级: author
> user
> user agent
。这时是不会考虑CSS的specificity
的。
但是对于使用了!important
关键字的样式来说,user
的优先级是大于author
的优先级的。这么做的原因是试图平衡author
和user
。
因此最终的优先级顺序是:
user agent
<user
中普通的样式 <author
中普通的样式 <author
中使用!important
修饰的样式 <user
中使用!important
修饰的样式。
参考:
http://www.w3.org/TR/CSS21/cascade.html#cascade