Thanks for replies.
I think I do the following:
I let the editors create different style classes which he then can bind to a DIV container or nested DIV's if he would like.
Something like this:
/* white-on-gray */
.white-on-gray { background-color:gray; color:white ... font styling here... line-height styling here ... etc }
/* title */
.white-on-gray h1 { color:#color; font-size:ypx; margin-top:zpx; margin-bottom:kpx; }
/* sub-title */
.white-on-gray h2 { color:#color; font-size:ypx; margin-top:zpx; margin-bottom:kpx; }
/* a tag */
.white-on-gray a { color:#color; text-decoration:underline; }
I then store each sites styles in a db-table from where I can either dynamically recreate an external css file every time he changes any of the custom styles.
Or I can dynamically fetch the styles from the table on page creation and put them inside "script type=text/css".
The first option is probably best since it will use less cpu resources on the server.
Doing it this way, it should be very easy for the editor to control the looks of a block, such as background-color, title, subtitle, text, link, padding, alignment etc.
And should be really easy for the editor laiter to change the styles for the whole site at any time.
Thanks for the input.
Happy coding