Take a look at this article about web form usability: http://uxdesign.smashingmagazine.com/2011/11/08/extensive-guide-web-form-usability/
The choice of label alignment highly depends on the length of your form and whether your user should fill out all fields.
Typically for longer forms (5+ fields) where user should fill everything out, you want to place input label on top.
download bmml source – Wireframes created with Balsamiq Mockups
- This is the fastest layout to fill out
- You want input sizes to be just large enough to accommodate majority of sensible input values. This makes it easier for the user to recognize whether you're looking a word, a phrase or paragraph of info.
- Making all inputs the same width may look better for small forms (< 5 fields) but it can slow down the user for longer forms
When you have a form where user may be picking and choosing specific items to fill out, consider left aligning labels
download bmml source
- User is slightly slower when using this layout, but the left aligned labels makes it easier for them to scan to find the particular item they are looking for
- I like using this format for an "edit" form
Avoid right aligned form labels unless you really want the user to fill out the form slowly
- For readers who read from left to right, right aligned labels form a ragged left edge that makes scanning difficult
- Would recommend you avoid this unless you have a very very strong reason for right aligning your labels