A: 

You can use a <table> where each label is in column 1 and each textfield is in column 2.

sepp2k
+6  A: 

I think this is more of a CSS question;

Labels by default aren't a block level element and so won't accept a width. Try setting this CSS:

label{
  width: 4em;
  float: left;
  text-align: right;
  margin-right: 0.5em;
  display: block
}

Hope that helps!

Al
I wonder whether this solution will work in older browsers (like IE6, to name one). I think the table solution is more reliable...
Jongsma
Yes it will, and works better for screen readers and text-only browsers too. And search engines :)
Al
the float does the trick!
tharkun
@Jongsam: if you look for the myriads of questions and answers on SO discussing the wrong and right usage of tables in layouts you'll most probably conclude that you shouldn't use a table for this.
tharkun
A: 

Don't use tables!! Use CSS!

rickiie