如何使用jQuery从DIV中删除高度样式?


85

默认情况下,DIV的高度由其内容确定。

但是,我重写了它,并使用jQuery显式设置了高度:

$('div#someDiv').height(someNumberOfPixels);

我该如何扭转呢?我要删除高度样式,并使其恢复为自动/自然高度吗?


1
我也不能使它正常工作。似乎将div的高度设置为特定的值(例如300px或其他值)后,您无法将高度设置回auto。可能是jQuery错误。
布兰登·蒙哥马利2009年

Answers:


102

去除高度:

$('div#someDiv').css('height', '');
$('div#someDiv').css('height', null);

就像约翰指出的那样,将高度设置为auto

$('div#someDiv').css('height', 'auto');

(已使用jQuery 1.4进行了检查)


6
您提供了三种解决方案,我可以确认将高度设置为“”作品,而对其他作品一无所知。
Daniel Beardsley

1
在jQuery 1.9中使用''而null不是。
史蒂夫·陶伯

1
有一些细微的区别:1 + 2可以向w样式表(如果在此定义了任何东西)发信息,3覆盖它(因为将attrib设置为auto的优先级更高)
Frank Nocke 2014年

23
$('div#someDiv').height('auto');

我喜欢使用它,因为它与您首先使用.height(val)设置它的方式对称,并且可以跨浏览器使用。


2
这会强制将高度设置为自动高度,从而覆盖所有现有的CSS规则。在某些特定情况下可以这样做,但通常会导致问题。
Bennett McElwee 2015年

@BennettMcElwee我实际上正在努力解决您现在描述的问题。所以+1。
Native Coder


19

您可以尝试以下方法:

$('div#someDiv').height('');

4
那应该是正确的答案,因为这会删除css()样式值,这对使用js调整大小很有用:)干杯,谢谢
Szymon



0

只是为了在此处添加答案,我使用了height作为具有两个选项的函数,或者指定了小于窗口高度的高度,或者将其设置回auto

var windowHeight = $(window).height();
$('div#someDiv').height(function(){
    if ($(this).height() < windowHeight)
        return windowHeight;
    return 'auto';
});

如果内容小于窗口高度,我需要将内容垂直居中放置,否则请使其自然滚动,这就是我想到的


0

谢谢大家展示所有这些示例。我仍然有想你的例子后,像下面480像素的小屏幕媒体与我联系页面的麻烦。引导程序不断插入height: auto

Element Inspector / Devtools将在以下位置显示高度:

element.style {

}

就我而言,我section#contact.contact-container | 303 x 743在浏览器窗口中看到了:

因此,以下完整的作品可以消除该问题:

$('section#contact.contact-container').height('');


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.