Eu quero desativar a propriedade redimensionável de a textarea
.
Atualmente, posso redimensionar um textarea
clicando no canto inferior direito textarea
do mouse e arrastando o mouse. Como posso desativar isso?
Eu quero desativar a propriedade redimensionável de a textarea
.
Atualmente, posso redimensionar um textarea
clicando no canto inferior direito textarea
do mouse e arrastando o mouse. Como posso desativar isso?
Respostas:
A seguinte regra CSS desabilita o comportamento de redimensionamento de textarea
elementos:
textarea {
resize: none;
}
Para desativá-lo para alguns (mas não todos) textarea
s, existem algumas opções .
Para desativar um específico textarea
com o name
atributo definido como foo
(ou seja, <textarea name="foo"></textarea>
):
textarea[name=foo] {
resize: none;
}
Ou, usando um id
atributo (ou seja <textarea id="foo"></textarea>
):
#foo {
resize: none;
}
A página do W3C lista os valores possíveis para as restrições de redimensionamento: nenhum, ambos, horizontal, vertical e herdado:
textarea {
resize: vertical; /* user can resize vertically, but width is fixed */
}
Revise uma página de compatibilidade decente para ver quais navegadores atualmente suportam esse recurso. Como Jon Hulka comentou, as dimensões podem ser mais restringidas no CSS usando max-width, max-height, min-width e min-height.
Super importante saber:
Essa propriedade não faz nada, a menos que a propriedade overflow seja algo diferente de visível, que é o padrão para a maioria dos elementos. Então, geralmente, para usar isso, você terá que definir algo como overflow: scroll;
Citação de Sara Cope, http://css-tricks.com/almanac/properties/r/resize/
Em CSS ...
textarea {
resize: none;
}
Eu encontrei duas coisas:
Primeiro
textarea{resize: none}
Este é um CSS 3, que ainda não foi lançado , compatível com Firefox 4 (e posterior), Chrome e Safari .
Outro recurso de formato é overflow: auto
livrar-se da barra de rolagem correta, levando em consideração o atributo dir .
HTML básico
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<textarea style="overflow:auto;resize:none" rows="13" cols="20"></textarea>
</body>
</html>
Alguns navegadores
O CSS 3 tem uma nova propriedade para elementos da interface do usuário que permitirá que você faça isso. A propriedade é a propriedade redimensionar . Portanto, você adicionaria o seguinte à sua folha de estilo para desativar o redimensionamento de todos os elementos da área de texto:
textarea { resize: none; }
Esta é uma propriedade CSS 3; use uma tabela de compatibilidade para ver a compatibilidade do navegador.
Pessoalmente, eu consideraria muito irritante ter o redimensionamento desativado nos elementos da área de texto. Essa é uma daquelas situações em que o designer está tentando "interromper" o cliente do usuário. Se o seu design não puder acomodar uma área de texto maior, convém reconsiderar como ele funciona. Qualquer usuário pode adicionar textarea { resize: both !important; }
à folha de estilo do usuário para substituir sua preferência.
texarea
e acaba fazendo algo não trabalho
<textarea style="resize:none" rows="10" placeholder="Enter Text" ></textarea>
Se você precisar de suporte profundo, poderá usar uma técnica da velha escola:
textarea {
max-width: /* desired fixed width */ px;
min-width: /* desired fixed width */ px;
min-height: /* desired fixed height */ px;
max-height: /* desired fixed height */ px;
}
resize:none
com esta solução para evitar que a alça apareça no canto inferior, o que frustrantemente não funciona.
Isso pode ser feito em HTML facilmente:
<textarea name="textinput" draggable="false"></textarea>
Isso funciona para mim. O valor padrão é true
para o draggable
atributo
Para desativar a propriedade redimensionar, use a seguinte propriedade CSS:
resize: none;
Você pode aplicar isso como uma propriedade de estilo embutido da seguinte maneira:
<textarea style="resize: none;"></textarea>
ou entre as <style>...</style>
tags de elemento da seguinte forma:
textarea {
resize: none;
}
Você simplesmente usa: resize: none;
no seu CSS.
A propriedade redimensionar especifica se um elemento é ou não redimensionável pelo usuário.
Nota: A propriedade redimensionar se aplica a elementos cujo valor de estouro calculado é algo diferente de "visível".
Redimensionar também não é suportado no Internet Explorer no momento.
Aqui estão diferentes propriedades para redimensionar:
Sem redimensionamento:
textarea {
resize: none;
}
Redimensione para os dois lados (vertical e horizontalmente):
textarea {
resize: both;
}
Redimensionar verticalmente:
textarea {
resize: vertical;
}
Redimensionar horizontalmente:
textarea {
resize: horizontal;
}
Além disso, se você tiver width
e height
em seu CSS ou HTML, isso impedirá que sua área de texto seja redimensionada, com um suporte mais amplo aos navegadores.
CSS 3 pode resolver esse problema. Infelizmente, é suportado apenas em 60% dos navegadores usados atualmente .
Para o Internet Explorer e iOS, não é possível desativar o redimensionamento, mas você pode limitar a textarea
dimensão definindo width
e height
.
/* One can also turn on/off specific axis. Defaults to both on. */
textarea { resize:vertical; } /* none|horizontal|vertical|both */
Você pode simplesmente desativar a propriedade textarea como esta:
textarea {
resize: none;
}
Para desativar o redimensionamento vertical ou horizontal , use
resize: vertical;
ou
resize: horizontal;
Eu criei uma pequena demonstração para mostrar como as propriedades de redimensionamento funcionam. Espero que ajude você e outras pessoas também.
.resizeable {
resize: both;
}
.noResizeable {
resize: none;
}
.resizeable_V {
resize: vertical;
}
.resizeable_H {
resize: horizontal;
}
<textarea class="resizeable" rows="5" cols="20" name="resizeable" title="This is Resizable.">
This is Resizable. Lorem ipsum, or lipsum as it is sometimes known, is dummy text used in laying out print, graphic or web designs. The passage is attributed to an unknown typesetter in the 15th century who is thought to have scrambled parts of Cicero's De Finibus Bonorum et Malorum for use in a type specimen book.
</textarea>
<textarea class="noResizeable" rows="5" title="This will not Resizable. " cols="20" name="resizeable">
This will not Resizable. Lorem ipsum, or lipsum as it is sometimes known, is dummy text used in laying out print, graphic or web designs. The passage is attributed to an unknown typesetter in the 15th century who is thought to have scrambled parts of Cicero's De Finibus Bonorum et Malorum for use in a type specimen book.
</textarea>
<textarea class="resizeable_V" title="This is Vertically Resizable." rows="5" cols="20" name="resizeable">
This is Vertically Resizable. Lorem ipsum, or lipsum as it is sometimes known, is dummy text used in laying out print, graphic or web designs. The passage is attributed to an unknown typesetter in the 15th century who is thought to have scrambled parts of Cicero's De Finibus Bonorum et Malorum for use in a type specimen book.
</textarea>
<textarea class="resizeable_H" title="This is Horizontally Resizable." rows="5" cols="20" name="resizeable">
This is Horizontally Resizable. Lorem ipsum, or lipsum as it is sometimes known, is dummy text used in laying out print, graphic or web designs. The passage is attributed to an unknown typesetter in the 15th century who is thought to have scrambled parts of Cicero's De Finibus Bonorum et Malorum for use in a type specimen book.
</textarea>
Com @style
, você pode atribuir um tamanho personalizado e desativar o recurso de redimensionamento (resize: none;)
.
@Html.TextAreaFor(model => model.YourProperty, new { @style = "width: 90%; height: 180px; resize: none;" })
Você pode tentar com o jQuery também
$('textarea').css("resize", "none");
Para desativar o redimensionamento para todos os textarea
s:
textarea {
resize: none;
}
Para desativar o redimensionamento de um específico textarea
, adicione um atributo name
ou um id
e defina-o como algo. Nesse caso, é nomeadonoresize
<textarea name='noresize' id='noresize'> </textarea>
/* Using the attribute name */
textarea[name=noresize] {
resize: none;
}
/* Or using the id */
#noresize {
resize: none;
}
Adicionar !important
faz funcionar:
width:325px !important; height:120px !important; outline:none !important;
outline
é apenas para evitar o contorno azul em determinados navegadores.
!important
atributo. Sentido de corrigir a largura e altura se o atributo CSS resize: none
pode remover o recurso de redimensionamento
!important
mau?