I’m doing a layout for an account page. And I’m thinking my code looks horrible because I am trying to avoid using tables. Here is a screen shot of what I want to get:

Right now, I’m using something like this (see jsfiddle): http://jsfiddle.net/uaUtq/7/
Here it is for quick review:
<ul class="info_list">
<li>
<label>First name</label>
<div><input type="text" /></div>
</li>
<li>
<label>Email</label>
<div>
<p>john@gmail.com (Default)</p>
<input type="text"/></div>
</li>
<li>
<label></label>
<div>
<input type="checkbox" />Tickbox
</div>
</li>
</ul>
It feels ugly and complicated. What way would you advise to do it?
Thanks
i think you should use div instead of li
like this
and write CSS class for label and control to proper alignment i.e. margin, padding, float, etc.