2010-06-08 59 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

計算的樣式是所有樣式規則排序後應用於元素的實際樣式。

樣式規則可能來自:

  • 瀏覽器的默認樣式
  • 可選的用戶定義的樣式在瀏覽器
  • 在頁面樣式表
  • 樣式屬性的元素

考慮所有適用於該元素的樣式規則,以及最具體和指定的規則每個屬性的最後一個是適用的。