Tôi có một textarea với phong cách sau đây áp dụng:jQuery.height() cư xử khác nhau trong WebKit và Firefox khi sử dụng hộp kích thước: cửa hộp
textarea {
-webkit-box-sizing:border-box;
-moz-box-sizing:border-box;
}
Nếu tôi sau đó chạy javascript/code jquery sau , chiều cao textarea của tôi bị giảm đi một nửa sử dụng Safari (5.0.6) và Chrome (16.0.x):
$('textarea').each(function() {
var $this = $(this);
$this.height($this.height());
}
Theo các tài liệu jQuery cho .height(), đây là hành vi dự kiến vì .height () trả về chiều cao nội dung (không có đệm, đường viền), bất kể thuộc tính kích thước hộp, nhưng .height (value) đặt kích thước nội dung chiếm thuộc tính kích thước hộp. Vì vậy, nếu văn bản của tôi có chiều cao nội dung: 17px và chiều cao đệm: 15px, .height() sẽ trả về 17px. Sau đó, nếu tôi đặt .height (17) văn bản của tôi đã từng cao 32px hiện chỉ cao 17px.
Ứng dụng trong thế giới thực của tôi đang sử dụng jQuery.fn.autoResize 1.14 (https://github.com/padolsey/jQuery.fn.autoResize) trên văn bản có kích thước hộp được áp dụng. Mã đó kéo một diễn viên đóng thế tương tự với những gì tôi đã mô tả ở trên.
Nó hoạt động tốt trong FireFox 10 (Tức là, chiếm FireFox cho hộp kích thước một cách đối xứng hơn khi nhận và thiết lập chiều cao.)
Câu hỏi của tôi là: Đâu là lỗi, và ở đâu nên tôi tìm/đề xuất cách giải quyết? Plugin jQuery.fn.autoResize, nhóm jQuery, webkit hoặc FireFox?
Sẽ sử dụng jQuery ('# container'). OuterHeight(); làm việc tốt hơn? Tôi đã tìm thấy vấn đề với điều này là tốt và nó là khó khăn để gỡ lỗi. – Jeepstone