views:

38

answers:

4

Forgive me for asking such a simple question, I'm new to both HTML and CSS. Is there an easy way to center a textarea? I figured I'd just try using

textarea{
    margin-left: auto;
    margin-right: auto;
}

but it (obviously?) didn't work.

Help would be much appreciated :-)

+2  A: 

Set text-align of the element's parent to center, like this:

HTML:

<div>
    <textarea></textarea>
<div>

CSS:

div { text-align: center; }

Here is an example: http://jsfiddle.net/ujzLt/

Dave
Thank you for your quick reply! I have already assigned some colors and other things to the div element though, how do I get one which only has text-align:center;?
Chris
@Chris -- just add `text-align:center;` to your current `<div>`'s css declaration then. :-)
Sean Vieira
You can add all styling to the same div (color, font-family, text-align,...) or isn't this what you mean?
Dave
I actually wanted to remove the styles from the div so they wouldn't apply to the textarea, but perhaps that isn't needed (thought it would form a box with background color and padding, like my div does)?
Chris
They do not apply to the textarea, you can leave them as they are.
Dave
+1  A: 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
<html xmlns="http://www.w3.org/1999/xhtml"&gt;
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style>#container {width:100%; text-align:center;}</style>
</head>

<body>
<div id="container">
<textarea name="mytextarea" cols="10" rows="10"></textarea>
</div>
</body>
</html>

you wrap your textarea with a div, give it width and then you align it with text-align:center;

Sotiris
Thanks a lot :-)! However, like I explained above, I have already made my div prettier, how do I get back to a default one with just the text align?
Chris
+1  A: 

add display: block; to your textarea styles

Jeff Adams
Hey that did the trick, combined with the styles I already had, like you said. Thanks!
Chris
No problem, sometimes it's the simple things that work best.
Jeff Adams
+2  A: 

The margins won't affect the textarea because it is not a block level element, but you can make it display block if you like:

textarea{
    display: block;
    margin-left: auto;
    margin-right: auto;
}

before and after

By default, textareas are display: inline, which is why you can put them side-by-side easily, and why the text-align: center answers work too.

Douglas
This is what I'm using now, do you know if there's anything bad about it (as it sounds too easy to be true/good ;-) )?
Chris
Nope, I don't know of any downsides.
Douglas