细节决定成败之-浏览器doctype标签丢失导致浏览器样式变化

作者: dreamfly 分类: html 发布时间: 2020-05-24 12:58

最近在使用php进行html解析的时候,遇到了一个问题,就是解析之后的样式出现了问题,然而dom结构检查了很多遍,也没有发现问题,最后发现php使用$dom->saveHTML()这个方法之后,会去掉html的doctype声明,所以就会导致浏览器无法正确解析样式布局。

html5的doctype很简单

<!DOCTYPE html>

html4的doctype就包括很多种
该 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

HTML 4.01 Transitional
该 DTD 包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">

HTML 4.01 Frameset
该 DTD 等同于 HTML 4.01 Transitional,但允许框架集内容。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" 
"http://www.w3.org/TR/html4/frameset.dtd">

所有的文件,能够被解析和识别,一定是有它的固定格式,或者是头部生命,或者是后缀名,或者是bom头,总之,一切问题都是有根可循的。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

评论已关闭!