Làm cách nào để xóa kiểu chiều cao khỏi DIV bằng jQuery?


85

Theo mặc định, chiều cao của DIV được xác định bởi nội dung của nó.

Nhưng, tôi ghi đè điều đó và đặt chiều cao rõ ràng bằng jQuery:

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

Làm thế nào tôi có thể đảo ngược điều đó? Tôi muốn xóa kiểu chiều cao và để làm cho kiểu đó trở về chiều cao tự động / tự nhiên?


1
Tôi cũng không thể làm việc này. Có vẻ như sau khi bạn đặt chiều cao của div thành một cái gì đó cụ thể (như 300px hoặc bất kỳ thứ gì), bạn không thể đặt chiều cao trở lại tự động. Có thể là một lỗi jQuery.
Brandon Montgomery

Câu trả lời:


102

để xóa chiều cao:

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

như John đã chỉ ra, hãy đặt chiều cao thành auto:

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

(đã kiểm tra bằng jQuery 1.4)


6
Bạn đã đưa ra ba giải pháp, tôi có thể xác nhận đặt chiều cao cho "" hoạt động, không biết về những giải pháp khác.
Daniel Beardsley

1
Trong jQuery 1.9 sử dụng '' nhưng nullkhông sử dụng .
Steve Tauber

1
Có differces tinh tế: 1 + 2 cho phép revices thew stlyesheet (nếu bất cứ điều gì được xác định ở đó), 3 ghi đè nó (như các thiết lập attrib để tự động có độ ưu tiên cao hơn)
Frank Nocke

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

Tôi thích sử dụng cái này, vì nó đối xứng với cách bạn đã sử dụng rõ ràng .height (val) để đặt nó ở vị trí đầu tiên và hoạt động trên các trình duyệt.


2
Điều này buộc chiều cao phải là chiều cao tự động, ghi đè mọi quy tắc CSS hiện có. Điều đó có thể ổn trong một số trường hợp cụ thể, nhưng nói chung nó có thể gây ra vấn đề.
Bennett McElwee

@BennettMcElwee Tôi thực sự đang vật lộn với sự cố mà bạn đã mô tả. Vì vậy, +1 cho điều đó.
Native Coder

19

có thể giống như

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

2
Điều đó sẽ ghi đè bất kỳ quy tắc CSS hiện có nào cần áp dụng, điều này có thể là một vấn đề.
Bennett McElwee

19

bạn có thể thử điều này:

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

4
mà nên đúng anwser như giá trị phong cách một để loại bỏ việc css () này, nó rất hữu ích trên thay đổi kích thước với js :) Chúc mừng, nhờ
Szymon

14

Để đặt lại chiều cao của div, chỉ cần thử

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


Đây là bản sao của câu trả lời của @ nonrectangular, có trước bản chỉnh sửa này.
Bennett McElwee


0

chỉ để thêm vào các câu trả lời ở đây, tôi đã sử dụng chiều cao như một hàm với hai tùy chọn hoặc chỉ định chiều cao nếu nó nhỏ hơn chiều cao cửa sổ hoặc đặt nó trở lại tự động

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

Tôi cần căn giữa nội dung theo chiều dọc nếu nó nhỏ hơn chiều cao cửa sổ hoặc nếu không hãy để nội dung cuộn tự nhiên, vì vậy đây là những gì tôi nghĩ ra


0

Cảm ơn những người đã cho thấy tất cả những ví dụ. Tôi vẫn gặp sự cố với trang liên hệ của mình trên các màn hình phương tiện nhỏ như dưới 480px sau khi thử các ví dụ của bạn. Bootstrap tiếp tục chèn height: auto.

Phần tử kiểm tra / Devtools sẽ hiển thị chiều cao trong:

element.style {

}

Trong trường hợp của tôi, tôi đã thấy: section#contact.contact-container | 303 x 743trong cửa sổ trình duyệt.

Vì vậy, toàn bộ thời lượng sau hoạt động để loại bỏ vấn đề:

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


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

tôi không nghĩ rằng điều này sẽ hoạt động đối với kiểu chiều cao css được nhúng trong thuộc tính aa style ...
topwik

Nếu bất cứ điều gì, bạn muốn removeAttr ( "phong cách")
jigglyT101

Này không làm việc và là lựa chọn tốt nhất tuy nhiên nếu (không giống như các câu hỏi ở đây), bạn đang cố gắng để loại bỏ một height="XX"thuộc tính HTML
user56reinstatemonica8
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.