【问题标题】:How do I get the "auto" height of a DIV如何获得 DIV 的“自动”高度
【发布时间】:2013-08-10 14:07:11
【问题描述】:

因此,当我使用 jquery 在 div 上设置固定高度时,例如 $('div').height(200);$('div').height() 的值始终为 200。即使该 div 中的内容超过该高度(我使用 overflow:hidden)。

如何获得 DIV 的真实高度,就好像它处于“自动”模式一样?

【问题讨论】:

  • 你的意思是隐藏的内容高度?
  • 我认为这是处理scrollTopscrollHeight的事情。
  • 织女星 - 是的。 div内容的高度,包括被overflow隐藏的部分
  • @thelolcat 检查我的答案,让我知道它是否适合你。
  • @TrevorDixon 取消删除答案.. 希望人们看到的方式和你一样。

标签: javascript jquery css height


【解决方案1】:

使用

.scrollHeight()

element.scrollHeight

用 jquery 试试这个

 $(selector)[0].scrollHeight

描述

元素的 scrollHeight 是元素内容高度的度量,包括由于溢出而在屏幕上不可见的内容。

示例

DEMO 来自 Vega 的回答

【讨论】:

  • 谢谢,虽然它让我的高度比预期的要大一些,比如多 10 个像素..
  • 如果你将console.log($('div')[0].scrollHeight); 添加到 Vega Demo 中,它应该不会给你同样的结果
【解决方案2】:

你的意思是隐藏内容的高度?

织女星——是的。 div内容的高度,包括被overflow隐藏的部分

只需设置为auto 并获取.height 并将其设置回固定高度。

var $el = $('#test');
var tmp = $el.css('height');

var actualHeight = $el.css('height', 'auto').height();

$el.css('height', tmp);
alert(actualHeight);

演示: http://jsfiddle.net/sKZfF/

【讨论】:

  • @MinaGabriel 去吧,你真的不需要问......祝你好运。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-05
  • 2011-10-14
  • 2014-03-29
  • 2014-01-03
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
相关资源
最近更新 更多