什麼是瀏覽器私有屬性字首
CSS3的瀏覽器私有屬性字首是一個瀏覽器生產商經常使用的一種方式。它暗示該CSS屬性或規則尚未成為W3C標準的一部分。
以下是幾種常用字首
- -webkit-
- -moz-
- -ms-
- -o-
- -khtml-(現在基本都沒有用了,被-webkit-取代)
舉例來說,一個CSS3圓角的程式碼是:
-webkit-border-radius: 50%; -o-border-radius: 50%; -moz-border-radius: 50%; -ms-border-radius: 50%;
CSS3字首+標準程式碼的順序
既然CSS3程式碼中(暫時)需要寫上這麼多字首,那麼他們的順序是如何的呢?
一篇文章中詳細分析了程式碼順序:ordering css3 properties
結論:是先寫私有的CSS3屬性,再寫標準的CSS3屬性。
-webkit-transform:rotate(-3deg); /*為Chrome/Safari*/ -moz-transform:rotate(-3deg); /*為Firefox*/ -ms-transform:rotate(-3deg); /*為IE*/ -o-transform:rotate(-3deg); /*為Opera*/ transform:rotate(-3deg); /*為nothing*/
去掉CSS3字首
什麼時候我們可以去掉一個屬性的CSS3字首呢?答案是,當一個屬性成為標準,並且被Firefox、Chrome等瀏覽器的最新版普遍相容的時候。
以border-radius為例:
-moz-border-radius: 12px; /* FF1-3.6 */ -webkit-border-radius: 12px; /* Saf3-4, iOS 1-3.2, Android <1.6 */ border-radius: 12px; /* Opera 10.5, IE9, Saf5, Chrome, FF4, iOS 4, Android 2.1+ */
FF4、Saf5以及Chrome都支援border-radius屬性了,我們就沒有必要寫以上兩條了,程式碼變成:
border-radius: 12px;
徹底甩掉css3字首
你知道Css3的很多數屬性為實驗屬性,使用他們的時候得加上各式各樣的瀏覽器字首。可能你默默忍受了,因為還沒到統一的時間。有沒想過給自己減下 負,偶然間在網上看到一個js解決方案,正好可以解決這個問題。他會幫你自動識別瀏覽器,生成對應的Css3樣式字首,這樣你就可以直接當作標準屬性來使 用了。
引用方式:<script src=”http://leaverou.github.com/prefixfree/prefixfree.min.js”></script>
該js專案地址為http://leaverou.github.com/prefixfree/。 事物總是有兩面性,帶來方便的同時,也引入了一些問題,因為是基於js的,所以對於一些不支援或者禁用js的瀏覽器使用者是很不友好的,很可能會打亂佈局, 而且有時候會影響你使用Css的一些技巧(比如你只是想針對某個瀏覽器使用某個Css3屬性,由於這個js的作用,所有瀏覽器都會應用該條屬性,明顯這不 是你想要的結果)
文章轉載自:問說網 » css3瀏覽器私有屬性字首使用詳解
本文標題:css3瀏覽器私有屬性字首使用詳解
本文地址:http://www.uedsc.com/css3-prefix.htm