即使在ff下也会有痕迹的应该同时设置width就ok了
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Strict//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <style type='text/css'>
  body{
    margin: 0;
    padding: 0;
  }
  </style>
  <script type='text/javascript'>
    function doHide(){
        var tst = document.getElementById('test');
        tst.style.height = '0px';
        tst.style.width= '0px';
    };
  </script>
 </HEAD> <BODY>
  <div id='test' style='margin:0;padding:0;border: 1px solid blue;background:red;height: 300px;width:300px;'></div>
  <input type='button' value='click' onclick='doHide()'/>
 </BODY>
</HTML>

解决方案 »

  1.   

    谢谢以上两位,可能我没有说清楚意思。
    其实我只是想让元素的高度为零,border可以存在。
    即使增加 tst.style.width= '0px'; 它的高度依然存在。因为要实现渐隐的效果,不想直接使用display。
      

  2.   

    tst.style.height="0px";
    再加句
    tst.style.lineHeight="0px";
    IE有默认的行高,所以高度再小也无法变成0,试着把行高设成0看看吧
      

  3.   

    把div内的字号设为0px即可.<div id='test' style='margin:0;padding:0;border: 1px solid blue;background:red;height: 300px;width:300px; font-size:0px;'></div>
      

  4.   

    应该是修改函数.
    function doHide(){
            var tst = document.getElementById('test');
            tst.style.height = '0px';
            tst.style.fontSize='0px';
        };
      

  5.   

    谢谢大家的热心捧场,结贴前说下结果:
    以上提出的办法中:
    修改lineHeight没有效果。修改fontSize为0是比较有效的。设置为负值会报错。