溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Vendor Prefix:需要瀏覽器引擎前綴的原因是什么

發(fā)布時(shí)間:2021-08-23 14:49:01 來源:億速云 閱讀:89 作者:小新 欄目:移動(dòng)開發(fā)

這篇文章給大家分享的是有關(guān)Vendor Prefix:需要瀏覽器引擎前綴的原因是什么的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

瀏覽器引擎前綴(Vendor Prefix)是什么?

Vendor prefix—瀏覽器引擎前綴,是一些放在CSS屬性前的小字符串,用來確保這種屬性只在特定的瀏覽器渲染引擎下才能識(shí)別和生效。谷歌瀏覽器和Safari瀏覽器使用的是WebKit渲染引擎,火狐瀏覽器使用的是Gecko引擎,Internet Explorer使用的是Trident引擎,Opera以前使用Presto引擎,后改為WebKit引擎。一種瀏覽器引擎里一般不實(shí)現(xiàn)其它引擎前綴標(biāo)識(shí)的CSS屬性,但由于以WebKit為引擎的移動(dòng)瀏覽器相當(dāng)流行,火狐等瀏覽器在其移動(dòng)版里也實(shí)現(xiàn)了部分WebKit引擎前綴的CSS屬性。

瀏覽器引擎前綴(Vendor Prefix)有哪些?

-moz- /* 火狐等使用Mozilla瀏覽器引擎的瀏覽器 */
-webkit- /* Safari, 谷歌瀏覽器等使用Webkit引擎的瀏覽器 */
-o- /* Opera瀏覽器(早期) */
-ms- /* Internet Explorer (不一定) */

為什么需要瀏覽器引擎前綴(Vendor Prefix)?

這些瀏覽器引擎前綴(Vendor Prefix)主要是各種瀏覽器用來試驗(yàn)或測(cè)試新出現(xiàn)的CSS3屬性特征??梢钥偨Y(jié)為以下3點(diǎn):

  • 試驗(yàn)一些還未成為標(biāo)準(zhǔn)的的CSS屬性——也許永遠(yuǎn)不會(huì)成為標(biāo)準(zhǔn)

  • 對(duì)新出現(xiàn)的標(biāo)準(zhǔn)的CSS3屬性特征做實(shí)驗(yàn)性的實(shí)現(xiàn)

  • 對(duì)CSS3中一些新屬性做等效語義的個(gè)性實(shí)現(xiàn)

這些前綴并非所有都是需要的,但通常你加上這些前綴不會(huì)有任何害處——只要記住一條,把不帶前綴的版本放到最后一行:

-moz-border-radius: 10px;
-webkit-border-radius: 10px;
-o-border-radius: 10px;
border-radius: 10px;

有些新的CSS3屬性已經(jīng)試驗(yàn)了很久,一些瀏覽器已經(jīng)對(duì)這些屬性不再使用前綴。Border-radius屬性就是一個(gè)非常典型的例子。最新版的瀏覽器都支持不帶前綴的Border-radius屬性寫法。

需要使用Vendor Prefixes的CSS3屬性

主要的需要添加瀏覽器引擎前綴(vendor-prefix)的屬性包括:

  • @keyframes

  • 移動(dòng)和變換屬性(transition-property, transition-duration, transition-timing-function, transition-delay)

  • 動(dòng)畫屬性 (animation-name, animation-duration, animation-timing-function, animation-delay)

  • border-radius

  • box-shadow

  • backface-visibility

  • column屬性

  • flex屬性

  • perspective屬性

 完整的列表不只這些,而且還會(huì)增加。

瀏覽器引擎前綴(vendor-prefix)的用法

當(dāng)需要使用瀏覽器引擎前綴(vendor-prefix)時(shí),最好是把帶有各種前綴的寫法放在前面,然后把不帶前綴的標(biāo)準(zhǔn)的寫法放到最后。比如: 

/* 簡單屬性 */
.myClass {
	-webkit-animation-name: fadeIn;
	-moz-animation-name: fadeIn;
	-o-animation-name: fadeIn;
	-ms-animation-name: fadeIn;
	animation-name: fadeIn;  /* 不帶前綴的放到最后 */
}
/* 復(fù)雜屬性 keyframes */
@-webkit-keyframes fadeIn {
	0% { opacity: 0; } 100% { opacity: 0; }
}
@-moz-keyframes fadeIn {
	0% { opacity: 0; } 100% { opacity: 0; }
}
@-o-keyframes fadeIn {
	0% { opacity: 0; } 100% { opacity: 0; }
}
@-ms-keyframes fadeIn {
	0% { opacity: 0; } 100% { opacity: 0; }
}
/* 不帶前綴的放到最后 */
@keyframes fadeIn {
	0% { opacity: 0; } 100% { opacity: 0; }
}

 Internet Explorer

Internet Explorer 9 開始支持很多(但并不是全部)CSS3里的新屬性。比如,你也可以在IE里使用不帶瀏覽器引擎前綴(vendor-prefix)的border-radius屬性。

IE6到IE8都不支持CSS3,很遺憾的是,使用這些低版本瀏覽器的用戶還很多。所以,確保你的網(wǎng)站設(shè)計(jì)在不支持CSS3的情況下也能正常顯示。對(duì)于一些屬性:border-radius , linear-gradient, 和 box-shadow, 你可以使用CSS3Pie,它是一個(gè)很小的文件,把它放到你的網(wǎng)站的根目錄下,就能讓你的頁面中IE6,IE8中也支持這些屬性。

感謝各位的閱讀!關(guān)于“Vendor Prefix:需要瀏覽器引擎前綴的原因是什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI