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

将浏览器切换到严格模式以编写正确的html代码,html,w3c-validation,Html,W3c Validation,是否可以将浏览器切换到“严格模式”,以便至少在开发阶段编写正确的代码 我总是看到无效、肮脏的html代码(除了糟糕的javascript和css),我觉得其中一个原因也是所有浏览器的高容忍度。因此,至少在我使用浏览器开发页面时,我已经准备好使用更严格的模式,以便强制自己编写正确的代码 任何已知的浏览器都有类似的功能吗 我知道w3c验证器,但老实说,谁真的经常使用它 浏览器和验证器之间是否有某种常规接口?是否有自动测试验证的开发环境 任何已知的浏览器都有类似的功能吗?浏览器和验证器之间是否有某种常

是否可以将浏览器切换到“严格模式”,以便至少在开发阶段编写正确的代码

我总是看到无效、肮脏的html代码(除了糟糕的javascript和css),我觉得其中一个原因也是所有浏览器的高容忍度。因此,至少在我使用浏览器开发页面时,我已经准备好使用更严格的模式,以便强制自己编写正确的代码

任何已知的浏览器都有类似的功能吗

我知道w3c验证器,但老实说,谁真的经常使用它

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

任何已知的浏览器都有类似的功能吗?浏览器和验证器之间是否有某种常规接口?是否有自动测试验证的开发环境

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

我知道w3c验证器,但老实说,谁真的经常使用它

W3C验证器目前每秒处理约17个请求,每天处理约150万个文档,因此我猜有相当多的人经常使用它

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

我不确定你所说的“脏HTML代码”或“正确代码”是什么意思,但我可以说,有很多标记情况不是坏的或无效的,但有些人错误地认为是坏的。 例如,有些人认为每个

开始标记应该始终有一个匹配的

结束标记,但事实是,从创建HTML时起,它从未要求文档在所有情况下始终有匹配的

结束标记(事实上,在创建HTML时,
元素基本上是一个空元素,而不是一个容器,因此
标记只是一个标记

另一个被一些人误认为不好的例子是不带引号的属性值;例如,
。但事实是,除非属性值包含空格,否则通常不需要引用。因此事实上,像
这样的情况根本没有错

因此,基本上没有必要试图找到一个工具或机制来检查这样的案例,因为这些案例实际上并不是真正的问题

综上所述,HTML规范确实将一些标记案例定义为错误,而这些案例正是W3C验证程序检查的

因此,如果您想抓住真正的问题并能够解决它们,答案非常简单:使用W3C验证器


披露:我是W3C验证器的维护者。正如@sideshowbarker所指出的,目前没有任何内置到所有浏览器中

不过我很喜欢这个想法,也希望有这样一个工具(这就是我如何回答这个问题的原因)

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

这很好,因为它对未引用的
asdf
id,或者某个属性被弃用的情况不太挑剔,但它突出显示了一些问题,比如
td
属性上的间距混乱(如果属性未被引用,这将导致问题),它发现
span
标记没有正确关闭,
script
标记在
html
标记之外,如果我错过了
doctype
或之前有内容,它也会标记它

不幸的是,“看到”这些问题是一个手动过程……我希望在开发人员控制台和所有浏览器中看到这些问题


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

我们说的有多严格?您可以编写XHTML,但它只会在语法错误(“格式不正确”)时完全中断,而不是验证错误。您可以使用IDE在编写时验证生成的错误,但大多数IDE现在通常都附带过时的验证程序。如果您的页面在线可用,您可以使用GET参数doc=TheurlofGetTest创建指向验证程序的链接:它将通过简单的单击运行检查。这是个好主意!是否可能甚至可以自动显示该页面的错误数?你知道任何界面吗?或者我必须废弃/刮除结果页面吗?它给出错误所在的行,然后你去修复它们