CSS在應(yīng)用到瀏覽器時(shí),會(huì)先尋找最佳匹配的樣式規(guī)則。如果瀏覽器中有多個(gè)可用的樣式規(guī)則,那么瀏覽器就會(huì)以特定的順序進(jìn)行解析,然后應(yīng)用到HTML代碼中。這個(gè)解析規(guī)則被稱(chēng)為“層疊樣式表的權(quán)重”。
通常來(lái)說(shuō),我們可以在CSS規(guī)則中直接使用標(biāo)準(zhǔn)的CSS屬性。但是在CSS出現(xiàn)新規(guī)范、新屬性時(shí),有些瀏覽器可能還不支持。為了解決這個(gè)問(wèn)題,有些開(kāi)發(fā)者可能會(huì)考慮使用“私有屬性”。
私有屬性通常被認(rèn)為是一種有爭(zhēng)議的解決方案,因?yàn)樗鼤?huì)引入一些不可預(yù)測(cè)的行為。但是如果需要在特定的瀏覽器中使用新的CSS特性,私有屬性可能是必要的。
-moz-box-shadow: 5px 5px 5px #888;
-webkit-box-shadow: 5px 5px 5px #888;
box-shadow: 5px 5px 5px #888;
上面的代碼展示了CSS中如何使用私有屬性。在這個(gè)例子中,box-shadow
屬性是一個(gè)比較新的CSS3屬性。最新的版Firefox和Chrome都支持這個(gè)屬性。但是為了支持其他的瀏覽器,需要添加前綴-moz-
和-webkit-
。
最后,需要牢記一點(diǎn):盡管使用私有屬性可以幫助我們?cè)诓煌臑g覽器中使用最新的CSS3特性,但需要在開(kāi)發(fā)過(guò)程中格外小心,因?yàn)樗接袑傩栽诓煌臑g覽器中可能會(huì)產(chǎn)生不同的行為。