Full Width Textareas

By  on  

Working with textarea widths can be painful if you want the textarea to span 100% width.  Why painful?  Because if the textarea's containing element has padding, your "width:100%" textarea will likely stretch outside of the parent container -- a frustrating prospect to say the least.  Luckily there's a quick CSS solution to this problem!

The CSS

box-sizing to the rescue!

textarea {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;

	width: 100%;
}

Setting the box-sizing to border-box allows the textarea to respect its parent container's padding and border, recalculating what 100% actually means.  If the box-sizing were content-box, the textarea would continue to stretch outside the parent container as it would have before.

Recent Features

  • By
    Serving Fonts from CDN

    For maximum performance, we all know we must put our assets on CDN (another domain).  Along with those assets are custom web fonts.  Unfortunately custom web fonts via CDN (or any cross-domain font request) don't work in Firefox or Internet Explorer (correctly so, by spec) though...

  • By
    JavaScript Promise API

    While synchronous code is easier to follow and debug, async is generally better for performance and flexibility. Why "hold up the show" when you can trigger numerous requests at once and then handle them when each is ready?  Promises are becoming a big part of the JavaScript world...

Incredible Demos

  • By
    Background Animations Using MooTools

    One of the sweet effects made easy by JavaScript frameworks like MooTools and jQuery is animation. I ran across this great jQuery tutorial that walks you through animating a background image of a page. Here's a quick MooTools code snippet that...

  • By
    Fullscreen API

    As we move toward more true web applications, our JavaScript APIs are doing their best to keep up.  One very simple but useful new JavaScript API is the Fullscreen API.  The Fullscreen API provides a programmatic way to request fullscreen display from the user, and exit...

Discussion

  1. Very nice. I’ve struggled with this in the past. Top tip

  2. Great tip. Thanks.

  3. Great tip.
    Is it support in all browser?

  4. brett

    last I checked, ie9 did not support this, but i think ie10 had plans to

  5. Actually it is quite well supported :
    Firefox, Opera, Safari, Chrome, IE8+

    See : http://caniuse.com/#feat=css3-boxsizing

  6. See this Paul Irish link…

    http://paulirish.com/2012/box-sizing-border-box-ftw/

    Helps tremendously with mobile development as well and calculation of % width when utilizing this box-sizing.

  7. Tom

    Does not work for me (Win7, Firefox 15.0.1)

  8. I use Win7 64bits and tested with Firefox 15.0.1, IE9, Safari and Chrome. All working fine
    Be sure to use all 3 declarations for maximum compatibility:

    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    
  9. Does not work for me too (Mac OS X, Chrome 26)

  10. Hmm… nice, I got saved! thanks for sharing :D

  11. Nice, it works…

  12. Hi David! First i should say thanks about what you have written, I have question, i have done whatever you said but i wanna get some space from around of its parent tag, and i gave it margin:10px . But it doesn’t work ! Why?

  13. Alf

    Doesn’t work for me (Windows 7 + Chrome 46.0.2490.80 m)

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!