Cada vez que desarrollo un nuevo formulario que incluye un textarea
, tengo el siguiente dilema cuando necesito especificar sus dimensiones:
Use CSS o use los textarea
atributos de cols
y rows
?
¿Cuáles son los pros y los contras de cada método?
¿Cuáles son las semánticas del uso de estos atributos?
¿Cómo se hace generalmente?
line-height
la altura de su área de texto.Esto hará que el navegador establezca la altura del área de texto EXACTAMENTE en la cantidad de filas más los rellenos a su alrededor. Establecer la altura CSS en una cantidad exacta de píxeles deja espacios en blanco arbitrarios.
fuente
height: auto;
CSS no parece afectar mi área de texto en absoluto.Según el w3c, las columnas y las filas son atributos obligatorios para las áreas de texto. Las filas y las columnas son el número de caracteres que caben en el área de texto en lugar de píxeles o algún otro valor potencialmente arbitrario. Ir con las filas / cols.
fuente
La respuesta es sí". Es decir, debes usar ambos. Sin filas y columnas (y hay valores predeterminados incluso si no los usa explícitamente), el área de texto es inutilizable si CSS está deshabilitado o anulado por una hoja de estilo de usuario. Siempre tenga en cuenta las preocupaciones de accesibilidad. Dicho esto, si su hoja de estilo puede controlar la apariencia del área de texto, generalmente terminará con algo que se ve mucho mejor, encaja bien en el diseño general de la página y que puede cambiar el tamaño para mantenerse al día con la entrada del usuario ( dentro de los límites del buen gusto, por supuesto).
fuente
Para el área de texto podemos usar debajo de CSS para arreglar el tamaño
Probado en angularjs y angular7
fuente
fuente
El tamaño de un área de texto puede especificarse mediante los atributos de columnas y filas, o incluso mejor; a través de las propiedades de alto y ancho de CSS. El atributo cols es compatible con todos los principales navegadores. Una diferencia principal es que
<TEXTAREA ...>
es una etiqueta de contenedor: tiene una etiqueta de inicio ().fuente
Usualmente no especifico
height
, pero sí especificowidth: ...
yrows
ycols
.Por lo general, en mis casos, solo
width
yrows
son necesarios, para que el área de texto se vea bien en relación con otros elementos. (Ycols
es una alternativa si alguien no usa CSS, como se explica en las otras respuestas).((¿Especifica ambas cosas
rows
y seheight
siente un poco como duplicar datos, creo?))fuente
Una característica importante de las áreas de texto es que son expandibles. En una página web, esto puede dar lugar a que aparezcan barras de desplazamiento en el área de texto si la longitud del texto sobrepasa el espacio establecido (ya sea usando filas o usando CSS. Eso puede ser un problema cuando un usuario decide imprimir, particularmente con 'imprimir' a PDF: establezca una altura mínima cómodamente grande para las áreas de texto impresas con una regla de CSS condicional:
fuente
si no usa cada vez use line-height: '..'; propiedad su control de la altura de textarea y ancho de propiedad para el ancho de textarea.
o puede utilizar el tamaño de fuente siguiendo css:
fuente
¡Las filas y columnas HTML no responden!
Entonces defino el tamaño en CSS. Como consejo: si define un tamaño pequeño para móviles, piense en usar
textarea:focus {};
Agregue un poco de espacio extra aquí, que solo se desplegará en el momento en que un usuario quiera escribir algo
fuente
CSS
HTML
fuente