严格模式和混杂模式
来源:互联网 发布:淘宝可以不交保证金吗 编辑:程序博客网 时间:2024/05/29 02:41
Doctype(document type 文档类型)的简写,来告诉浏览器以何种方式解析。
1:过度的(Transitional,也叫混杂模式):要求比较宽松,允许继续使用HTML4.01的标识,完整声明为
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-tranisitional.dtd">
2:严格的(Strict):要求严格的DTD(Document Type Definition),不能使用任何表现层的标识和属性,<!DOCTYPE html PUBLIC "-W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
定义成相应的声明就可以触发相应的模式。
区分的意义是为了最终能达到数据与表现相分离的目地。
行内元素主要有:<span>、<a>、<b>、<img>、<br>、<button>、<strong>、<textarea>、<select>
块级元素主要有:<div>、<ul>、<li>、<p>、<fieldset>、<form>、<h1>、<h2>、<h3>、<h4>、<h5>、<h6>、<hr>、<iframe>、<ol>、<pre>、<table>、<tr>、<td>
行内元素可以通过display:block转为块级元素。另外块级元素的margin和padding都正常,行内元素左右maring和左右padding正常,上下不识别,也就是说不能通过margin-top和padding-top来改变行高。
如何触发这两种模式:
浏览器根据DOCTYPE是否存在以及使用的哪种DTD来选择要使用的呈现方法。如果XHTML文档包含形式完整的DOCTYPE,那么它一般以标准模式呈现。对于HTML4.01文档,包含严格DTD的DOCTYPE常常导致页面以标准模式呈现。包含过渡DTD和URI的DOCTYPE也导致页面以标准模式呈现,但是有过渡DTD而没有URI会导致页面以混杂模式呈现。DOCTYPE不存在或形式不正确会导致HTML和XHTML文档以混杂模式呈现。
根据DOCTYPE是否存在选择呈现模式,被称为DOCTYPE切换或DOCTYPE侦测。并非所有浏览器都采用这些规则,但是这些规则很好地说明了DOCTYPE切换的工作方式。要了解更全面的内容,可查阅网站http://hsivonen.iki.fi/doctype/,这里的图表说明了不同浏览器如何根据DOCTYPE声明来选择呈现方法。
DOCTYPE切换是浏览器用来区分遗留文档和符合标准的文档的手段。无论是否编写了有效的CSS,如果选择了错误的DOCTYPE,那么页面就将以混杂模式呈现,其行为就可能会有错误或不可预测。因此,一定要在站点的每个页面上包含形式完整的DOCTYPE声明,并且在使用HTML时选择严格的DTD。
- <pre>
- <ol>
- <li><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML4.01//EN"</li>
- <li>
"http://www.w3.org/TR/html4/strict.dtd" - <li><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0Strict//EN"</li>
- <li>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" - <li><!DOCTYPE html></li>
- </ol>
- </pre>
许多HTML编辑器会自动添加DOCTYPE声明。如果创建XHTML文档,一些老的编辑器还可能在DOCTYPE声明前面添加XML声明:
- <?xml version="1.0"encoding="utf-8"?>
XML声明是XML文件使用的可选声明,它定义使用的XML版本和字符编码类型等设置。不幸的是,如果DOCTYPE声明不是页面上的第一个元素,那么IE6会自动切换到混杂模式。这个问题在IE 7中已经纠正了,但是除非要将页面用做XML文档,否则最好避免使用XML声明。
- 严格模式和混杂模式
- HTML的严格模式和混杂模式
- 严格模式与混杂模式
- web前端 严格模式和混杂模式详解
- HTML的Doctype和严格模式与混杂模式
- DOCTYPE 严格模式与混杂模式
- DOCTYPE 严格模式与混杂模式
- DOCTYPE 严格模式与混杂模式
- Doctype & 严格模式与混杂模式
- 前端---严格模式与混杂模式
- 前端知识html和xhtml,Link和@import,doctype,严格模式和混杂模式。如何触发
- Doctype的作用和如何区分严格模式和混杂模式,有什么意义
- 混杂模式和非混杂模式
- JX8NET游戏 Doctype文档声明的严格模式和混杂模式
- HTML中Doctype的作用以及浏览器的严格模式和混杂模式的区别
- css定位浮动 &html 严格模式混杂模式
- Doctype严格模式与混杂模式的区别
- 混杂模式
- Android Api Demos登顶之路(三十八)Fragment-->Dialog or Activity
- Java中的深拷贝和浅拷贝介绍
- BZOJ1047
- hibernate教程3之Hibernate映射申明(Mapping declaration)
- 【分享】姉、ちゃんとしようよっ!1+2【日文硬盘版】[带全CG存档&攻略+免安装&卸载补丁+日本语启动补丁&自动设置打开AGTH和Cp2Tran补丁★]
- 严格模式和混杂模式
- UITableViewController
- 放弃一切
- 基本算法复习之递归:经典问题举例
- 最长公共子串的长度(阿里)
- 各种加密解密函数(URL加密解密、sha1加密解密、des加密解密)
- HTML5 脚本编程——JavaScript高级程序设计笔记(13)
- Javascript跨域访问资源
- iOS ui 学习 1-2天的笔记