在 jQuery 中,$('#foo').height()
和 $('#foo').css('height')
都返回一个值,即使没有使用 CSS 显式设置高度属性。有没有办法检测元素是否没有明确的高度,即它是否只是根据其内容呈现?
这是我写的一个例子来演示:http://jsfiddle.net/Enn6p/2/
编辑
为了进一步澄清我的问题,$('#foo').css('min-height')
和 $('#foo').css('max-height ')
如果未明确设置,则已正确返回空字符串。我正在寻找一种方法来确定是否通过 CSS 设置了明确的 height
值。
用例
我有一个脚本试图使 float 元素具有相同的高度。它通过遍历元素以查看哪个元素最高,然后将该高度应用到所有元素来实现这一点。在某些情况下,这些元素已经设置了显式高度,但其他元素会隐式呈现。
我现在想添加撤消此操作的功能,并使一切恢复到原来的高度。为此,我需要知道元素最初是否设置了高度,或者高度是否为“自动”。一旦我可以这样做,我就可以将原始值存储在元素的数据集合中,然后使用它来恢复到原始高度。
最佳答案
在某些旧版本的 jQuery 中,这是可能的:
http://jsfiddle.net/strikernl/y3P3A/
但现在你应该只使用像这样的函数:
function sizeDefined(obj){
var tmp = obj.clone().html('').appendTo($('body'));
var w = (tmp.width()==0 ? "no":"yes");
var h = (tmp.height()==0 ? "no":"yes");
tmp.remove();
return [w,h];
}
关于javascript - 有没有办法在 jQuery 中检测隐式与显式 CSS 高度值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24147458/