浅谈严格模式和混杂模式
一,严格模式和混杂模式的定义:
通俗来说:
严格模式是浏览器根据w3c的规范来解析代码;
混杂模式是浏览器根据自己的规范来解析代码(很明显:无规矩不成方圆,这种混杂模式会产生一些浏览器兼容问题)。
二、doctype(文档类型)
在说混杂模式时,需要理解什么事doctype以及doctype的作用?
1、doctype:文档类型
2、作用:从字面理解,文档类型肯定就是规定了当前文件的类型,告诉浏览器,我这是什么类型的浏览器,然后浏览器根据类型做相应的解析。
doctype放在html文件的第一行,包含在html标签里,但它不是一个标签,需要写在html前面。
写法示例:
<!DOCTYPE html>
在此处提到doctype是因为,doctype缺失或书写错误,就会出现混杂模式。
二、严格模式和混杂模式的区别:
(1)混杂模式下盒子模型的高宽包括padding和border,而W3C标准中设置一个元素的高宽指的是content的高宽;
(2)混杂模式下可以设置行内元素的高度,而标准模式下不生效;
(3)标准模式下,一个元素的高度是由其包含的内容来决定的,如果父元素没有设置高度,子元素设置一个百分比的高度无效;
(4)标准模式下使用margin:0 auto;可以使元素水平居中,但是在混杂模式下会失效;混杂模式下需要设置text-align:center;来进行水平居中;
(5)混杂模式下设置图片padding会失效;
(6)混杂模式下Table中的字体属性不能继承上层的设置;
(7)混杂模式下white-space:pre会失效。