Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何确定图元高度是固定的_Javascript_Html_Css - Fatal编程技术网

Javascript 如何确定图元高度是固定的

Javascript 如何确定图元高度是固定的,javascript,html,css,Javascript,Html,Css,我需要知道HTML元素是否会随着内容的添加而扩展。可以通过多种方式预设元素的高度-通过内联样式高度或最大高度,在父元素设置其高度时通过css类设置相对高度,等等 我只需要知道元素的高度是否会随着子元素的增加而增加。我希望使用JQuery css方法,但它会计算实际值,并且不会告诉我它是否会随着新子元素的添加而改变。有几种方法可以设置元素的高度。以下是一个测试函数,可用于确定指定元素是否具有固定高度: HTML <span id="notAffected"></span>

我需要知道HTML元素是否会随着内容的添加而扩展。可以通过多种方式预设元素的高度-通过内联样式高度或最大高度,在父元素设置其高度时通过css类设置相对高度,等等


我只需要知道元素的高度是否会随着子元素的增加而增加。我希望使用JQuery css方法,但它会计算实际值,并且不会告诉我它是否会随着新子元素的添加而改变。

有几种方法可以设置元素的高度。以下是一个测试函数,可用于确定指定元素是否具有固定高度:

HTML

<span id="notAffected"></span>
<div id="hasCSSHeight"/>
<div id="hasInlineHeight" style="height:50px"/>
<div id="hasAttribureHeight" height="10px" />
<div id="hasNoHeight"/>
JavaScript

function hasHeight(el) {
  var i,
      l,
      rules = window.getMatchedCSSRules(el),
      display = window.getComputedStyle(el).getPropertyValue('display');

  // Inline displayed elements are not affected by height definition
  if(display === 'inline') {
    return false;
  }

  // CSS
  if(rules) {
    for(i=0,l=rules.length;i<l;i++) {
      if(rules[i].style.getPropertyValue('height')) {
        return true;
      }
    }
  }

  // Inline style
  if(el.style.height) {
    return true;
  }

  // Attribute
  if(el.getAttribute('height')) {
    return true;
  }

  return false;
}
函数hasHeight(el){
var i,
L
规则=window.getMatchedCSSRules(el),
display=window.getComputedStyle(el).getPropertyValue('display');
//内联显示的图元不受高度定义的影响
如果(显示=='inline'){
返回false;
}
//CSS
国际单项体育联合会(规则){

对于(i=0,l=rules.length;i@epascarello试着改变它,看看它是否可以-这可能会起作用…但是感觉很困难。我正在考虑遍历css/元素树,但这比我现在想做的更多mm…我不认为这是完整的。那么高度相对高度呢?问一下相对高度我的问题的答案是什么on将取决于父元素-对吗?我是否遗漏了其他内容?@mfeingold您能解释一下相对高度的含义吗?如果它在
%
中指定高度,则答案中的函数也会起作用。以下是MDN的一段引语:百分比百分比百分比是根据生成框的con的高度计算的taining块。如果未明确指定包含块的高度(即,它取决于内容高度),且该元素未绝对定位,则该值计算为自动。根元素上的高度百分比相对于初始包含块。
function hasHeight(el) {
  var i,
      l,
      rules = window.getMatchedCSSRules(el),
      display = window.getComputedStyle(el).getPropertyValue('display');

  // Inline displayed elements are not affected by height definition
  if(display === 'inline') {
    return false;
  }

  // CSS
  if(rules) {
    for(i=0,l=rules.length;i<l;i++) {
      if(rules[i].style.getPropertyValue('height')) {
        return true;
      }
    }
  }

  // Inline style
  if(el.style.height) {
    return true;
  }

  // Attribute
  if(el.getAttribute('height')) {
    return true;
  }

  return false;
}