当前位置主页 > 资料库 > 前端教程 > 理解User Agent样式和CSS3 initial属性

理解User Agent样式和CSS3 initial属性

05-23

如果仅仅使用HTML来创建一个页面,没有使用任何的CSS样式。当你打开浏览器渲染这个页面的时候,浏览器是如何知道将超链接显示为蓝色的文字并且带有一个下划线?为什么在IE浏览器中默认的H1文字的margin是14像素的,而在Firefox浏览器中是0.67em呢?

这些问题的答案是User Agent样式。UA样式是浏览器内置的样式表文件。每一个浏览器都有它自己的UA样式表,在浏览器没有没有被告知使用其它样式表的情况下,这个UA样式就是渲染页面的样式表。

告诉浏览器使用站点样式表的方法是通过使用内置或外链的样式表(通过<link>标签),这样浏览器将会使用站点样式表覆盖UA样式表。这时候浏览器会做成下面简单的决定:

  • 如果新的样式表样浏览器的UA样式表规则冲突,那么将会使用新的样式表来渲染页面。
  • 任何在站点样式表中没有指定的样式,都会被假定使用浏览器的UA样式规则。

由于当前众多的浏览器厂商,各自有自己不同的UA样式表,导致前端开发者们为了使各个CSS属性在不同的浏览器中表现一致而编写庞大的CSS reset样式。CSS重置样式表使用到页面中,会有效的消除UA样式表对页面的影响。

UA样式表的好处是开发者可以放心的编写自己的CSS样式,而不必担心某些属性没有书写而使浏览器不知道该如何进行渲染。你可以在iecss.com查看IE浏览器的UA样式表,Opera浏览器的UA样式表可以在这里查看。要查看Firefox浏览器的UA样式规则也十分简单,在Firefox浏览器的地址栏上输入:resource://gre-resources/html.css,回车后就可以看到。

CSS3中,对UA样式表的使用做了一些调整,使UA样式表对开发者更加友好。例如下面的例子:在一个<div>中放置一个<p>段落。

<div style="color: red;">
  <p>这是一些<span>红色</span>的文字。</p>
</div>                              
                            

段落文字的颜色继承自它的父元素<div>,是红色的。如果希望段落中<span>的文字变为黑色,我们可以有两种选择。传统的做法是:

<div style="color: red;">
  <p>这是一些 <span style="color: #000;">红色</span>的文字。</p>
</div>                              
                            

使用CSS3我们可以像下面这样做:

<div style="color: red;">
  <p>这是一些 <span style="color: initial">红色</span>的文字。</p>
</div>                              
                            

initial属性是指将一个属性重置回默认的UA样式。这个方法在你需要否定某些样式的时候特别有用。

div { border: 3px dotted green; }
div.special { border: initial; }
/*通过“special”重置div的边框回UA样式*/                              
                            

注意,因为这是CSS3属性,在不同的浏览器中支持initial属性的情况也不相同。Chrome 和 Safari支持这个属性,不需要厂商前缀,Firefox浏览器需要使用–moz前缀,IE浏览器不支持这个属性。

Previous:
上一篇:jQuery Boilerplate-jQuery插件开发模板介绍
Next:
下一篇:使用CSS Blend Modes制作跨浏览器的文字遮罩效果
返回顶部