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属性的值。

  • 相关阅读:
    MyBatis 延迟加载
    超经典的 25 道 MyBatis 面试题
    公钥与私钥,HTTPS详解
    分布式,集群,微服务的理解
    单例模式的饿汉式和懒汉式的实现以及比较它们的区别比较(Java实现)
    Mybatis的一级缓存和二级缓存详解
    Maven install没有将jar包加载到本地仓库
    Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
    数据结构_C语言_单链表
    Java实现一个简单的LRUCache
  • 原文地址:https://www.cnblogs.com/langee/p/6627720.html
Copyright © 2011-2022 走看看