2012-10-03 19 views
7

Đây là cách Chrome hiển thị chiều rộng và chiều cao của div:tại sao jquery .height() nhận được kết quả khác trên chrome?

enter image description here

đó là chính xác, trên thực tế chiều cao là 1466. Nhưng, nếu tôi làm điều này:

$(document).ready(function() { 
    console.log($('#container-altezza-fisso').height()); 
}); 

nó in 1418. Nó không có bất kỳ padding/margin. Tại sao? Và làm thế nào tôi có thể sửa nó?

+0

Quy tắc kiểu nào khác được áp dụng cho thành phần đó? Liệu nó có bất kỳ trẻ em cụ thể mà kích thước (chiều cao) có thể thay đổi sau khi nội dung của họ sẽ được tải? – raina77ow

Trả lời

8

Đó là vì DOMReady một số hình ảnh không được tải hoàn toàn. Bạn nên gọi chiều cao khi tải cửa sổ.

$(window).load(function(){ 
    console.log($('#container-altezza-fisso').height()); 
}) 

Bạn cũng có thể sử dụng outerHeight:

Lấy chiều cao tính toán hiện hành đối với phần tử đầu tiên trong tập hợp các yếu tố phù hợp, bao gồm cả đệm, biên giới, và lợi nhuận tùy chọn. Trả về một số nguyên (không có "px") đại diện của giá trị hoặc null nếu được gọi trên một tập hợp các phần tử rỗng.

console.log($('#container-altezza-fisso').outerHeight()); 
+0

Không có gì thay đổi .... – markzzz

+2

Điều này đã giúp tôi tiết kiệm rất nhiều đau đầu - cảm ơn! – boz

2

Sử dụng outerHeight() để nhận được chiều cao với phần đệm. Sử dụng outerHeight(true) để có được chiều cao với phần đệm + lề.

Here's a link to the documentation.

+0

Như tôi đã nói, tôi không có paddings/margin! Nó hoạt động đặt mã trên $ (cửa sổ) .load ...: O – markzzz

2

.height() sẽ giúp bạn có được chiều cao của phần tử, .outerHeight() sẽ trở lại đỉnh cao bao gồm cả đệm, lề và biên giới.

Các vấn đề liên quan