2017-10-16 132 views
2

有下面的代碼內部CSS樣式定義

<head> 
    <style> 
     body { background-color:green; } 
    </style>    
    </head> 
    <body> 
    <script> 
     alert(document.getElementsByTagName("BODY")[0].style.backgroundColor); 
    </script> 
    </body> 

警報顯示無(無結果,空字符串)。 當我將樣式定義移動到body標籤(<body style="background-color:green">)時,它按預期工作 - 返回「綠色」字符串。爲什麼沒有獲得內部樣式(在style標記內)值的工作?

回答

5

元素的.style屬性顯示由style屬性設置的樣式,或直接指定給元素屬性但不是計算樣式(HTMLElement.style)的樣式。爲了得到,你必須使用Window.getComputedStyle()

var style = window.getComputedStyle(document.getElementsByTagName("BODY")[0]); 
alert(style.backgroundColor) 
+0

因此,在_style_標籤內部定義的樣式被稱爲「計算」並擁有它自己的getComputedStyle方法嗎? – Mulligun81

+0

@RobertWade'style.background-color'將會是一個語法錯誤,因爲可以通過移除每個'-'並將'-'後面的字符改爲大寫來完成訪問。 –

+0

@ Mulligun81不,'