Sempre que desenvolvo um novo formulário que inclui um textarea
, tenho o seguinte dilema quando preciso especificar suas dimensões:
Use CSS ou use os textarea
atributos de cols
e rows
?
Quais são os prós e os contras de cada método?
Quais são as semânticas do uso desses atributos?
Como é geralmente feito?
line-height
para a altura da área de texto.Isso acionará o navegador para definir a altura da área de texto EXATAMENTE para a quantidade de linhas mais os preenchimentos ao redor. Definir a altura do CSS para uma quantidade exata de pixels deixa espaços em branco arbitrários.
fonte
height: auto;
no CSS não parece afetar minha área de texto.De acordo com o w3c, colunas e linhas são atributos necessários para áreas de texto. Linhas e Cols são o número de caracteres que cabem na área de texto em vez de pixels ou algum outro valor potencialmente arbitrário. Vá com as linhas / colunas.
fonte
A resposta é sim". Ou seja, você deve usar os dois. Sem linhas e colunas (e existem valores padrão, mesmo que você não os use explicitamente), a área de texto é inutilmente pequena se o CSS estiver desabilitado ou substituído por uma folha de estilo do usuário. Sempre tenha em mente as preocupações de acessibilidade. Dito isto, se sua folha de estilo tem permissão para controlar a aparência da área de texto, você geralmente acabará com algo que parece muito melhor, se encaixa bem no design geral da página e pode ser redimensionado para acompanhar a entrada do usuário ( dentro dos limites do bom gosto, é claro).
fonte
Para a área de texto, podemos usar abaixo do css para corrigir o tamanho
Testado em angularjs e angular7
fonte
fonte
O tamanho de uma área de texto pode ser especificado pelos atributos colunas e linhas, ou melhor ainda; pelas propriedades de altura e largura do CSS. O atributo cols é suportado em todos os principais navegadores. Uma diferença principal é que
<TEXTAREA ...>
é uma tag de contêiner: ela tem uma tag de início ().fonte
Normalmente não especifico
height
, mas especificowidth: ...
erows
ecols
.Geralmente, nos meus casos, apenas
width
erows
são necessários, para que a área de texto tenha uma boa aparência em relação a outros elementos. (Ecols
é um substituto se alguém não usar CSS, conforme explicado nas outras respostas.)((Especificando os dois
rows
eheight
parecendo um pouco com a duplicação de dados, eu acho?))fonte
Uma característica importante das áreas de texto é que elas são expansíveis. Em uma página da Web, isso pode resultar na exibição de barras de rolagem na área de texto se o comprimento do texto exceder o espaço definido (seja usando linhas ou usando CSS. Isso pode ser um problema quando um usuário decide imprimir, especialmente com 'printing' to PDF - defina uma altura mínima confortavelmente grande para áreas de texto impressas com uma regra CSS condicional:
fonte
se você não usar sempre, use line-height: '..'; property seu controle a altura da área de texto e a propriedade width para a largura da área de texto.
ou você pode usar o tamanho da fonte seguindo css:
fonte
Linhas e colunas HTML não respondem!
Então, eu defino o tamanho em CSS. Como uma dica: se você definir um tamanho pequeno para celulares, pense em usar
textarea:focus {};
Adicione um espaço extra aqui, que só será revelado no momento em que um usuário quiser realmente escrever algo
fonte
CSS
HTML
fonte