JQuery kullanarak bir DIV'den yükseklik stilini nasıl kaldırırım?


86

Varsayılan olarak, bir DIV'nin yüksekliği içeriğine göre belirlenir.

Ancak, bunu geçersiz kılıyorum ve jQuery ile açıkça bir yükseklik ayarlıyorum:

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

Bunu nasıl tersine çevirebilirim? Yükseklik stilini kaldırıp otomatik / doğal yüksekliğine geri döndürmek istiyorum?


1
Bunu da çalıştıramıyorum. Görünüşe göre div yüksekliğini belirli bir şeye ayarladıktan sonra (300px veya her neyse), yüksekliği tekrar otomatik olarak ayarlayamazsınız. Bir jQuery hatası olabilir.
Brandon Montgomery

Yanıtlar:


103

yüksekliği kaldırmak için:

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

John'un işaret ettiği gibi, yüksekliği şu şekilde ayarlayın auto:

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

(jQuery 1.4 ile kontrol edildi)


6
Üç çözüm verdiniz, yüksekliği "" işe yaradığını onaylayabilirim, diğerlerini bilmiyorum.
Daniel Beardsley

1
JQuery 1.9'da '' kullanıyor ancak kullanmıyor null.
Steve Tauber

1
Göze çarpmayan farklılıklar var: 1 + 2, w stlyesheet'i revize etmesine izin verir (orada herhangi bir şey tanımlanmışsa), 3 onu geçersiz kılar (auto olarak ayarlanan özellik daha yüksek önceliğe sahiptir)
Frank Nocke

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

Bunu kullanmayı seviyorum, çünkü .height'ı (val) ilk etapta nasıl kullandığınıza göre simetriktir ve tarayıcılarda çalışır.


2
Bu, yüksekliği otomatik yükseklik olmaya zorlayarak mevcut CSS kurallarını geçersiz kılar. Bazı özel durumlarda bu sorun olmayabilir, ancak genel olarak sorunlara neden olabilir.
Bennett McElwee

@BennettMcElwee Aslında şu anda anlattığınız sorunla mücadele ediyorum. Yani bunun için +1.
Native Coder

20

bunu deneyebilirsin:

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

4
bu doğru cevap olmalıdır çünkü bu css () stil değerini kaldırır, js ile yeniden boyutlandırmada faydalıdır :) Şerefe, teşekkürler
Szymon

19

belki bir şey

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

2
Bu, uygulanması gereken mevcut CSS kurallarını geçersiz kılar ve bu bir sorun olabilir.
Bennett McElwee

14

Div'in yüksekliğini sıfırlamak için şunu deneyin:

$("#someDiv").height('auto');


Bu, bu düzenlemeden önce @ nonrectangular'ın yanıtının bir kopyasıdır.
Bennett McElwee


0

Sadece buradaki cevaplara eklemek için, yüksekliği iki seçenekli bir fonksiyon olarak kullanıyordum ya pencere yüksekliğinden azsa yüksekliği belirtin ya da otomatik olarak ayarlayın.

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

Pencere yüksekliğinden daha küçükse içeriği dikey olarak ortalamam gerekiyordu ya da doğal olarak kaydırmasına izin verdim, bu yüzden buldum


0

Tüm bu örnekleri gösterdiğiniz için teşekkür ederiz. Ben edildi hala senin örneklerini denedikten sonra 480px aşağıda gibi küçük medya ekranlarında benim iletişim sayfası ile karşılaşıyorum. Bootstrap takmaya devam etti height: auto.

Element Inspector / Devtools yüksekliği şu şekilde gösterecektir:

element.style {

}

Benim durumumda şunu görüyordum: section#contact.contact-container | 303 x 743tarayıcı penceresinde.

Bu nedenle, aşağıdaki tam uzunlukta çalışma sorunu ortadan kaldırmak için çalışır:

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


-6
$('div#someDiv').removeAttr("height");

Bunun aa style özniteliğine gömülü bir css yükseklik stili için işe yarayacağını sanmıyorum ...
topwik

Bir şey varsa, Attr ("stil")
jigglyT101

Bu işe yarar ve en iyi seçenektir, ancak (buradaki sorunun aksine) bir height="XX"HTML özelliğini kaldırmaya çalışıyorsanız
user56reinstatemonica8
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.