What solution you choose depends on how much HTML/CSS you want to teach to your content editors.
My solution, using content type attributes (basically columns in a database table) keeps the structure in an adp template.
This way the CSS information is in the adp template, and is not dependent on the content editor.