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
    CSS Animations Between Media Queries

    CSS animations are right up there with sliced bread. CSS animations are efficient because they can be hardware accelerated, they require no JavaScript overhead, and they are composed of very little CSS code. Quite often we add CSS transforms to elements via CSS during...

  • By
    Introducing MooTools Templated

    One major problem with creating UI components with the MooTools JavaScript framework is that there isn't a great way of allowing customization of template and ease of node creation. As of today, there are two ways of creating: new Element Madness The first way to create UI-driven...

Incredible Demos

  • By
    Add Styles to Console Statements

    I was recently checking out Google Plus because they implement some awesome effects.  I opened the console and same the following message: WARNING! Using this console may allow attackers to impersonate you and steal your information using an attack called Self-XSS. Do not enter or paste code that you...

  • By
    CSS Counters

    Counters.  They were a staple of the Geocities / early web scene that many of us "older" developers grew up with;  a feature then, the butt of web jokes now.  CSS has implemented its own type of counter, one more sane and straight-forward than the ole...

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!