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