J'ai un textarea avec 200px de hauteur, mais quand je passe ce 200px avec le texte, je veux avoir la textarea étendue au lieu de garder les 200px de hauteur avec une barre de défilement.
Il est possible de faire cela uniquement avec CSS?
Au lieu de textarea
, vous pouvez utiliser div
avec contentEditable attribut:
div {
display: inline-block;
border: solid 1px #000;
min-height: 200px;
width: 300px;
}
<div contentEditable="true"></div>
Il est possible de créer une zone de texte extensible par l’utilisateur, en utilisant simplement CSS. En fait, dans certains navigateurs modernes, une telle extensibilité est même la valeur par défaut du navigateur. Vous pouvez le demander explicitement:
textarea { resize: both; }
La prise en charge du navigateur augmente mais reste limitée.
Il n’ya généralement qu’un petit indice sur la redimensionnement: une poignée de redimensionnement dans le coin inférieur droit. Et je crains que la plupart des utilisateurs ne comprennent pas cet indice.
Vous ne pouvez pas développer une zone de texte automatiquement en utilisant uniquement du contenu CSS.
Non, il n'est pas possible de le faire uniquement avec css, mais vous pouvez utiliser jquery:
$('#your_textarea').on('keydown', function(e){
var that = $(this);
if (that.scrollTop()) {
$(this).height(function(i,h){
return h + 20;
});
}
});