zoukankan      html  css  js  c++  java
  • 严格模式与混合模式

    在前端开发的调试中,有可能会要求知道严格模式和混杂模式(严格模式与非严格模式有的程序员喜欢这样称),而要知道严格模式和混杂模式,首先要知道DOCTYPE,先来看看

    1.DOCTYPE的定义
    DOCTYPE(是Document Type文档类型的简写)是一组机器可读的规则,它们指示(X)HTML文档中允许有什么,不允许有什么,DOCTYPE正是用来告诉浏览器使用哪种DTD,一般放在(X)HTML文档开头声明)用以告诉其他人这个文档的类型风格。

    2.如何触发(作为了解)

     加入xml头部声明可以触发IE浏览器的Quirks mode,触发之后,浏览器解析方式就和IE5.5一样,拥有IE5.5一样的bug和其他问题,行为(Javascript)也是如此。
      IE6的触发
    在XHTML的DOCTYPE前加入XML声明
        <?xml version="1.0" encoding="utf-8"?>
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

    IE7的触发
    在XML声明和XHTML的DOCTYPE之间加入HTML注释

        <?xml version="1.0" encoding="utf-8"?>
        <!-- ... and keep IE7 in quirks mode -->
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

    IE6和IE7都可以触发的
    在HTML4.01的DOCTYPE文档头部加入HTML注释

        <!-- quirks mode -->
        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
      总结:各个浏览器的混杂模式,基本就是各个浏览器的私有模式,不相互兼容。所以,除非是为了兼容的问题,比如你不想修改很久很久以前做的IE ONLY的网页,否则刻意触发混杂模式没有任何意义。

    3.什么是严格模式?
      而严格模式是浏览器根据web标准去解析页面,是一种要求严格的DTD,不允许使用任何表现层的语法,如<br/>。

     什么是混杂模式?
      混杂模式则是一种向后兼容的解析方法,说的透明点就是可以实现IE5.5以下版本浏览器的渲染模式。

    4.触发严格模式
      触发严格模式很简单,就是正常的建立网页,声明正确的DTD,便是严格模式。

    触发混杂模式
    而混杂模式的触发可以通过在HTML文档开始不声明DTD,或者在DOCTYPE前加入XML声明l<?xml version=”1.0〃 encoding=”utf-8〃?>来实现。

    =================当然html5已经可以不用声明DTD了,目前不管做什么网站都要考虑兼容问题


  • 相关阅读:
    系统吞吐量、TPS(QPS)、用户并发量、性能测试概念和公式[转]
    EF RepositoryBase 参考示例【转】
    Entity Framework 杂碎
    Oracle.ManagedDataAccessDTC.dll 使用
    c# http请求,获取非200时的响应体
    c# windows service(服务)
    git log
    解决冲突
    clone命令
    remote指令添加远程数据库
  • 原文地址:https://www.cnblogs.com/wu-Chihiro/p/5997236.html
Copyright © 2011-2022 走看看