Voglio disabilitare la proprietà ridimensionabile di a textarea
.
Attualmente, posso ridimensionare un textarea
facendo clic sull'angolo in basso a destra del textarea
e trascinando il mouse. Come posso disabilitarlo?
Voglio disabilitare la proprietà ridimensionabile di a textarea
.
Attualmente, posso ridimensionare un textarea
facendo clic sull'angolo in basso a destra del textarea
e trascinando il mouse. Come posso disabilitarlo?
Risposte:
La seguente regola CSS disabilita il comportamento di ridimensionamento per gli textarea
elementi:
textarea {
resize: none;
}
Per disabilitarlo per alcune (ma non tutte) textarea
s, ci sono un paio di opzioni .
Per disabilitare uno specifico textarea
con l' name
attributo impostato su foo
(cioè, <textarea name="foo"></textarea>
):
textarea[name=foo] {
resize: none;
}
Oppure, usando un id
attributo (cioè, <textarea id="foo"></textarea>
):
#foo {
resize: none;
}
La pagina W3C elenca i possibili valori per il ridimensionamento delle restrizioni: nessuna, entrambe, orizzontale, verticale ed eredita:
textarea {
resize: vertical; /* user can resize vertically, but width is fixed */
}
Esamina una pagina di compatibilità decente per vedere quali browser supportano attualmente questa funzione. Come ha commentato Jon Hulka, le dimensioni possono essere ulteriormente contenute nei CSS usando max-width, max-height, min-width e min-height.
Super importante sapere:
Questa proprietà non fa nulla a meno che la proprietà di overflow non sia qualcosa di visibile, che è l'impostazione predefinita per la maggior parte degli elementi. Quindi generalmente per usarlo, dovrai impostare qualcosa come overflow: scroll;
Citazione di Sara Cope, http://css-tricks.com/almanac/properties/r/resize/
Nel CSS ...
textarea {
resize: none;
}
Ho trovato due cose:
Primo
textarea{resize: none}
Questo è un CSS 3, che non è stato ancora rilasciato , compatibile con Firefox 4 (e versioni successive), Chrome e Safari .
Un'altra caratteristica del formato è quella overflow: auto
di sbarazzarsi della barra di scorrimento destra, tenendo conto dell'attributo dir .
HTML di base
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<textarea style="overflow:auto;resize:none" rows="13" cols="20"></textarea>
</body>
</html>
Alcuni browser
CSS 3 ha una nuova proprietà per gli elementi dell'interfaccia utente che ti permetterà di farlo. La proprietà è la proprietà di ridimensionamento . Quindi aggiungere quanto segue al foglio di stile per disabilitare il ridimensionamento di tutti gli elementi textarea:
textarea { resize: none; }
Questa è una proprietà CSS 3; usa una tabella di compatibilità per vedere la compatibilità del browser.
Personalmente, troverei molto fastidioso avere il ridimensionamento disabilitato sugli elementi textarea. Questa è una di quelle situazioni in cui il designer sta cercando di "rompere" il client dell'utente. Se il tuo disegno non può contenere un'area di testo più grande, potresti voler riconsiderare come funziona il tuo disegno. Qualsiasi utente può aggiungere textarea { resize: both !important; }
al foglio di stile dell'utente per sovrascrivere le tue preferenze.
texarea
e finisce per fare qualcosa che non funziona
<textarea style="resize:none" rows="10" placeholder="Enter Text" ></textarea>
Se hai bisogno di un supporto profondo, puoi usare una tecnica vecchia scuola:
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
con questa soluzione per evitare che la maniglia compaia nell'angolo in basso che frustrantemente non funziona.
Questo può essere fatto facilmente in HTML:
<textarea name="textinput" draggable="false"></textarea>
Questo funziona per me. Il valore predefinito è true
per l' draggable
attributo.
Per disabilitare la proprietà di ridimensionamento, utilizzare la seguente proprietà CSS:
resize: none;
Puoi applicare questo come una proprietà di stile inline in questo modo:
<textarea style="resize: none;"></textarea>
o tra i <style>...</style>
tag degli elementi in questo modo:
textarea {
resize: none;
}
Devi semplicemente usare: resize: none;
nel tuo CSS.
La proprietà di ridimensionamento specifica se un elemento è ridimensionabile o meno dall'utente.
Nota: la proprietà di ridimensionamento si applica agli elementi il cui valore di overflow calcolato è diverso da "visibile".
Anche il ridimensionamento non è attualmente supportato in Internet Explorer.
Ecco diverse proprietà per il ridimensionamento:
Nessun ridimensionamento:
textarea {
resize: none;
}
Ridimensiona in entrambi i modi (verticale e orizzontale):
textarea {
resize: both;
}
Ridimensiona verticalmente:
textarea {
resize: vertical;
}
Ridimensiona in orizzontale:
textarea {
resize: horizontal;
}
Anche se hai width
e height
nel tuo CSS o HTML, impedirà il ridimensionamento della tua area di testo, con un supporto più ampio per i browser.
CSS 3 può risolvere questo problema. Sfortunatamente al giorno d'oggi è supportato solo dal 60% dei browser usati .
Per Internet Explorer e iOS non puoi disattivare il ridimensionamento, ma puoi limitare la textarea
dimensione impostando il suo width
e height
.
/* One can also turn on/off specific axis. Defaults to both on. */
textarea { resize:vertical; } /* none|horizontal|vertical|both */
Puoi semplicemente disabilitare la proprietà textarea in questo modo:
textarea {
resize: none;
}
Per disabilitare il ridimensionamento verticale o orizzontale , utilizzare
resize: vertical;
o
resize: horizontal;
Ho creato una piccola demo per mostrare come funzionano le proprietà di ridimensionamento. Spero che possa aiutare te e gli altri.
.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>
Con @style
, puoi dargli una dimensione personalizzata e disabilitare la funzione di ridimensionamento (resize: none;)
.
@Html.TextAreaFor(model => model.YourProperty, new { @style = "width: 90%; height: 180px; resize: none;" })
Puoi provare anche con jQuery
$('textarea').css("resize", "none");
Per disabilitare il ridimensionamento per tutti i textarea
s:
textarea {
resize: none;
}
Per disabilitare il ridimensionamento per uno specifico textarea
, aggiungi un attributo name
o un id
e impostalo su qualcosa. In questo caso, è chiamatonoresize
<textarea name='noresize' id='noresize'> </textarea>
/* Using the attribute name */
textarea[name=noresize] {
resize: none;
}
/* Or using the id */
#noresize {
resize: none;
}
L'aggiunta lo !important
fa funzionare:
width:325px !important; height:120px !important; outline:none !important;
outline
è solo per evitare il contorno blu su alcuni browser.
!important
dell'attributo. Non ha senso correggere la larghezza e l'altezza se l'attributo CSS resize: none
può rimuovere la funzione di ridimensionamento
!important
male?