我只是玩弄Firebug和編輯Gmail的CSS文件,我想編輯一個按鈕,但該按鈕的div ID是:rj
。我相當肯定CSS不允許在中使用冒號
,尤其是以ID和類名開頭。所以我的猜測是這是一些高級的詭計。我不確定每個用戶是否一致,但是FWIW,ID是用於頁面頂部的「搜索郵件」按鈕。
Google的瘋狂ID和類命名約定
有誰知道他們在做什麼,他們是如何做到的?
我只是玩弄Firebug和編輯Gmail的CSS文件,我想編輯一個按鈕,但該按鈕的div ID是:rj
。我相當肯定CSS不允許在中使用冒號
,尤其是以ID和類名開頭。所以我的猜測是這是一些高級的詭計。我不確定每個用戶是否一致,但是FWIW,ID是用於頁面頂部的「搜索郵件」按鈕。
Google的瘋狂ID和類命名約定
有誰知道他們在做什麼,他們是如何做到的?
Google只擁有一個瀏覽器,所以如果他們想要創建一個像firefox一樣跨瀏覽器兼容的Web應用程序,他們必須遵循與其他Web開發人員相同的標準和規則。也就是說,大多數現代瀏覽器在解析html時都非常寬鬆,所以雖然您的示例不正確,但可能無法驗證,因此不會出現可見的負面影響。
是的,我在想同樣的事情,但是我找不到一個理由來證明這一點。爲什麼他們願意做出可能與瀏覽器不兼容的東西?必須有一個值得的權衡。 – redgem
對於允許的內容,ID過去非常嚴格,對於類沒有那麼多。然而,HTML5減少了許多可能是ID值的限制。
下面是對文章什麼是允許的ID和班級在HTML5:http://mathiasbynens.be/notes/html5-id-class
這是足以讓你的頭不疼。
編輯:
爲了滿足您更多的瞭解爲什麼谷歌是用看似隨意的ID問題,我敢肯定,他們正在使用的ID和班級有了完美意義的程序員。
HTML標準允許冒號在id值中,但id的第一個字符必須是字母。 –
一個更好的問題可能是*爲什麼他們在做?畢竟,谷歌以其乾淨和符合標準的代碼而聞名(不僅僅是HTML,但是我聽說過有關C++的優秀的東西),所以他們爲什麼忽視這個標準肯定有一個很好的理由。 –
有可能是所有這些瘋狂的名字都是由工具生成的,而不是開發人員實際使用的。 Google也因優化而聞名,並且通過下載數百萬字節的數據可以節省大筆資金。 –