【发布时间】:2014-07-31 14:20:44
【问题描述】:
在 jQuery 中,$('#foo').height() 和 $('#foo').css('height') 都返回一个值,即使没有使用 CSS 显式设置 height 属性。有没有办法检测一个元素是否没有明确的高度,即它只是根据其内容呈现?
这是我写的一个例子来演示:http://jsfiddle.net/Enn6p/2/
编辑
为了进一步澄清我的问题,$('#foo').css('min-height') 和 $('#foo').css('max-height') 如果未明确设置,则已经正确返回空字符串。我正在寻找一种方法来确定是否通过 CSS 设置了明确的 height 值。
用例
我有一个脚本试图使浮动元素具有相同的高度。它通过遍历元素来查看哪个元素最高,然后将该高度应用于所有元素。在某些情况下,这些元素已经明确设置了高度,但其他元素是隐式渲染的。
我现在想添加撤消此操作的功能,并使一切恢复到原来的高度。为此,我需要知道元素最初是否设置了高度,或者高度是否为“自动”。一旦我可以做到这一点,我可以将原始值存储在元素的数据集合中,然后使用它来恢复到原始高度。
【问题讨论】:
-
好问题。我最初的想法是这并不简单,但我有兴趣看到答案
-
@Chrisbloom7
style属性在所有浏览器中都可用,但不是您想的那样。仅当style属性提供height值时,才会设置.style.height。如果元素具有设置height值的class,则不会设置它。style可能不是要走的路 -
谢谢,伊恩。我现在看到它只适用于内联样式。
-
看看这个:jsfiddle.net/strikernl/y3P3A 还有我的答案
标签: javascript jquery html css