2017-07-11 36 views
0

我们有一个最初是在2005年编写的PHP框架,因此默认的DOCTYPE是HTML 4.01 TransitionalHTML 5是HTML 4.01 Transitional的超集吗?

虽然这可以被覆盖,大多数项目(即使是近期的)并没有改变默认的,所以大部分项目会送达文件的HTML 4

所有HTML由框架生成已被设计为通过W3C HTML 4 Validator,大多数项目也将生成有效的HTML,因为这是公司的要求(尽管在必要时允许例外),例如使用一些新的HTML元素,如<canvas>,这些元素将会失败HTML 4验证,但哪些浏览器正确处理)。

我的问题:如果我简单地将框架切换到使用现代DOCTYPE,HTML 4标记将正确验证为HTML 5,还是我还需要更改代码?

第二个问题:渲染或浏览器支持是否会受到此更改的影响?

回答

1

如果我正确阅读这篇wikipedia文章,那么所有浏览器都将从怪癖模式转为标准模式。这意味着浏览器渲染可能会受到影响。

我不知道验证,但由于渲染将会受到影响,因此假设验证也将是安全的。

有趣的阅读:

+0

好点!我们包含系统标识符(“<!DOCTYPE HTML PUBLIC” - // W3C // DTD HTML 4.01 Transitional // EN“”http://www.w3.org/TR/html4/loose.dtd“>'),所以从https://en.wikipedia.org/wiki/Quirks_mode#Comparison_of_document_types的表格看来,几乎所有浏览器中的页面都将处于“几乎标准模式”。这可能会引起较小的渲染更改,但不会像从Quirk进入标准模式一样大。 – HappyDog

+0

话虽如此,Firefox中的页面信息框显示这些页面是“标准合规模式”,与维基百科文章相矛盾(除非Firefox在该对话框中不区分标准和几乎标准)。 – HappyDog

+1

通常,标准模式和几乎标准模式不区分。但很容易辨别哪些正在使用。将此添加到您的html'

'如果在灰色框中显示黄色条纹,则正在使用标准模式。如果没有黄色条纹,几乎标准模式正在使用中。 – Alohci