zoukankan      html  css  js  c++  java
  • 关于<!DOCTYPE>

    View Code
     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2 <html>
     3   <head>
     4     <meta http-equiv="content-type" content="text/html;charset=gb2312" />
     5     <title>添加了XHTML DOCTYPE声明时设置绝对位置对象需要加单位</title>
     6   </head>
     7   <body>
     8   
     9   <div id="dv1" style="border:solid 1px black;200px;height:200px;top:200;left:200;position:absolute;"></div>
    10   
    11   <div id="dv2" style="border:solid 1px black;200px;height:200px;top:200px;left:200px;position:absolute;"></div>
    12   </body>
    13 </html>

    在Firefox,IE下,如果添加了DOCTYPE,XHTML声明,则要设置display为absolute,绝对位置的对象时,需要加上单位,如px,要不没有效果。

    运行例子,发现两个绝对位置的div位置并没有重合,第一个按照正常流的位置布局,而第二个div则按照指定的left和top值来显示。

      如果去掉XHTML DOCTYPE申明,则两个div都能按照指定的left,top值来显示,如下

    View Code
     1 <html>
     2   <head>
     3     <meta http-equiv="content-type" content="text/html;charset=gb2312" />
     4     <title>添加了XHTML DOCTYPE声明时设置绝对位置对象需要加单位</title>
     5   </head>
     6   <body>
     7   
     8   <div id="dv1" style="border:solid 1px black;200px;height:200px;top:200;left:200;position:absolute;"></div>
     9   
    10   <div id="dv2" style="border:solid 1px black;200px;height:200px;top:200px;left:200px;position:absolute;"></div>
    11   </body>
    12 </html>

    两者的显示区别很明显,当不加<!DOCTYPE>声明时,浏览器按照Quirks Mode来渲染。

    所以为了兼容性更加好,注意都加上单位px
      如拖拽效果什么的,如果加了XHTML DOCTYPE声明,但是设置left和top时忘记加上单位,就不会出校效果了。

    至于加不加单位,根本在于是否按照W3C标准来进行。即用<!DOCTYPE>的情况下就要用px单位,因为它是按照标准来解析文档的。否则是按照Quirks Mode,可以不加px。

  • 相关阅读:
    jvm
    java8新特性Lambada,Steam流
    数组链表栈队列 散列表
    数据结构算法基本知识
    设计模式七大原则
    java关键字
    Excel导出(适合项目开发)
    Excel导出(适合初学者)
    angular.min.js:80 Error:
    angular中出现错误的提示指令[ng:areq]的原因
  • 原文地址:https://www.cnblogs.com/daishuguang/p/3031160.html
Copyright © 2011-2022 走看看