Je souhaite désactiver la propriété redimensionnable d'un fichier textarea
.
Actuellement, je peux redimensionner un textarea
en cliquant sur le coin inférieur droit de textarea
et en faisant glisser la souris. Comment puis-je désactiver cela?
Je souhaite désactiver la propriété redimensionnable d'un fichier textarea
.
Actuellement, je peux redimensionner un textarea
en cliquant sur le coin inférieur droit de textarea
et en faisant glisser la souris. Comment puis-je désactiver cela?
Réponses:
La règle CSS suivante désactive le comportement de redimensionnement des textarea
éléments:
textarea {
resize: none;
}
Pour le désactiver pour certains (mais pas tous) textarea
, il existe quelques options .
Pour désactiver un spécifique textarea
avec l' name
attribut défini sur foo
(c'est- à -dire <textarea name="foo"></textarea>
):
textarea[name=foo] {
resize: none;
}
Ou, en utilisant un id
attribut (c.-à-d. <textarea id="foo"></textarea>
):
#foo {
resize: none;
}
La page W3C répertorie les valeurs possibles pour les restrictions de redimensionnement: aucune, les deux, horizontale, verticale et hérite:
textarea {
resize: vertical; /* user can resize vertically, but width is fixed */
}
Consultez une page de compatibilité décente pour voir quels navigateurs prennent actuellement en charge cette fonctionnalité. Comme Jon Hulka l'a commenté, les dimensions peuvent être encore plus restreintes en CSS en utilisant max-width, max-height, min-width et min-height.
Super important à savoir:
Cette propriété ne fait rien sauf si la propriété overflow est autre chose que visible, ce qui est la valeur par défaut pour la plupart des éléments. Donc, généralement, pour utiliser cela, vous devrez définir quelque chose comme débordement: défilement;
Citation de Sara Cope, http://css-tricks.com/almanac/properties/r/resize/
En CSS ...
textarea {
resize: none;
}
J'ai trouvé deux choses:
Première
textarea{resize: none}
Il s'agit d'un CSS 3, qui n'est pas encore publié , compatible avec Firefox 4 (et versions ultérieures), Chrome et Safari .
Une autre fonctionnalité de formatage consiste à overflow: auto
se débarrasser de la barre de défilement droite, en tenant compte de l' attribut dir .
HTML de base
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<textarea style="overflow:auto;resize:none" rows="13" cols="20"></textarea>
</body>
</html>
Certains navigateurs
CSS 3 a une nouvelle propriété pour les éléments d'interface utilisateur qui vous permettra de le faire. La propriété est la propriété de redimensionnement . Vous devez donc ajouter ce qui suit à votre feuille de style pour désactiver le redimensionnement de tous les éléments de zone de texte:
textarea { resize: none; }
Il s'agit d'une propriété CSS 3; utilisez un tableau de compatibilité pour voir la compatibilité du navigateur.
Personnellement, je trouverais très ennuyeux d'avoir le redimensionnement désactivé sur les éléments de la zone de texte. Il s'agit de l'une de ces situations où le concepteur tente de "casser" le client de l'utilisateur. Si votre conception ne peut pas accueillir une zone de texte plus grande, vous voudrez peut-être reconsidérer le fonctionnement de votre conception. Tout utilisateur peut ajouter textarea { resize: both !important; }
à sa feuille de style utilisateur pour remplacer votre préférence.
texarea
et finit par faire quelque chose qui ne fonctionne pas
<textarea style="resize:none" rows="10" placeholder="Enter Text" ></textarea>
Si vous avez besoin d'un soutien approfondi, vous pouvez utiliser une technique à l'ancienne:
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
cette solution pour éviter que la poignée n'apparaisse dans le coin inférieur, ce qui ne fonctionne pas de manière frustrante.
Cela peut être fait facilement en HTML:
<textarea name="textinput" draggable="false"></textarea>
Cela fonctionne pour moi. La valeur par défaut est true
pour l' draggable
attribut.
Pour désactiver la propriété de redimensionnement, utilisez la propriété CSS suivante:
resize: none;
Vous pouvez soit l'appliquer en tant que propriété de style en ligne comme ceci:
<textarea style="resize: none;"></textarea>
ou entre les <style>...</style>
balises d'élément comme ceci:
textarea {
resize: none;
}
Vous utilisez simplement: resize: none;
dans votre CSS.
La propriété resize spécifie si un élément est redimensionnable ou non par l'utilisateur.
Remarque: La propriété resize s'applique aux éléments dont la valeur de débordement calculée est autre que "visible".
Redimensionner également non pris en charge dans Internet Explorer pour le moment.
Voici différentes propriétés de redimensionnement:
Pas de redimensionnement:
textarea {
resize: none;
}
Redimensionnez les deux façons (verticalement et horizontalement):
textarea {
resize: both;
}
Redimensionner verticalement:
textarea {
resize: vertical;
}
Redimensionner horizontalement:
textarea {
resize: horizontal;
}
De plus, si vous en avez width
et height
dans votre CSS ou HTML, cela empêchera le redimensionnement de votre zone de texte, avec une prise en charge plus large des navigateurs.
CSS 3 peut résoudre ce problème. Malheureusement, il n'est supporté que sur 60% des navigateurs utilisés de nos jours.
Pour Internet Explorer et iOS, vous ne pouvez pas désactiver le redimensionnement, mais vous pouvez limiter la textarea
dimension en définissant son width
et height
.
/* One can also turn on/off specific axis. Defaults to both on. */
textarea { resize:vertical; } /* none|horizontal|vertical|both */
Vous pouvez simplement désactiver la propriété textarea comme ceci:
textarea {
resize: none;
}
Pour désactiver le redimensionnement vertical ou horizontal , utilisez
resize: vertical;
ou
resize: horizontal;
J'ai créé une petite démo pour montrer comment fonctionnent les propriétés de redimensionnement. J'espère que cela vous aidera ainsi que les autres.
.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>
Avec @style
, vous pouvez lui donner une taille personnalisée et désactiver la fonction de redimensionnement (resize: none;)
.
@Html.TextAreaFor(model => model.YourProperty, new { @style = "width: 90%; height: 180px; resize: none;" })
Vous pouvez également essayer avec jQuery
$('textarea').css("resize", "none");
Pour désactiver le redimensionnement pour tous les textarea
s:
textarea {
resize: none;
}
Pour désactiver le redimensionnement pour un élément spécifique textarea
, ajoutez un attribut name
, ou un id
et définissez-le sur quelque chose. Dans ce cas, il est nomménoresize
<textarea name='noresize' id='noresize'> </textarea>
/* Using the attribute name */
textarea[name=noresize] {
resize: none;
}
/* Or using the id */
#noresize {
resize: none;
}
L'ajout !important
fait fonctionner:
width:325px !important; height:120px !important; outline:none !important;
outline
est juste pour éviter le contour bleu sur certains navigateurs.
!important
attribut. Inutile de fixer la largeur et la hauteur si l'attribut CSS resize: none
peut supprimer la fonction de redimensionnement
!important
mal?