获取高度div没有设置在CSS中的高度

如果没有为元素设置CSS高度规则,是否有任何方法来获取元素的高度我不能使用.height()jQuery方法,因为它需要一个CSS规则集? 有没有其他方法来获得高度?

jQuery .height将返回元素的高度。 它不需要CSS定义,因为它决定了计算的高度。

DEMO

您可以根据需要使用.height() .innerHeight()outerHeight()

在这里输入图像说明

.height() – 返回元素的高度,不包括填充,边框和边距。

.innerHeight() – 返回元素的高度,包括填充,但不包括边框和边距。

.outerHeight() – 返回包含边框的div的高度,但不包括边距。

.outerHeight(true) – 返回包含边距的div的高度。

在下面的代码片段中查看现场演示。 🙂

 $(function() { var $heightTest = $('#heightTest'); $heightTest.html('Div style set as "height: 180px; padding: 10px; margin: 10px; border: 2px solid blue;"') .append('<p>Height (.height() returns) : ' + $heightTest.height() + ' [Just Height]</p>') .append('<p>Inner Height (.innerHeight() returns): ' + $heightTest.innerHeight() + ' [Height + Padding (without border)]</p>') .append('<p>Outer Height (.outerHeight() returns): ' + $heightTest.outerHeight() + ' [Height + Padding + Border]</p>') .append('<p>Outer Height (.outerHeight(true) returns): ' + $heightTest.outerHeight(true) + ' [Height + Padding + Border + Margin]</p>') }); 
 div { font-size: 0.9em; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div id="heightTest" style="height: 150px; padding: 10px; margin: 10px; border: 2px solid blue; overflow: hidden; "> </div> 

只是一个注意事项,以防其他人有同样的问题。

我有同样的问题,并find了不同的答案。 我发现获取高度的div的高度是由其内容需要在window.load上启动,或window.scroll不是document.ready,否则我得到奇怪的高度/较小的高度,即在图像加载之前。 我也用outerHeight()

 var currentHeight = 0; $(window).load(function() { //get the natural page height -set it in variable above. currentHeight = $('#js_content_container').outerHeight(); console.log("set current height on load = " + currentHeight) console.log("content height function (should be 374) = " + contentHeight()); }); 

还要确保div当前附加到DOM可见

可以在jQuery中做到这一点。 尝试所有选项.height() .innerHeight().outerHeight()

 $('document').ready(function() { $('#right_div').css({'height': $('#left_div').innerHeight()}); }); 

示例屏幕截图

在这里输入图像说明

希望这可以帮助。 谢谢!!