适当的IE6 HTML元素维度

时间:2008-10-05 05:22:56

标签: javascript internet-explorer

我正在尝试使用javascript设置元素的宽度和高度以覆盖整个浏览器视口,并且我成功使用

document.body.clientHeight
但是在IE6中似乎我总是水平和垂直滚动条,因为元素必须略大。

现在,我真的不想使用特定于浏览器的逻辑,只为IE6从每个维度中减去一个像素或2。另外,我没有使用CSS(宽度:100%等),因为我需要像素数量。

有没有人知道用IE6 +中的元素填充视口的更好方法(显然所有的浏览器都是好的)?

编辑:感谢Owen的建议,我确信jQuery会起作用。我应该指出我需要一个与工具包无关的解决方案。

3 个答案:

答案 0 :(得分:3)

  

来自http://andylangton.co.uk/articles/javascript/get-viewport-size-javascript/

<script type="text/javascript">
<!--

 var viewportwidth;
 var viewportheight;

 // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight

 if (typeof window.innerWidth != 'undefined')
 {
      viewportwidth = window.innerWidth,
      viewportheight = window.innerHeight
 }

// IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)

 else if (typeof document.documentElement != 'undefined'
     && typeof document.documentElement.clientWidth !=
     'undefined' && document.documentElement.clientWidth != 0)
 {
       viewportwidth = document.documentElement.clientWidth,
       viewportheight = document.documentElement.clientHeight
 }

 // older versions of IE

 else
 {
       viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
       viewportheight = document.getElementsByTagName('body')[0].clientHeight
 }
document.write('<p>Your viewport width is '+viewportwidth+'x'+viewportheight+'</p>');
//-->
</script>

答案 1 :(得分:3)

您考虑过使用jQuery吗?它将大部分浏览器特定功能抽象为一个通用接口。

var width = $(document).width();
var height = $(document.height();

$('#mySpecialElement').width(width).height(height);

答案 2 :(得分:1)

啊哈哈!我忘记了

document.documentElement.clientLeft
document.documentElement.clientTop

他们在IE中是2,在好浏览器中是0。 所以使用

var WIDTH = ((document.documentElement.clientWidth - document.documentElement.clientLeft) || document.body.clientWidth);
做了诀窍,类似于HEIGHT的想法!