У меня есть текстовая область с применением следующего стиля:
textarea {
-webkit-box-sizing:border-box;
-moz-box-sizing:border-box;
}
Если я затем запусту следующий код javascript / jquery, высота моей текстовой области будет уменьшена пополам с помощью Safari (5.0.6) и Chrome (16.0.x):
$('textarea').each( function() {
var $this = $(this);
$this.height( $this.height() );
}
Согласно документации jQuery для .height (), это ожидаемое поведение, поскольку .height () возвращает высоту содержимого (без отступов, рамки) независимо от полясвойство -sizing, но .height (значение) устанавливает размер содержимого , что составляет свойство размера блока.Так что, если моя текстовая область имеет content-height: 17px и padding-height: 15px, .height () вернет 17px.Затем, если я установлю .height (17), моя текстовая область, которая раньше была высотой 32px, теперь имеет высоту только 17px.
Мое реальное приложение использует jQuery.fn.autoResize 1.14 (https://github.com/padolsey/jQuery.fn.autoResize)в текстовых областях, к которым применен размер блока. Этот код выполняет трюк, аналогичный описанному выше.
Он отлично работает в FireFox 10. (То есть FireFox учитывает размер блока в более симметричном виде.способ получения и установки высоты.)
Мой вопрос: где ошибка, и где я должен искать / предложить обходной путь? Плагин jQuery.fn.autoResize, команда jQuery, webkit или FireFox