HTML的严格模式和混杂模式
来源:互联网 发布:淘宝外用增大药有用吗 编辑:程序博客网 时间:2024/05/29 04:22
声明位于文档的最前位置,处于标签之前,可以告诉浏览器使用哪种html/xhmtl文档
该标签有三种类型:严格版本、过度版本、以及基于框架的html文档
1.浏览器模式
标准模式:浏览器根据规范呈现页面
混杂模式:页面以一种比较宽松的向后兼容的方式显示,混杂模式通常模拟老浏览器的行为已防止老式站点无法工作
2.差异
(1) IE的盒模型,i6标准模式使用标准的盒模型,混杂模式使用的老式专有盒模型(宽度包括padding和border)
(2) 对16进制的颜色不用加#
(3) 没有单位的长度单位为px
(4) 关键字字号加一级
3.如何触发这两种模式
总的来说,浏览器根据doctype是否存在以及使用的哪种dtd来选择使用哪种模式来呈现,具体规则如下:
(1). 对于xhtml来说,一般包含完整的doctype,则以标准模式呈现
(2). 对于html4.0.1,包含严格dtd的doctype常常导致页面以标准模式呈现,包含过渡dtd和uri的doctype也会以标准模式呈现,但是有过渡dtd没有uri的页面以混杂模式呈现
(3). doctype不存在或则不正确,页面会以混杂模式呈现
(4). 对于传统的xml定义,例如:<?xml version="1.0" encoding="utf-8"?>,如果将这句话放在页面的顶部,则在i6下以混杂模式呈现
当浏览器厂商开始创建与标准兼容的浏览器时,他们希望确保向后兼容性。为了实现这一点,他们创建了两种呈现模式:标准模式和混杂模式
>>在标准模式中,浏览器以其支持的最高标准呈现页面。
>>在混杂模式中,页面以一种比较宽松的向后兼容的方式显示。混杂模式通常模拟老式浏览器的行为以防止老站点无法工作。
关于模式触发 浏览器根据DOCTYPE是否存在以及使用的哪种DTD来选择要使用的呈现方法。
如果XHTML、HTML 4.01文档包含形式完整的DOCTYPE,那么它一般以标准模式呈现。
包含过渡DTD和URI的DOCTYPE也导致页面以标准模式呈现,但是有过渡DTD而没有URI会导致页面以混杂模式呈现。
DOCTYPE不存在或形式不正确会导致HTML和XHTML文档以混杂模式呈现。
html5既然没有DTD,也就没有严格模式与宽松模式的区别,html5有相对宽松的语法,实现时,已经尽可能大的实现了向后兼容。
如何触发文档模式:
触发混杂模式:
如果在文档开始处没有发现文档类型声明,则所有浏览器都会默认开启混杂模式。但采用混杂模式不是什么值得推荐的做法,因为不同浏览器在这种模式下的行为差异非常大,如果不使用某些hack技术,跨浏览器的行为根本就没有一致性可言。
触发标准模式:
<!-- HTML 4.01 严格型 --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <!-- XHTML 1.0 严格型 --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
触发准标准模式:
<!-- HTML 4.01 过渡型 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- HTML 4.01框架集型 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<!-- XHTML 1.0 过渡型 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- XHTML 1.0 框架集型 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
IE8中关闭超级标准模式:
<meta http-equiv="X-UA-Compatible" content="IE=7" /> //content属性中IE的值用于指定使用哪个版本的呈现引擎来呈现页面。设计这个值的目的就是为了向后兼容那些专门为老版本的IE设计的站点和页面。
文章参考:http://www.myexception.cn/HTML-CSS/1509497.html
https://zhidao.baidu.com/question/2205956093438804708.html
http://www.cnblogs.com/shenxiaolin/p/5425249.html
- HTML的严格模式和混杂模式
- HTML的Doctype和严格模式与混杂模式
- 严格模式和混杂模式
- HTML中Doctype的作用以及浏览器的严格模式和混杂模式的区别
- 前端知识html和xhtml,Link和@import,doctype,严格模式和混杂模式。如何触发
- css定位浮动 &html 严格模式混杂模式
- 严格模式与混杂模式
- web前端 严格模式和混杂模式详解
- Doctype的作用和如何区分严格模式和混杂模式,有什么意义
- JX8NET游戏 Doctype文档声明的严格模式和混杂模式
- Doctype严格模式与混杂模式的区别
- DOCTYPE 严格模式与混杂模式
- DOCTYPE 严格模式与混杂模式
- DOCTYPE 严格模式与混杂模式
- Doctype & 严格模式与混杂模式
- 前端---严格模式与混杂模式
- 混杂模式和非混杂模式
- DOCTYPE 声明的作用是什么? 严格模式与混杂模式如何区分?
- 软件工程考试题
- Ubuntu14.04下安装jdk1.8+eclipse(JEE版)
- J2EE学习笔记(三)之重定向、转发、超链接及表单提交的区别和路径
- RecyclerView简单实用
- 解决 父层div和子层div点击事件冲突 (冒泡触发的小方法)
- HTML的严格模式和混杂模式
- JSON字符串与JSON对象的区别
- 第一次面试sgw总结
- hdu6103-暴力
- 3361-数据结构实验之图论四:迷宫探索
- retrofit http取消请求
- Vin码识别-车架号识别为APP功能增添亮点
- YUV采样格式与存储格式
- Storm入门与实践(1)入门介绍