 everyone hates forms they are hard to style so that they work with your site design they are hard to make them accessible yeah yeah we have heard it all but in reality they are not that hard to do since every other web developer designer has their own method i thought i would share my two cents when thinking through all of the html elements to find something that makes sense for forms there are many options unordered list ordered list divs paragraphs tables yes some people still use tables for forms there are probably others but i like to use a more uncommon element a definition list it is perfect for the job you have got the definition term which is essentially like the label then you have got the definition description which is basically the actual form element lets start with some un styled markup form action= method= post name= sendtofriendform id= sendtofriendform dl class= forms dtlabel for= name your name label dt ddinput name= name id= name type= text dd dtlabel for= senderemail your email address span class= required span label dt ddinput name= senderemail id= senderemail type= text dd dtlabel for= recipientemail friends email address span class= required span label dt ddinput name= recipientemail id= recipientemail type= text dd dd class= help use commas to separate multiple email addresses dd dtlabel for= sex sex label dt dd class= radio input name= sex id= male type= radio label for= male male label input name= sex id= female type= radio label for= female female label dd dtlabel for= message message label dt ddtextarea name= message id= message textarea dd dl button type= submit submit raquo button form i have created the page so you can see the output even un styled this form doesnt even look bad but lets add some style form margin 0 padding 0 dl forms float left width 100% dl forms dt margin 0 padding 10px 0 0 0 clear left float left width 175px dl forms label font weight bold dl forms dd margin 0 padding 10px 0 0 0 dl forms dd help clear left padding top 2px font size 90% color 999 dl forms input dl forms textarea width 300px dl forms dd radio input width auto dl forms textarea height 150px required color ff0000 font weight bold i dont think i need to go step by step through that because it is pretty simple styling i have created the styled page for you to see i personally like forms that have the label and the input element on the same line but thats just me it is pretty flexible try resizing the font two times still very readable you could easily do the widths in ems or percentages i just chose to use pixels since i dont have any parent element containing it should be pretty good in all browsers especially since we didnt do any crazy css i know it looks good in ff ie6 and ie7 i believe it works fine in safari and opera obviously this isnt the be all and end all to styling forms with css but it is something to start with so go out and make it better but be sure to share what you have created 