假设我想将旧网站更改为“HTML5”-ish。如下更改标题doctype
是否安全?
<!doctype html>
原始doctype可能是:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
或
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
如果更改为<!doctype html>
不可能破坏遗留网页的呈现方式,我认为它是安全的。
答案 0 :(得分:5)
为什么是,是的。
事实上,HTML5是专为此设计的,因此任何人都可以在不触及标记的情况下简单地更改其文档类型,并且它是有效的。
答案 1 :(得分:5)
几乎安全。
此doctype:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
在浏览器中导致有限怪癖/几乎标准模式,而此doctype:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
和此doctype
<!doctype html>
在浏览器中导致标准模式。
区别在于某些内联元素在行框中垂直对齐。
答案 2 :(得分:2)
如果您的“宽松”文档包含已弃用的标记,例如“font”或“frameset”,则一旦您将其更改为HTML5,该页面将无法验证。它会起作用吗?是的,最有可能的。它会有效吗?取决于实际内容。很可能你的严格文件,如果它们有效仍然有效,但“松散”文件可能不是。
关于显示器会发生什么?那要看。我发现将过渡文档更改为HTML5会导致某些浏览器显示更改 - 在某些情况下足够激进,我必须将其更改回来,直到我有时间重写相关页面。
答案 3 :(得分:1)
这取决于您对安全的定义。
它可以在浏览器中可靠地触发相同的渲染模式,因此您不会得到任何影响最终用户的差异。
它还将更改验证程序用于检查文档的规则,因此可能会为您的质量检查流程带来问题,因为需要更新文档。
答案 4 :(得分:1)
我刚刚发现它不安全的困难方式。我在一个旧网站上需要一些HTML5元素,现在已经工作了几年。我需要将doctype更改为html,因为某些浏览器不能使用新元素。
事实证明,在javascript中,domobject.name
无法与新doctype
一起使用。您必须使用domobject.attributes["name"].value
。长话短说这个简单的事情造成了网站核心功能的主要问题。
因此,最好在更改doctype
后测试所有内容,因为它可能会破坏您不会想到的各种内容......