Webkit 有哪些不符合 W3C 標準的地方?

看到討論Webkit和IE的壟斷,從技術上 Webkit 有哪些不符合 W3C 標準的地方么?

當年 IE 統治桌面瀏覽器和現在 WebKit 統治移動瀏覽器的區別是什麼?

還是說因為 Webkit 發展速度過快導致無法標準化?

至於瀏覽器前綴,我覺得只要像微軟一樣支持所有前綴(以及不帶前綴的)的特性不就好了么?


WebKit不會不符合W3C標準的,就算有也是暫時的,因為反正最後W3C會照著WebKit的技術文檔抄的。

譬如說HTML5規範就是Google把WebKit的技術文檔謄抄了一份放在W3C的。

自己看維基吧,別的不想多說。

網頁超文本技術工作小組

現在這個逗逼組織的存在就是業界的笑話。

=====================================================

還是多說兩句好了。

其實幾個很簡單的問題,很多噴子從未去想過。

1、我們為什麼需要一個標準化組織來規範化HTML文檔和瀏覽器的實現?

2、如果有多個標準競爭,到底是選擇市場覆蓋率最多的標準?還是選擇參與的瀏覽器廠家最多的標準?

第一個問題的答案顯然是,如果市場上有多個瀏覽器,那麼我們需要這些瀏覽器之間儘可能的相互兼容,避免我們針對不同的瀏覽器編寫不同的文檔,浪費時間。

但是如果市場上有某個瀏覽器的市場佔有率在98%以上,並在所有的桌面平台都有相應的實現,那麼我們制定一個與這個的瀏覽器不兼容的標準意義在哪裡

第二個問題,難道我們應當選擇參與的瀏覽器廠家最多的標準嗎?如果是這樣是不是微軟投資一下UC、海豚、馬桶、Opera之類的廠家,然後一致擁護IE標準就可以了?

所謂的其他廠家,Google和蘋果用的一個內核,Firefox靠的是Google的「捐贈」,你覺得這和微軟花錢收一堆小弟有哪門子區別?

所以瀏覽器標準之爭,就是市場之爭,和W3C這個逗逼組織基本沒有什麼關係。如果不是iPhone在移動設備上的成功拉動了WebKit的市場佔有率,管你是HTML5還是HTML8,都不會有人鳥的。

作為市場的後來者,當然可以選擇兼容現存的瀏覽器,也可以選擇不兼容。但是這個不兼容的選擇反倒是現存的瀏覽器廠家的責任?!


先針對題主問題,進行回答。

從技術上 Webkit 有哪些不符合 W3C 標準的地方么?

還是說因為 Webkit 發展速度過快導致無法標準化?

至於瀏覽器前綴,我覺得只要像微軟一樣支持所有前綴(以及不帶前綴的)的特性不就好了么?

第一個問題,沒有,或者幾乎沒有,或者就是私有標準有一套實現,和標準的不太一樣,這樣【是會造成兼容問題的】

第二個問題,是的,並且由於無法及時標準化,所以所有網站都用了非標準

第三個問題,理論上是這樣,但問題是,私有標準里的東西不一定能成為標準,比如說一個函數帶了一些參數,那麼這個函數名字上很相似功能也很相似,但對參數的不同定義和理解,將會造成截然不同的結果。那麼問題來了,按照-webkit-XXXXXXX的寫法,這個網站能跑,按照標準,有個-XXXXXXX實現的功能一樣,但是參數定義不同,所以其他瀏覽器就沒法跑了……

所以實際上問題還是在於標準化太慢,也在於網站本身過於急於追求新技術,同時不願對舊的錯誤做出修正。

==

我本來就搞不懂你們為毛要IE符合標準。標準是用來讓【網站】去做好,然後瀏覽器去兼容就行了的。開始IE那會兒根本連標準的精子都還沒有,標準自立了個山頭反過來罵IE不支持標準。

這陳年舊事就不提了。

說說新的「不合標準」。很簡單,錯誤全在【網站】。網站要實現某功能,如果網站符合標準,那麼兼容標準的瀏覽器都能正常運行。而如果【網站不符合標準,只針對某瀏覽器內核進行開發和優化】,那就會造成其他瀏覽器即使兼容標準也沒法運行

然後Webkit就成了那個被「只針對進行開發的某瀏覽器」。IE啊FF啊之類的就成了即使兼容標準也被坑的瀏覽器。

以下內容是【演義】,是【故事】,不是【歷史】,不是非常嚴肅認真,不過還算比較正就是了。

================================

嚴格來說怪不到Webkit頭上,這事兒主要怪前端。前端們推動Webkit成了像IE6一樣的事實標準,而且更可怕的是這貨自身還在分裂…分裂的自己都快不兼容自己了…

你能想像當初IE6那個年代,微軟蹦出來說我要開發兩個IE6,搞兩套基於Trident的不同發展路線的核心?

Webkit現在的情況就是這樣。話說有個村叫瀏覽器村,有幾家大戶,一家Microsoft氏姓Trident,一家Mozilla姓Gecko,一家alksjdkouqiwoejklasd姓Webkit。

姓Trident的那戶呢,家族顯赫,從一代目到六代目都對整個村子做出了卓越貢獻,當然也因此和隔壁的Mozilla氏大戶結了恩怨。導致Mozilla氏天天到處聲稱姓Trident名IE的那位大名作惡多端。Trident家六代目IE6出生的早,那時候整個村子裡都還人丁不足,奴工也少,大家日子都過的雖然說不上窮但是也絕對說不上富。於是英武的IE6在他生命的早年為村子作出了許多貢獻,不但讓瀏覽器村像了點樣,還讓隔壁的網站村可算從赤貧變成了小康,眼看走上了致富之路。

六代目一看,喲,世界太平了,從此不再征戰,就是老有些說法語德語的黑社會的人上門要錢,讓他很不爽,又沒辦法。但是,儘管如此,世界還是好的,大家都走上了致富的道路。

多年後,當年幼的IE11聽祖輩講起IE6的故事,他會希望這就是IE6故事的終點,沒有之後的昏庸之治,也沒有腐落成巫妖王並最終被殺的悲慘結局。

但是呢,村子裡實際上又風生水起,暗潮湧動著。比如說隔壁的Mozilla氏和其他小的氏族就老是在村委會W3C里批評反對Trident家的任何做法。

比如說W3C村委會裡其他幹部(主要是Gecko家的和其他小家戶們)非常的勤勞,整天研究各種標準的奇怪寫法,各種排版的概念,寫出來的文件太多了沒地方放,就去村支書IE6家買了個箱子來放這些文件。

結果買回來一看傻眼了,明明買的是個50cm*50cm的箱子,怎麼50cm*50cm的文件就放不進去呢?研究了半天,最後得出結論,一定是Microsoft氏肆意破壞箱子的尺寸標準,造成我的文件放不進去,這簡直就是業界毒瘤啊。必須剷除轟殺啊!

(段子來自 @Ivony ,看不懂的話看這裡:IE6 很邪惡,但我愛它的盒子模型 )

哦不好意思我忘了這裡不是講Trident家的故事……畢竟主角是Webkit家嘛。

要說這Webkit家啊,歷史淵源還是很長的,最早可以追溯到解放前大家還姓KHTML那會兒。話說KHTML這個血統也是眼裡揉不得沙子,看不得錯誤寫法;但是呢,他們又想和隔壁網站村做生意。網站村說我只認Trident家叫IE的人,要麼我就只給你和他家一樣的東西,能不能用,哼,你自己看著辦吧!

然後KHTML去買了個剪子,咔嚓,轉頭捂著流血的襠部說,我就是IE!你給我啥尺寸的我都能用!

就這樣KHTML活了下來。嚴格來說,活得還不賴,就是老被後人指指點點。

後來Trident家出來六代目不久,KHTML就噗地一聲無絲分裂出了Webkit家。這家人自古就有分裂的傳統,所以後來的事情發生,也是沒辦法的,天註定……

Webkit家呢,觀念比較開放,給錢就能操,不給錢也是可以的。早期呢做手機的、做MP3順便買電腦的、賣遊戲機的、隔壁網站村來本村搞投資的、各行各業的,都能操,滿足了各行各業的需求,大家都很開心,唯獨就是看著垂暮老矣的IE6大爺非常不爽。後來做MP3順便賣電腦的通過賣手機變得巨有錢,來本村搞投資的Google氏通過賣廣告和假藥也變得巨有錢。這麼一來呢,Webkit就基本上變得是他們兩家在操了。隨著大量資金和人員的投入,Webkit家變得史無前例的有錢,而且因為長期被操所以特別能吃苦,特別能做戰。

此時IE6已經結束了昏庸之治——不,他還沒死,他已經老成巫妖王了。巫妖王了不說,還到處勾結些什麼天災啊3721啊之類的,其實也不能說是勾結,主要是老眼昏花,腦子也不好使了,搞不清楚狀況,莫名就被當了槍使,搞得人民群眾怨聲載道。一開村委會,大傢伙攛掇著弄個什麼新玩意,IE6就老咳嗽說哎喲這個我不會啊,哎喲你們這麼搞是不行的…… 旁邊兒子七代目和孫子八代目看老爹在上也不好說什麼,只好附和說是啊是啊我也不行,然後悄悄提高了點自身的警惕性。

這時候呢,AppleGoogle氏的Webkit家開始不爽了,不行啊你看,這麼多年了沒點長進,村子怎麼發展呀!於是夥同一直默默無聞只能寫小報和標準的Mozilla氏,一起聯名要搞HTML5。

結果IE出人意料地說我資慈!

然後又非常老謀深算的說了一句,「但是要按照基本法!」

然而,AppleGoogle氏早就撒開丫子去幹了,而Mozilla氏依然在默默地寫著標準。IE8摸了摸兒子IE9的腦袋,默默不語。

PS:首先針對CSS3做一個說明,CSS的屬性中的供應商前綴(為了在其他供應商所提供的瀏覽器中使用而在CSS的屬性前增加的「-moz-」,「-webkit-」等等前綴。)在IE9中不提供支持。在IE9中提倡「統一標記」,就是說同樣的屬性,標記應該在任何瀏覽器中的渲染效果應該都是同樣的。也就是說為了在各供應商所提供的瀏覽器中使用而人為增加的各種前綴是不符合這個概念的,所以不提供支持。

AppleGoogle氏幹啥去了呢?做手機去了。做平板去了。原來人家本來就不是這個村子的人,在別的村子還有很多業務要做,這裡只是順便插一腳。但是話說回來Trident家其實也一樣所以也沒啥可抱怨的。

萬萬沒想到Microsoft氏在手機村沒玩溜,玩砸了。

這下完蛋了,網站村要和手機村做生意,就要經過瀏覽器村。

但是Trident家在手機村完全沒朋友啊!而且同氏族的也搞不掂,很長一段時間勢力都微小到幾乎忽略不計,自然就沒有網站村村民願意和Microsoft氏費心思打交道了。

眼看著這個Trident家就要完蛋吶……老邁的IE9望著夕陽,長嘆一聲。

結果這時候Google氏的Webkit族人突然跑出來說,老子不姓Webkit啦哈哈哈哈哈!老子要改姓Blink!分裂啦!無絲分裂啦!哈哈哈哈!獨立萬歲!耶!!!你們Webkit家的人又老又慢動作還遲緩,吃內存也不如我吃的多,吃屁去吧哈哈哈哈哈!而且老子還要搶你們生意哈哈哈哈哈哈!一身是JB,切一根換兼容webkit算什麼!哈哈哈哈哈哈哈!

儘管如此,一時間卻沒有人心惶惶——反正血統都差不多,頂多就是支持的樣式啥的,標準啥的,寫法啥的,前綴啥的,稍有不同咯,怕什麼。而且Google氏聽起來很厲害的樣子,我每次瀏覽廣告上面全都是網頁,煩死了。

結果Webkit家基本上就改Apple氏獨大了。不僅如此,Apple氏還和Google氏在其他戰場打了起來,硝煙飄到瀏覽器村,人人都能聞到火藥味。

但是呢,就算如此,Webkit還在分裂,版本分裂,寫法分裂,兼容性分裂……因為除了Apple氏,其實還有很多其他小的氏住在Webkit家裡。

但無論如何,就從現在來看,Webkit家都是真真正正的事實標準,最強勢的瀏覽器。你想啊,是個人都會裝Chrome吧,就算它是一條狗,以一條狗的智商它能避免得了裝360瀏覽器嗎?不論是汪汪機還是蛆蛆機,大家都用的是Webkit或者兼容,所以網站村許多人乾脆就只支持Webkit了,其他平台糊弄糊弄算了,比如說網站村的村狗劉看山。至於Microsoft氏擼擼機,誰管你啊~

Mozilla氏的Gecko家FF34來了,看了看這個不那麼好的世界,沒什麼辦法,只能繼續回村委會去寫標準,寄希望於標準之中,代代傳承,總有一天狐狸的真火可以燒遍世界……它看了看隔壁的IE家,萬萬沒想到,在這個風雲變換的世界裡,IE家竟然才是自己一直以來的盟友…至少一直以來,過去祖輩們出生的時候,隔壁家還是送蛋糕的…

IE11家兄弟三,大哥IE11 for Desktop,二哥Modern IE11,三弟IE11 for Windows Phone。在某個月黑風高的晚上,家族開會決定切掉三弟的JJ,去假裝Webkit,而且還要什麼尺寸的東西都要接受。三弟被委以重任,並沒有膽怯,做出了犧牲,博得了好評,只是自此之後不知道為什麼就沒法和網站村的村狗劉看山做交易了…還有村火星人 馬淘寶,莫名其妙也徹底用不了了,後來據說是修復了… 大哥二哥一看三弟似乎實驗成功,心生一計,決定將來生兒子的時候多生一個JJ,一個和FF胡搞,一個和Chrome、Safari他們毛搞。光復大業有望啊!也可以直接給兒子換個姓,比如同是Microsoft氏的TellMe換姓成Cortana大家不就不認識了嗎……那我們換姓成Spartan吧!——然而,大喜過望之際,兄弟三冷靜下來之時,悲傷的氣氛依舊揮之不散,難以釋懷。

至於Webkit家?他家搬了一個漂亮洋氣的四層小炮樓,一樓二樓三樓住Apple氏Safari iPhone Safari iPad Safari iMac,四樓住其它忍氣吞聲的小氏族和胡搞毛搞的小氏族。

小氏族們一般沒什麼技術和野心,但是更新換代也慢半拍,只能靠些下作手段,搶點肉雞吃。大家各自功能有些互不相同,兼容性也比較互不相同,對源碼的理解也有些許不同;本來都還是好兄弟,有些不同倒也還能接受;

甚至家裡還寄宿了Chrome for iOS,也不知道是Google氏派來的人質,還是卧底。

就是,慢慢他們發現,只針對blink提供新貨物的網站村村民,貌似越來越多了啊……

至於Blink家?養尊處優,凡事都被歌功頌德,腦滿腸肥,隨口就要吃4G內存。

那麼問題來了:在這篇文章里,到底誰是大反派?

答案是網站村啊!!!!!!!!!!!!!!!

要不是網站村胡搞毛搞,瀏覽器村會那麼麻煩嗎!

最後還不是得自食苦果!!!!!!!!!!!!

活該!!!!!!!!!!!!!!!!!!!!


推薦閱讀:

The new Firefox: Firefox 57 正式發布!
Test Pilot 項目新增 Container 容器標籤頁擴展
chrome主頁被www-3360.com/?id=225頑固劫持,求助解決方法?
Firefox 淘汰 Flash 路線圖
後插件時代頁面如何喚起本地程序

TAG:網頁瀏覽器 | 萬維網聯盟W3C | WebKit |