Tengo un área de texto con el siguiente estilo aplicado:jQuery.height() se comporta de manera diferente en WebKit y Firefox cuando se utiliza una caja de tamaño: frontera-box
textarea {
-webkit-box-sizing:border-box;
-moz-box-sizing:border-box;
}
Si a continuación, ejecute el siguiente código JavaScript/jQuery , altura de mi área de texto se reduce a la mitad el uso de Safari (5.0.6) y Chrome (16.0.x):
$('textarea').each(function() {
var $this = $(this);
$this.height($this.height());
}
de acuerdo con la documentación de jQuery para .height(), este es el comportamiento esperado porque .height () devuelve la altura del contenido (sin relleno, borde), independientemente de la propiedad de tamaño de caja, pero .height (valor) establece la contenido tamaño que representa la propiedad de tamaño de caja. Entonces, si mi área de texto tiene contenido-altura: 17px y altura de relleno: 15px, .height() devolverá 17px. Entonces, si configuro .height (17), mi área de texto que solía tener 32 px de alto ahora solo tiene 17 px de alto.
Mi aplicación en el mundo real está utilizando jQuery.fn.autoResize 1.14 (https://github.com/padolsey/jQuery.fn.autoResize) en áreas de texto que tienen tamaño de caja aplicado. Ese código tira un truco similar a lo que he descrito anteriormente.
Funciona bien en Firefox 10. (Es decir, las cuentas de FireFox para la caja-dimensionamiento de una manera más simétrica cuando la obtención y configuración de altura.)
Mi pregunta es: ¿Dónde está el error, y dónde debo buscar/proponer una solución alternativa? El complemento jQuery.fn.autoResize, el equipo jQuery, el kit web o FireFox?
Utilizaría jQuery ('# container'). OuterHeight(); trabajar mejor? También he encontrado problemas con esto y es difícil de depurar. – Jeepstone