• HTML <!DOCTYPE> 标签


      了解这个是初始于解决系统里面的一个Bug,jquery dialog在所有的IE浏览器中都打不开,因为这是之前别人建立的页面,找了好久才知道是因为没有在页面之前声明<!DOCTYPE>,开启了浏览器的怪异模式,所以在IE中显示不出要的效果来。所以就稍微深入的了解了一下<!DOCTYPE>。

      <!DOCTYPE> 声明位于文档中的最前面的位置,处于 <html> 标签之前。此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。该标签可声明三种 DTD 类型,分别表示严格版本、过渡版本以及基于框架的 HTML 文档。例如:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    

      在上面的声明中,声明了文档的根元素是 html,它在公共标识符被定义为 "-//W3C//DTD XHTML 1.0 Strict//EN" 的 DTD 中进行了定义。浏览器将明白如何寻找匹配此公共标识符的 DTD。如果找不到,浏览器将使用公共标识符后面的 URL 作为寻找 DTD 的位置。

      HTML 4.01和XHTML 1.0 规定了三种文档类型:Strict、Transitional 以及 Frameset。

    1.HTML Strict DTD

    如果您需要干净的标记,免于表现层的混乱,请使用此类型。请与层叠样式表(CSS)配合使用:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    

     2.HTML Transitional DTD

    Transitional DTD 可包含 W3C 所期望移入样式表的呈现属性和元素。如果您的读者使用了不支持层叠样式表(CSS)的浏览器以至于您不得不使用 HTML 的呈现特性时,请使用此类型:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    

     3.Frameset DTD

    Frameset DTD 应当被用于带有框架的文档。除 frameset 元素取代了 body 元素之外,Frameset DTD 等同于 Transitional DTD:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
    

       查资料说,在写<!DOCTYPE>时不用写全,即只要声明 <!DOCTYPE html>即可,没必要必须定义dtd,因为只有没有声明<!DOCTYPE>才会开启怪异模式,而不是没有声明dtd会开启怪异模式,也就是说你只需要定义<!doctype html>就可以让浏览器在严格模式(标准模式)下渲染页面,而不需要指定某个类型dtd。而且它是向后兼容的,html5的<!DOCTYPE>就是这样写的,并且现代浏览器都认识它。

     多学一点:

      所有的浏览器都需要两种模式:怪异模式和严格模式(也有人叫标准模式)。IE 6 for Windows/mac, Mozilla, Safari和Opera 都实现了这两种模式,但是IE 6以下版本永远定在了怪异模式。可以用mode=document.compatMode;来判断浏览器是处于怪异模式还是标准模式。
      1.在标准化之前写的页面是没有doctype的,因此没有doctype的页面是在怪异模式下渲染的。
      2.大部分浏览器的doctype会开启严格模式(标准模式),页面也会按照标准来渲染。
        3.任何新的或者未知的doctype都会开启严格模式(标准模式)。
      4.每个浏览器都有自己的方式来激活怪异模式。

  • 相关阅读:
    C++学习004-Go To 语句使用
    C++学习003-#define 自定义宏
    C++学习002-C++代码中插入汇编语句
    C++学习001-注释
    Qt 加载Leap motion 手势识别软件 二次开发 hello world
    C++知识点 内存占用问题
    虚拟现实-VR-UE4-编译源代码后,无法运行
    Loadrunner|录制脚本时出现乱码的解决方式
    2月14日学习内容
    构建之法读后感(三)
  • 原文地址:https://www.cnblogs.com/redangel/p/2821843.html
Copyright © 2020-2023  润新知