DTD是嘛?我们这里以HTML为主,其实就html第一句。

DTD(Document type definition)文档类型定义。
说白了就是: 定义文档的类型。
在网页没有w3c标准的时候,各家浏览器对网页的渲染方式都不同(我们称那时的渲染方式为怪异模式)。w3c(CSS1Compat)标准出台的时候,大家都采用新标准。但为了兼容以前的网页,怪异模式要和新标准共存。那怎样确定一个网页是用新模式渲染还是用怪异模式渲染。就看看DTD是w3c出台之前还是之后啦。
判断文档有没有声明DTD
document.compatMode === "BackCompat"
BackCompat 未声明
CSS1Compat 已经声明
IE678默认识别CSS1Compat ,无论有没有dtd
注意大小写
这里说3个scrollTop属性有关DTD的兼容性
1、document.body.scrollTop;
2、document.documentElement.scrollTop;
3、window.pageYOffset;
第一个在文档有DTD的时候,谷歌火狐都不支持,
删除DTD的时候,谷歌火狐却又支持啦,
只有IE系列从头到尾都支持。
第二个在文档有DTD的时候,谷歌火狐都支持,IE不支持啦。
删除DTD的时候,都不支持。
第三个不管DTD有没有,谷歌火狐都支持和IE8以上都支持啦。
兼容写法:document.title = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;
注意:测试用的ie浏览器均为edge里面的仿真功能。

本来想做个表格的,但是太困啦。收拾收拾睡觉。
晚安。
网友评论