clientHeight无法在IE中运行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了clientHeight无法在IE中运行相关的知识,希望对你有一定的参考价值。

我有一个父元素和子元素,并将父元素高度设置为100%。当我检查子元素高度时,它在chrome浏览器中显示一些值。但在IE浏览器中它显示为0.我做错了什么,我怎么能得到高度值。

<div id='parent'>  
  <div id="child"></div>  
</div>
/* Styles go here */
#parent{
  height: 100%;
  min-height:100%;
  min-width:100%;
  background-color:red;
  display:grid;
  display: -ms-grid;
  align-items:stretch;
  position:relative;
}

我用clientHeight找到元素高度。的document.getElementById( '' 子“)。clientHeight

示例链接https://jsfiddle.net/zc39px72/

答案

您需要指定网格的行为和重复方式,因为您使用网格使子元素获得其容器的整个宽度和高度。还需要使用offsetHeight(或宽度使用offsetWidth)获得元素高度。

请查看以下代码段:

var child = document.getElementById('child');
child.innerhtml = 'My height is: ' + child.offsetHeight;
html, body {
  height: 100%;
  margin: 0;
}
#parent{
  height: 100%;
  min-height:100%;
  min-width:100%;
  background-color: red;
  display: grid;
  display: -ms-grid;
  align-items: stretch;
  position: relative;
  -ms-grid-columns: 1fr;
  grid-template-columns: repeat( 1, 1fr );
  -ms-grid-rows: 100%;
  grid-template-rows: repeat( 1, 100% );
}     
<div id="parent">
  <div id="child"></div>
</div>

以上是关于clientHeight无法在IE中运行的主要内容,如果未能解决你的问题,请参考以下文章

ie6兼容性问题汇总

js中的clientHeight和offsetHeight有啥区别么?

clientHeight/clientWidth 在不同的浏览器上返回不同的值

使用 jQuery 为啥 IE/Chrome 最初会为 textarea 提供不正确的 clientHeight 和 scrollHeight?

我的 Javascript 代码在 IE 中无法运行,但在其他浏览器中运行良好

兼容ie8,firefox,chrome浏览器的代码片段