De forma predeterminada, un elemento <textarea>
se representa con un borde alrededor. El problema con esto es que cuando configura la propiedad width
en un elemento, solo está configurando el ancho del contenido, no el ancho total. El ancho total del elemento es (ancho + borde + relleno + margen) por lo que cuando configura width
en <textarea>
para que sea 100%, establece el ancho del contenido en 300px pero el ancho total es 300px más los bordes predeterminados, lo que hace que exceda el ancho de 300px del <div>
.
Usted podría acomodar estas fronteras en el <div>
usando relleno/márgenes, pero la mejor solución sería la de establecer la propiedad box-sizing
en el <textarea>
a border-box
para obligar a la propiedad width
para definir la anchura total de todo hasta e incluyendo el borde del elemento.
Usted tendrá que hacer un poco de investigación en esa propiedad porque se declaró de manera diferente en todos los navegadores (por ejemplo -moz-box-sizing
, -ms-box-sizing
, -webkit-box-sizing
, etc.). Here is the QuirksMode page on box-sizing
para que pueda ver.
El arreglo box-sizing
funciona para Firefox, pero no lo he probado en otros navegadores. Es posible que algunos de ellos, especialmente cuando están en modo peculiar/heredado, también puedan aplicar un margen al elemento. Si este es el caso, entonces todo lo que tendría que hacer sería eliminar los márgenes con CSS (AFAIK, no hay una opción ampliamente compatible para box-sizing
que se extienda a los márgenes, solo para contenido, relleno y borde).
yo sugeriría ser específico con esta revisión, y sólo la eliminación de los/márgenes derecho e izquierdo (es decir margin-left: 0; margin-right: 0;
) en lugar de eliminar por completo los márgenes (es decir margin: 0;
) para conservar los márgenes superior/inferior si es que existen (y si quieres para mantenerlos). Sé que Firefox aplica un margen de 1px a la parte superior/inferior, y también otros navegadores podrían hacerlo.
¡Qué excelente respuesta! Gracias. Esto responde perfectamente a mi pregunta –
@ming yeow: Me alegra ayudar. – AgentConundrum
¡qué paciencia para escribir esa explicación, gracias +1 por usted – kobe