2010-06-08 29 views

回答

2

不,他们不是一回事。计算值是当前元素的样式。如果未设置其他值,则这些计算值将包含默认值,如果设置了一个或多个值,则将包含主要值。

计算值正好是浏览器计算出所有影响这些值的因素后的值。

可以使用element.currentStyle (IE)window.getComputedStyle(element); (W3C)得到计算从脚本值:

// Note that Firefox requires the second argument is passed even when null. 
var cStyle = element.currentStyle || window.getComputedStyle(element, null); 
+0

但它在哪里设置?那现在的风格?当前风格和浏览器默认风格有什么区别? – 2010-06-08 10:30:32

+1

@ metal-gear-solid:我想我已经解释过了。不同之处在于,当前样式与当前样式的计算方式完全相同,并将样式属性和CSS规则考虑在内。如果这些方法没有为特定样式设置值,那么该样式的值将是默认值。 – 2010-06-08 10:36:46

+0

的头 - 我想每个浏览器将有不同的计算风格为每个元素 – 2010-06-08 10:48:34

0

它来自浏览器的CSS引擎。所以是的,它来自浏览器。

+0

那么浏览器样式表的目的是什么? – 2010-06-08 10:35:38

2

浏览器样式是浏览器作为默认样式的样式表,如向链接添加下划线,使标头更大,更粗壮等(某些开发人员不喜欢浏览器样式之间的不一致,以便应用重置如:YUI Reset

当你访问一个网站,它有自己的样式表,这些样式是在浏览器后的网站元素的加入增加了其。

例如,浏览器的默认样式表示所有a元素都应该有下划线并且是蓝色的。您访问了一个使用CSS重置的网站,例如,所有a元素都应该是蓝色的,而不用下划线。此时a元素的计算样式为蓝色,没有下划线(因为稍后应用的重置将覆盖浏览器样式)。然后,网站的主样式表被加载,这使得它很漂亮,并且它说所有a元素都应该有文本阴影,除了很多其他的东西。现在计算的样式是蓝色的,没有下划线和文字阴影。

在计算样式部分中有这么多其他属性的原因是因为浏览器添加了很多默认样式。

作为一个旁注,这与css selector priorities有些复杂。

0

计算的样式是所有样式规则排序后应用于元素的实际样式。

样式规则可能来自:

  • 浏览器的默认样式
  • 可选的用户定义的样式在浏览器
  • 在页面样式表
  • 样式属性的元素

考虑所有适用于该元素的样式规则,以及最具体和指定的规则每个属性的最后一个是适用的。