 <p>Even though you've already accepted an answer, this is much less complicated and would probably be helpful:</p> <p>The problem is, <code>&lt;label&gt;</code> is an inline element and therefore it would just display right next to your <code>&lt;input&gt;</code>s. By adding <code>display:block</code> you would make the label display as a block element and take an entire new line. However, it would occupy the entire line and probably wouldn't look like the way you wished. At that point, you may either leave it is block and specify the width, or you can use the new CSS3 <code>inline-block</code> which will display it like a block but rather than taking up the whole line, it will wrap around its child elements. If you're concerned about non-CSS3 browsers (however since you're using the HTML5 "placeholder" attribute, I doubt you are) the simplest and easiest way out, would probably be adding the <code>&lt;br&gt;</code>... otherwise I recommend <code>display:inline-block;</code></p>