2013-04-11 5 views
5

Si je définis une largeur fixe sur un élément textarea, y a-t-il un moyen élégant de définir la hauteur par défaut à une taille qui permettrait à tout le contenu de s'y adapter? J'espérais éviter de coder en dur n'importe quoi dans jquery qui comparerait text.length et essayerait d'assimiler une valeur à une hauteur, mais c'est peut-être la seule façon, j'aimerais voir une règle css native si possible, mais je ne peux pas penser à tout de haut de ma tête.Élément TextArea - taille par défaut pour s'adapter au contenu

J'ai créé un violon illustrant ce que j'essaie d'accomplir. http://jsfiddle.net/edZgm/

est ici le code:

CSS:

textarea { 
    overflow: hidden; 
} 

JQuery:

$('document').ready(function() { 
    $('textarea') 
     .width(500); 

    //I have a width set, but see how the height defaults to a rediculously small amount. 
    //I'd like to have the height default to fit everything on load. 

}); 

HTML:

<textarea> ... lots of text </textarea> 

Merci dans un dvance.

+1

Je crois qu'il est faisable (avec jQuery, pas CSS), mais difficile. Je pense que vous pouvez redimensionner la hauteur de la zone de texte avec jquery après le chargement de la page et du contenu textarea, puis calculer la hauteur nécessaire en comptant les caractères et les lignes de texte, mais cela dépend fortement de votre police et CSS. Ce serait plus facile si vous utilisiez une police à largeur fixe. – Revent

+1

Vous voudrez peut-être voir ce que fait le plugin 'autogrow' dans jQuery. – karthikr

+0

ah c'est un bon point que je ne pensais même pas à la taille de la police. Hmm alors il devrait presque certainement être basé sur JS/JQ ... il faudrait probablement regarder la taille de la police et la hauteur de la ligne, puis déterminer la longueur du contenu et déterminer combien de caractères correspondrait par ligne, calculer le nombre de lignes, et figure une hauteur basée sur le nombre de ligne multiplié par la hauteur de ligne. –

Répondre

Questions connexes