瀏覽器解釋HTML並在解釋結果時顯示結果。那麼爲什麼第一類屬性不會被第二類屬性覆蓋。爲什麼不用第二個類屬性覆蓋前一個。 HTML
<span class ='first' class= 'second' >text</span>
但如果我這樣做
<span class ='first' class= 'second' style='color: green'>text</span>
所有以前的造型被覆蓋。
這裏是fiddle。
謝謝。
瀏覽器解釋HTML並在解釋結果時顯示結果。那麼爲什麼第一類屬性不會被第二類屬性覆蓋。爲什麼不用第二個類屬性覆蓋前一個。 HTML
<span class ='first' class= 'second' >text</span>
但如果我這樣做
<span class ='first' class= 'second' style='color: green'>text</span>
所有以前的造型被覆蓋。
這裏是fiddle。
謝謝。
具有相同屬性的兩次是無效的HTML和瀏覽器執行錯誤恢復。
具體地,從the specification:
當用戶代理離開屬性名稱狀態(併發射標記令牌,如果合適的話)之前,將完整的屬性的名稱必須進行比較,以在相同的其他屬性令牌;如果令牌上已經有一個具有完全相同名稱的屬性,那麼這是一個分析錯誤,並且必須刪除新屬性以及與其關聯的值(如果有的話)。
因此,第二個類屬性被忽略,因爲開始標記已經有一個類屬性。
(請注意,您可以將元素指定多個類,因爲屬性接受一個空格分隔列表:class="first second"
)
樣式屬性不會覆蓋類屬性。該元素將具有與其關聯的兩個屬性。但是,當應用樣式表時,樣式屬性規則比具有類選擇器的規則具有更高的specificity,因此樣式屬性中指定的屬性會贏得級聯。
一個html元素只能有1 class
(或任何其它類型的屬性:1),從而第二個將總是由瀏覽器(被拒絕,即使它看起來像元件具有2 - 有效它將只有一個)
的規則是style
性的元素上會始終以優先樣式之前在class
因爲這兩行代碼都不是有效的HTML部分。 – ElmoVanKielmo