CSS工作組(CSS Working Group)聯(lián)合主席Daniel Glazmang告知大家非WebKit的瀏覽器廠商正在考慮支持-webkit-前綴CSS屬性。

一石激起千層浪,于是業(yè)內(nèi)展開(kāi)了激烈的官方討論。這里,翻譯篇相關(guān)文章,希望米娜桑對(duì)該討論有所了解,并發(fā)表自己的一些觀點(diǎn)。

以下為翻譯全文

對(duì)于CSS的私有前綴,開(kāi)發(fā)者可謂愛(ài)恨交加。他們可以讓我們?cè)诨ㄙM(fèi)大量冗余代碼的基礎(chǔ)上使用一些前言技術(shù)。

background-image: -webkit-linear-gradient(#fff, #000); background-image: -moz-linear-gradient(#fff, #000); background-image: -ms-linear-gradient(#fff, #000); background-image: -o-linear-gradient(#fff, #000); background-image: linear-gradient(#fff, #000);

上面代碼理論上可行,但是考慮到實(shí)際……

  1. 實(shí)驗(yàn)性質(zhì)的屬性往往都是先拿webkit引擎作小白鼠,沒(méi)人能保證他們會(huì)復(fù)制在其他瀏覽器上。
  2. 通常很難界定私有前綴是否屬于CSS規(guī)范的一部分。一些瀏覽器生產(chǎn)商提交的屬性并不標(biāo)準(zhǔn)。
  3. 即使變成了標(biāo)準(zhǔn)屬性,其不準(zhǔn)確的私有前綴版本依舊支持。你的老代碼依舊可以工作;你不會(huì)重新改正。

你會(huì)經(jīng)??吹揭恍┱军c(diǎn)只使用-webkit-, 即使其他瀏覽器已經(jīng)對(duì)該屬性無(wú)前綴寫(xiě)法有了廣泛的支持(例如border-radius)。因此,Chrome和Safari比競(jìng)爭(zhēng)對(duì)手的瀏覽器看起來(lái)更好——其他廠商不樂(lè)意看到。

該問(wèn)題已經(jīng)在2012/2/7 W3C會(huì)議上提出并討論。

Web標(biāo)準(zhǔn)積極分子正教人使用webkit. 你會(huì)看到所有的web標(biāo)準(zhǔn)倡導(dǎo)者,提倡人們使用WebKit的前綴。

我們的工作就是要解決互通性。

在這一點(diǎn)上,我們?cè)噲D找出它和多少WebKit的前綴屬性,真正在Mozilla實(shí)現(xiàn)了支持。

如果我們不支持WebKit的前綴,我們會(huì)把自己鎖在移動(dòng)網(wǎng)絡(luò)部分的外面。

讓我們花點(diǎn)功夫好好理解下。

無(wú)-webkit瀏覽器將支持-webkit前綴。這就是W3C想出來(lái)的解決之法。

這個(gè)想法可能是失敗的。兩個(gè)或兩個(gè)以上相同的WebKit屬性的實(shí)現(xiàn)將不兼容,因此開(kāi)發(fā)人員將不能夠在任何地方使用它。沒(méi)有人最終勝利 – 包括蘋(píng)果和谷歌。

但我更關(guān)心如果解決方案是成功的,它會(huì)造成不可挽回的損失。一旦開(kāi)發(fā)者發(fā)現(xiàn)Firefox, IE和Opera都支持WebKit的前綴,他們會(huì)期望他們所有屬性都起作用。 Webkit-only將成倍增加,供應(yīng)商將被迫從頭到尾應(yīng)用這些前綴。在這一點(diǎn)上,WebKit的屬性將成為既定事實(shí)上的標(biāo)準(zhǔn)而無(wú)視任何W3C規(guī)范。游戲結(jié)束:開(kāi)發(fā)的web就此關(guān)閉。

其影響不只是CSS: 許多新的JavaScript API有私有前綴。

誰(shuí)之過(guò)

失敗在于:

W3C工作組

web標(biāo)準(zhǔn)達(dá)到成熟時(shí)間過(guò)長(zhǎng)。這可能是不可避免的,但瀏覽器廠商都繞過(guò)該過(guò)程。

瀏覽器生產(chǎn)商

匆忙推出個(gè)新技術(shù),對(duì)于生產(chǎn)商,添加個(gè)前綴然后忘記它太容易了。Web開(kāi)發(fā)者需要更多的信息:是否該屬性被W3C認(rèn)可,什么時(shí)候前綴可以去掉?

在一個(gè)理想的世界中,一旦瀏覽器實(shí)現(xiàn)了標(biāo)準(zhǔn)的屬性,實(shí)驗(yàn)性質(zhì)的前綴會(huì)消失。生產(chǎn)商不會(huì)如此做,因?yàn)檫@會(huì)破壞站點(diǎn),但是他們可以突顯問(wèn)題。例如,為開(kāi)發(fā)控制臺(tái)提供過(guò)時(shí)的檢測(cè)工具或輸出錯(cuò)誤消息。

蘋(píng)果和谷歌

在推銷webkit前綴上,兩者都是有罪的,好像他們就是日常HTML5 web開(kāi)發(fā)的標(biāo)準(zhǔn)部分。蘋(píng)果已經(jīng)被指控與W3C積極作對(duì)。

Mozilla, Microsoft和Opera

其他瀏覽器生產(chǎn)商通常滯后webkit數(shù)月——否則數(shù)年。添加WebKit的前綴是一個(gè)可笑的解決方案:是時(shí)候繁冗他們的游戲咯。

技術(shù)網(wǎng)站以及狂熱分子

我們都喜歡很酷的實(shí)例,“傳教士”們總是忽略屬性是實(shí)驗(yàn)性質(zhì)的,可能永遠(yuǎn)都不會(huì)所有瀏覽器都支持(恩,是的,包括SitePoint)。理想的情況下,代碼應(yīng)該至少在兩個(gè)瀏覽器下生效,至少表明需要多個(gè)供應(yīng)商的前綴。

web開(kāi)發(fā)者

我們太懶惰。我們編寫(xiě)特定瀏覽器的代碼,盡管我們可能心里想的是以后糾正,但我們很少做。

你還記得最后一次有針對(duì)性的開(kāi)發(fā)特定的瀏覽器?這就是IE6. 十年后我們?nèi)匀缓瓦@個(gè)決定的遺產(chǎn)相伴。難道你真的希望歷史重演?

是時(shí)候行動(dòng)了

我反對(duì)非WebKit的瀏覽器支持WebKit的前綴。充其量,它使前綴無(wú)法使用。在最壞的情況下,它打破了整個(gè)標(biāo)準(zhǔn)化進(jìn)程。無(wú)論你可以同意或不同意,姑且讓同事知道你的意見(jiàn),通過(guò)博客和社交網(wǎng)絡(luò)上。 W3C和瀏覽器廠商將聽(tīng)取您的反饋,你只需要提供一些。

然后在多個(gè)瀏覽器測(cè)試您的網(wǎng)站。一點(diǎn)點(diǎn)優(yōu)雅降級(jí)是好的,但忽視中的一個(gè)或多個(gè)現(xiàn)代瀏覽器而具有同等的支持是不可取的。修復(fù)代碼,否則你的網(wǎng)站會(huì)對(duì)這個(gè)問(wèn)題作出了貢獻(xiàn)。

以上為翻譯全文

譯者語(yǔ)及其他補(bǔ)充觀點(diǎn)

我個(gè)人態(tài)度也是不支持非webkit核心瀏覽器支持webkit屬性。因?yàn)槲蚁胂攵加X(jué)得麻煩。自己缺乏預(yù)見(jiàn)性而造成的問(wèn)題需自己買單。

附上其他一些人的觀點(diǎn):

Remy Sharp: 這是個(gè)糟糕的想法,因?yàn)樗绊戦_(kāi)發(fā)商的預(yù)期,將有可能使我們使用前綴更加懶惰。

Christian Heilmann: 作為開(kāi)發(fā)者,我們自己搞出來(lái)的混亂,應(yīng)該由我們自己從中走出來(lái)內(nèi)容)。

Aaron Gustafson乞求我們至少解決我們自己的東西并制作了個(gè)請(qǐng)?jiān)笗?shū)來(lái)對(duì)抗其他瀏覽器生產(chǎn)商支持-webkit-.

Eric Meyer則相當(dāng)肯定我們不會(huì)贏得這場(chǎng)戰(zhàn)爭(zhēng)。

還有其他同行:Rachel Andrew, Bruce Lawson, Gilles Vandenoostende。

國(guó)內(nèi)不是不少公司已經(jīng)加入W3C了嗎,期望有相關(guān)同行可以現(xiàn)身說(shuō)法。

轉(zhuǎn)載自:http://www.zhangxinxu.com/wordpress/?p=2223

  哈爾濱品用軟件有限公司致力于為哈爾濱的中小企業(yè)制作大氣、美觀的優(yōu)秀網(wǎng)站,并且能夠搭建符合百度排名規(guī)范的網(wǎng)站基底,使您的網(wǎng)站無(wú)需額外費(fèi)用,即可穩(wěn)步提升排名至首頁(yè)。歡迎體驗(yàn)最佳的哈爾濱網(wǎng)站建設(shè)