zoukankan      html  css  js  c++  java
  • 关于Doctype、严格模式与混杂模式

    <!Doctype> 文档声明,位于文档中的最前面的位置,处于<html>标签之前。此标签告知浏览器文档使用哪种HTML或XHTML规范。

    用于告知浏览器以何种模式来渲染文档。

    严格模式:页面排版和js解析是以该浏览器支持的最高标准(W3C)来执行。

    混杂模式:不严格按照标准模式执行,主要用以兼容旧的浏览器,向后兼容。模拟老式浏览器的行为以防止老站点无法工作。说的透明点就是可以实现IE5.5及以下版本的浏览器的渲染模式。

    Doctype不存在或格式不正确会导致文档以混杂模式呈现。

    那么问题来了,严格模式和混杂模式在样式上有什么不同之处?

      区别:总体会有布局、样式解析和脚本解析三方面的区别。

      1、盒模型:在W3C标准中,如果设置一个元素的宽度和高度,值得是元素内容的宽度和高度,而在Quirks模式下,IE的宽度和高度还包含了padding和border。

      2、设置行内元素的宽高:在标准模式下,给<span>等行内元素设置width和height都不会生效,而在quirks模式下,则会生效。

      3、设置百分比的高度:在标准模式下,一个元素的高度尤其包含的内容决定,如果父元素没有设置高度,子元素设置一个百分比的高度是无效的。

      4、margin:0 auto设置水平居中:使用margin:0 auto在标准模式下可以使元素水平居中,但在quirks模式下却会失效。解决办法:用text-align属性:

        body{text-align:center;}

        #content{text-align:left;}

      5、quirks模式下设置图片的padding会失效

      6、quirks模式下Table中的字体属性不能继承上层的设置

      7、quirks模式下white-space:pre(保留空白)会失效

     那么问题来了,white-space可能的值:

      normal  默认。空白会被浏览器忽略

      pre        空白会被刘看齐保留。其行为方式类似HTML中的<pre>标签

      nowrap  文本不会换行,文本会在在同一行上继续,直到遇到<br>标签为止

      pre-wrap保留空白符序列,但是正常的进行换行

      pre-line  合并空白符序列,但是保留换行符。

      inherit    规定应该从父元素继承white-space属性的值。

  • 相关阅读:
    关于QQ秀
    c#重点知识解答(五) 选择自 masterall 的 Blog
    c#.net常用函数和方法集 选择自 fineflyak 的 Blog
    JavaScript 中 substr 和 substring的区别
    C#重点知识详解(二) 选择自 masterall 的 Blog
    c#重点知识详解(六) 选择自 masterall 的 Blog
    转:一个男孩的自白
    win2003端口映射2003的路由与远程访问,做端口映射(转)
    渗透笔记(转载)
    win下配置的Apache+PHP+MySQL绿色版本(转)
  • 原文地址:https://www.cnblogs.com/langee/p/6627720.html
Copyright © 2011-2022 走看看