As stated at https://developer.mozilla.org/en/Determining_the_dimensions_of_elements:
If you need to know the actual size of the content, regardless of how much of it is currently visible, you need to use the scrollWidth and scrollHeight properties.
So, I am using the scrollWidth and scrollHeight properties to resize the element to its actual size (jsfiddle).
HTML:
<textarea>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad brrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</textarea>
JavaScript:
(function ($) {
$(document).ready(function () {
$('textarea').css({
width: $('textarea')[0].scrollWidth,
height: $('textarea')[0].scrollHeight
});
});
})(jQuery);
I would assume that if I set the dimensions to the actual size of the content the element would have no scrollbars as its dimensions would be large enough for the content to not overflow. Right? So it should be the way you see in this image: i.stack.imgur.com/lKxoz.png
But it doesn't work properly as you can see from the following images:
IE: i.stack.imgur.com/JXt0e.png
Chrome: i.stack.imgur.com/emGyG.png
Opera: i.stack.imgur.com/7MAX5.png
My question is what is wrong with the scrollWidth and scrollHeight properties? They give me invalid dimensions!