将浏览器切换到严格模式以编写正确的html代码

时间:2015-07-29 19:13:59

标签: html w3c-validation

是否可以将浏览器切换到"严格模式"为了至少在开发阶段编写适当的代码?

我看到总是无效的,脏的HTML代码(除了糟糕的javascript和css),我觉得一个原因也是所有浏览器的高容忍度。所以至少我会准备好更严格的模式,而我使用浏览器进行页面开发,以强迫自己使用正确的代码。

与任何已知的浏览器有什么相似之处吗?

我知道w3c-validator但老实说谁经常使用这个?

浏览器和验证器之间是否存在某种常规接口?是否存在自动测试验证的开发环境?

2 个答案:

答案 0 :(得分:2)

  

与任何已知的浏览器有什么相似之处吗?浏览器和验证器之间是否存在某种常规接口?是否存在自动测试验证的开发环境?

所有这些问题的答案都是“否”。没有浏览器像你描述的那样有任何内置集成。有(或者是)某些浏览器扩展可以将您加载的每个文档都发送到W3C验证器进行检查,但是使用其中一个扩展(或者在后台自动向W3C验证器发送内容的任何其他内容)是让W3C阻止您滥用W3C服务的IP地址(或整个公司网络的IP地址范围)的好方法。

  

我知道w3c-validator但老实说谁经常使用这个?

W3C验证器目前每秒处理大约17个请求 - 每天大约150万个文档 - 所以我猜有很多人经常使用它。

  

我总是看到无效的,脏的html代码......当我使用浏览器开发页面时,我会准备好更严格的模式,以便强迫自己使用正确的代码。

我不确定“脏HTML代码”或“正确代码”具体是什么意思,但我可以说有很多标记案例不坏或无效,但有些人误认为不好

例如,有些人认为每个<p>开始标记应始终具有匹配的</p>结束标记,但事实是从创建HTML时起,它始终不需要文档在所有情况下匹配</p>结束标记(事实上,在创建HTML时,<p>元素基本上是一个空元素 - 而不是容器 - 因此<p>标记只是一个标记

有些人错误地认为是坏的案例的另一个例子是不带引号的属性值的情况;例如,<link rel=stylesheet …>。但事实是,除非属性值包含空格,否则通常不需要引用它。事实上,对<link rel=stylesheet …>这样的案例来说,实际上并没有错。

因此,尝试找到一个工具或机制来检查这样的情况基本没有意义,因为这些情况实际上并不是真正的问题。

所有这一切,HTML规范确实将一些标记案例定义为错误,这些案例是W3C验证器检查的。

因此,如果你想捕捉真正的问题并能够解决它们,答案很简单:使用W3C验证器。

披露:我是W3C验证者的维护者。

答案 1 :(得分:2)

正如@sideshowbarker所说,目前所有浏览器都没有内置任何内容。

然而,我确实喜欢这个想法,并希望有这样一个工具(这就是我如何得到这个问题)

有一个“部分”解决方案,如果您使用Firefox,并查看源(不是开发人员工具,而是 CTRL + U 或右键单击“查看页面源”)Firefox将突出显示无效的标记嵌套,并在原始HTML源中以红色属性问题。我认为这是非常宝贵的,因为它是第一次看到一个似乎无法正常工作的页面。

Firefox view source sample

这是非常好的,因为它没有引用asdf id没有超级挑剔,或者如果不推荐使用某个属性,但是它突出显示了td属性上的间距等毛病搞砸了(如果未引用属性,这会导致问题),并且发现span标记未正确关闭,且script标记位于html标记之外,如果我错过了doctype或者之前的内容,它也会标记出来。

不幸的是,“看到”这些问题是一个手动过程......我很乐意在开发控制台和所有浏览器中看到这些问题。

大多数插件/扩展只有在解析后才能访问DOM,并且这些错误消失或被否定...但是如果有办法在其中一个中获取原始 HTML源代码这些扩展模型我们可以编写扩展来测试这些类型的错误,我非常愿意帮助编写一个(在Twitter上使用DM @scunliffe)。或者,这可能需要在较低级别编写内容,例如在Fiddler中运行的脚本。