2013-04-11 13 views
5

Jeśli ustawię stałą szerokość na elemencie textarea, czy istnieje elegancki sposób ustawienia wysokości domyślnej na rozmiar, który pozwoliłby na dopasowanie całej zawartości?Element TextArea - domyślny rozmiar pasujący do treści

Miałem nadzieję uniknąć kodowania w jquery, które porównywał text.length i próbowałem zrównywać wartość do wysokości, ale może to jedyny sposób, chciałbym zobaczyć jakąś natywną regułę css jeśli możliwe, ale nie mogę myśleć o niczym z mojej głowy.

Stworzyłem skrzypce ilustrujące to, co próbuję osiągnąć. http://jsfiddle.net/edZgm/

oto kod:

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> 

Dziękuję w sposób dvance.

+1

wierzę to zrobić-stanie (z jQuery, nie CSS), ale trudne. Myślę, że możesz zmienić rozmiar textarea za pomocą jquery po załadowaniu strony i zawartości textarea, a następnie obliczyć wysokość potrzebną do zliczania znaków i linii tekstu, ale to zależy bardzo od twojej czcionki i CSS dla tego tekstu. Byłoby łatwiej, gdybyś użył czcionki o stałej szerokości. – Revent

+1

Możesz chcieć zobaczyć, co robi wtyczka 'autogrow' w jQuery. – karthikr

+0

ah, to dobry punkt, nawet nie myślałem o rozmiarze czcionki. Hmm, to prawie na pewno musi być oparte na JS/JQ ... trzeba by prawdopodobnie spojrzeć na rozmiar czcionki i wysokość linii, następnie określić długość treści i określić, ile znaków pasuje do linii, obliczyć liczbę linie i oblicz wysokość na podstawie numeru linii pomnożonego przez wysokość linii. –

Odpowiedz

Powiązane problemy