添加了DOCTYPE XHTML声明时设置绝对位置对象需要加单位

  在Firefox,IE下,如果添加了DOCTYPE,XHTML声明,则要设置display为absolute,绝对位置的对象时,需要加上单位,如px,要不没有效果,测试用例如下
+展开
-HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html;charset=gb2312" />
    <title>添加了XHTML DOCTYPE声明时设置绝对位置对象需要加单位</title>
  </head>
  <body>
  
  <div id="dv1" style="border:solid 1px black;width:200px;height:200px;top:200;left:200;position:absolute;"></div>
  
  <div id="dv2" style="border:solid 1px black;width:200px;height:200px;top:200px;left:200px;position:absolute;"></div>
  </body>
</html>



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


  如果去掉XHTML DOCTYPE申明,则两个div都能按照指定的left,top值来显示,如下
+展开
-HTML
<html>
  <head>
    <meta http-equiv="content-type" content="text/html;charset=gb2312" />
    <title>添加了XHTML DOCTYPE声明时设置绝对位置对象需要加单位</title>
  </head>
  <body>
  
  <div id="dv1" style="border:solid 1px black;width:200px;height:200px;top:200;left:200;position:absolute;"></div>
  
  <div id="dv2" style="border:solid 1px black;width:200px;height:200px;top:200px;left:200px;position:absolute;"></div>
  </body>
</html>


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

加支付宝好友偷能量挖...


原创文章,转载请注明出处:添加了DOCTYPE XHTML声明时设置绝对位置对象需要加单位

评论(0)Web开发网
阅读(63)喜欢(0)HTML/CSS兼容/XML