Disattiva il ridimensionamento dell'area di testo


117

Sto cercando di disattivare il ridimensionamento dell'area di testo nel mio sito; in questo momento sto usando questo metodo:

.textarea {
    clear:left;
    min-width: 267px;
    max-width: 267px;
    min-height:150px;
    max-height:150px;
}

So che il mio metodo non è corretto e ne sto cercando uno migliore in JavaScript. Sono un principiante, quindi la soluzione migliore per me sarà HTML5 o jQuery.

Risposte:


253

Prova questo CSS per disabilitare il ridimensionamento

Il CSS per disabilitare il ridimensionamento per tutte le aree di testo è simile a questo:

textarea {
    resize: none;
}

Potresti invece semplicemente assegnarlo a una singola area di testo per nome (dove si trova l'HTML dell'area di testo):

textarea[name=foo] {
    resize: none;
}

O per id (dove si trova l'HTML dell'area di testo):

#foo {
    resize: none;
}

Tratto da: http://www.electrictoolbox.com/disable-textarea-resizing-safari-chrome/


7
Invece di collegarti a una soluzione, dovresti spiegarlo un po 'qui. Molte altre persone che guarderanno a questa domanda in futuro non si preoccuperanno di fare clic su un collegamento per ottenere una risposta. Aggiungi alcuni dettagli qui e farò +1 sulla tua risposta.
— Jon Egeland

21

questo farà il tuo lavoro

  textarea{
        resize:none;
    }

inserisci qui la descrizione dell'immagine


8

CSS3 può risolvere questo problema. Purtroppo al giorno d'oggi è supportato solo sul 60% dei browser utilizzati .

Per IE e iOS non è possibile disattivare il ridimensionamento ma è possibile limitare la textareadimensione impostandone widthe height.

/* One can also turn on/off specific axis. Defaults to both on. */
textarea { resize:vertical; } /* none|horizontal|vertical|both */

Vedi Demo


2

Può essere fatto facilmente semplicemente usando l'attributo trascinabile html

<textarea name="mytextarea" draggable="false"></textarea>

Il valore predefinito è vero.


2
La domanda riguarda il ridimensionamento dell'area di testo, non il trascinamento della selezione. Quindi, come previsto, l'impostazione di questo attributo su un'area di testo non fa il trucco in Chrome (almeno).
— peveuve

2

Solo un'opzione in più, se vuoi ripristinare il comportamento predefinito per tutte le aree di testo nell'applicazione, puoi aggiungere quanto segue al tuo CSS:

textarea:not([resize="true"]) {
  resize: none !important;
}

Ed effettua le seguenti operazioni per abilitare la posizione in cui desideri ridimensionare:

<textarea resize="true"></textarea>

Tieni presente che questa soluzione potrebbe non funzionare in tutti i browser che potresti voler supportare. Puoi controllare l'elenco di supporto per resizequi: http://caniuse.com/#feat=css-resize


1

Come per la domanda, ho elencato le risposte in javascript

Selezionando TagName

document.getElementsByTagName('textarea')[0].style.resize = "none";

Selezionando Id

document.getElementById('textArea').style.resize = "none";

0
//CSS:
.textarea {
    resize: none;
    min-width: //-> Integer number of pixels
    min-height: //-> Integer number of pixels
    max-width: //-> min-width
    max-height: //-> min-height
}

il codice sopra funziona sulla maggior parte dei browser

//HTML:
<textarea id='textarea' draggable='false'></textarea>

fai entrambe le cose affinché funzioni sul numero massimo di browser


0

Questo funziona per me

<textarea
  type='text'
  style="resize: none"
>
Some text
</textarea>

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.