I'd do it like this...
1) Anything that
isn't adjustable by the user should go in an external style sheet that's common to all users. Stuff like the width, height & padding definition in your original question shouldn't go inline. Remember that you can define a class' properties in multiple places.
2) The user-specific changes should produce a single block of CSS which amends the generic stylesheet referred to above. Either
(a) Produce a dynamically generated external sheet that all pages link to
or (b) Add a <style> element to the <head> of each page that contains the user's customisations.
There's a pay-off to consider here: Method (a) should cache on the user's machine, making the site run faster - but causing temporary problems when they change things. If they don't change things very often, that may not be important. Method (b) gets over the caching problem, but makes each page bigger than it needs to be. If you're only talking about a few lines of CSS, this probably isn't a big issue.
For all that, I find myself more attracted to method (a). It's a more self-contained solution than inserting an element into every page, and there is a work-around for the caching issue. Let's suppose that your user's stylesheet is generated by the url [tt]example.com/style.php?userid=99[/tt]. What you need to do is retrieve a timestamp for the last time the user changed their preferences and add it to the url: [tt]example.com/style.php?userid=99&ts=20083004120000[/tt]. You don't need to change the style generating code - the [tt]ts[/tt] parameter can be ignored, but because the URL is changed it'll force the browser to fetch a new version whenever the user makes a change.
-- Chris Hunt
Webmaster & Tragedian
Extra Connections Ltd