Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 谷歌';s疯狂的ID和类命名约定_Css_Gmail - Fatal编程技术网

Css 谷歌';s疯狂的ID和类命名约定

Css 谷歌';s疯狂的ID和类命名约定,css,gmail,Css,Gmail,我只是在玩Firebug和编辑Gmail的CSS文件,我想编辑一个按钮,但该按钮的div ID是:rj。我相当肯定CSS不允许冒号,尤其是以ID和类名开头。我猜这是一种高级的诡计。我不确定每个用户是否都是这样,但是FWIW,ID是页面顶部的“搜索邮件”按钮的ID 有人知道他们在做什么以及他们是如何做的吗?谷歌只有一个浏览器,所以如果他们想创建一个像firefox一样跨浏览器兼容的web应用程序,他们必须遵循与其他所有web开发人员相同的标准和规则。也就是说,大多数现代浏览器在解析html时都非常

我只是在玩Firebug和编辑Gmail的CSS文件,我想编辑一个按钮,但该按钮的div ID是
:rj
。我相当肯定CSS不允许冒号,尤其是以ID和类名开头。我猜这是一种高级的诡计。我不确定每个用户是否都是这样,但是FWIW,ID是页面顶部的“搜索邮件”按钮的ID


有人知道他们在做什么以及他们是如何做的吗?

谷歌只有一个浏览器,所以如果他们想创建一个像firefox一样跨浏览器兼容的web应用程序,他们必须遵循与其他所有web开发人员相同的标准和规则。也就是说,大多数现代浏览器在解析html时都非常宽松,因此,虽然您的示例不是正确的html,并且可能无法验证,但不会产生明显的负面影响

id过去对所允许的内容非常严格,对类来说就不那么严格了。然而,HTML5减少了对ID值的许多限制

以下是一篇关于HTML5中允许ID和类的内容的文章:

这足以让你头疼

编辑:


为了回答您关于谷歌为什么使用看似随机的ID的更多问题,我相信他们使用的ID和类对程序员来说是非常有意义的。

是的,我也有同样的想法,但我找不到理由来证明这一点。为什么他们愿意让一些潜在的浏览器不兼容?这是一个值得权衡的问题。HTML标准允许id值中使用冒号,但id的第一个字符必须是字母。一个更好的问题可能是他们为什么要这样做?毕竟,谷歌以其干净且符合标准的代码而闻名(不仅仅是HTML,我还听说了他们的C++的优秀之处),所以他们忽视标准肯定有一个很好的理由。很可能所有这些疯狂的名字都是由工具生成的,而不是开发人员实际使用的。谷歌也以优化而闻名,从数百万人下载的内容中删减一个字节可以真正节省成本。他们可能还选择了这些名称,使普通开发者难以访问这些元素,从而阻止自动化。例如,
document.getElementById(“:ri”)
不返回任何结果,并且在调用
EvaluatePath(document,“//div[包含(@id,concat(“:”,“ri”)])”)
或任何其他选择器时,在此处使用XPATH代码:,也不返回任何结果。