OK - I'm not a CSS expert either but this looks like a pretty good starting point;
(tested on IE6/7/8, Chrome, Firefox, Opera and Safari - Windows platform)
Code:
<html>
<head>
<title>Tableless Form Test</title>
<style type="text/css">
body { color:#666; font:10pt verdana; } /*just to make the page look nicer */
.row { width:800px; clear:left; }
.row div { border-top:1px solid #999; border-right:1px solid #999; height:30px; padding:0 3px; float:left; }
.label { width:150px; }
.label p, .icon p { margin-top:6px; }
.icon { color:red; font-weight:bold; text-align:center; width:25px; }
.formfield { width:200px; }
.formfield input { margin-top:4px; }
.left { border-left:1px solid #999; }
.bottom div { border-bottom:1px solid #999; }
</style>
<!--[if IE]>
<style type="text/css">
.formfield input { margin-top:2px; }
</style>
<![endif]-->
</head>
<body>
<div class="row">
<div class="label left"><p>Label 1:</p></div>
<div class="icon"> <p>></p> </div>
<div class="formfield"><input type="text" name="textfield1"/></div>
<div class="label"><p>Label 2:</p></div>
<div class="icon"> <p>></p> </div>
<div class="formfield"><input type="text" name="textfield2"/></div>
</div>
<div class="row bottom">
<div class="label left"><p>Label 3:</p></div>
<div class="icon"> <p>></p> </div>
<div class="formfield"><input type="text" name="textfield3"/></div>
<div class="label"><p>Label 4:</p></div>
<div class="icon"> <p>></p> </div>
<div class="formfield"><input type="text" name="textfield4"/></div>
</div>
</body>
</html>
Note the extra class of "bottom" required on the very last row and also "left" required in the first occurance of the label on each row.
Also, its not exactly 800px wide - I've just gone with the closest 5px increment on .label, .icon and .formfield widths so when combined they total something close to 800px.
Bookmarks