J'ai un textarea
avec une hauteur minimale spécifique et basé sur this article je l'ai fait expansible. Le problème est qu'il se dilate avant qu'il ne remplisse sa hauteur minimale, donc je le veux d'abord remplir sa hauteur donnée et ensuite développer.Comment faire pour agrandir textarea après avoir rempli sa hauteur?
ici est un fiddle
Et voici le code:
HTML:
<div class="expand js-expand">
<pre><span></span><br></pre>
<textarea></textarea>
</div>
CSS:
.expand {
max-height: 100px;
overflow: hidden;
width:83%;
min-height: calc(5rem - 0.5rem - 0.5rem);
position: relative;
background-color: #ffffff;
}
.expand textarea,
.expand pre {
white-space: pre-wrap;
word-wrap: break-word;
text-align: left;
width: calc(100% - 0.5rem - 1rem);
min-height: 100%;
padding: 0.5rem 1rem 0.5rem 0.5rem;
}
.expand textarea {
resize: none;
border: none;
position: absolute;
top: 0; left: 0;
overflow: visible;
}
JS:
expandtextarea(document.querySelector('.js-expand'));
function expandtextarea(container) {
var tarea = container.querySelector('textarea');
var mirror = container.querySelector('span');
tarea.addEventListener('input', function(e) {
mirror.textContent = tarea.value;
});
}
J'ai essayé de définir une hauteur minimale pour textarea
et pre
éléments pour être le même que le conteneur div
mais il n'a rien changé.
Je me ferai un plaisir de faire des suggestions.
Merci, il était parfait, je ne pensais pas que ce soit aussi simple que cela – user6561572