User stylesheets are stylesheets which a user can add to author styles to control what they see. One particular use of user stylesheets is for diagnostic purposes - see DiagnosticCss.
Browsers vary in the ease with which you can toggle a user stylesheet on and off as you move from site to site. At present, only Opera permits the use of multiple user stylesheets simultaneously.
Bookmarklets are ideal for storing user style sheets that you only want to use occasionally and creating one-time user style sheets.
Adding an ID="yoursite" attribute to the BODY element of each of your site's pages allows visitors to define their own styles for your site by combining CSS's ID selectors with descendent selectors:
/* --- default heading 1 style --- */
H1 {font-family: Helvetica, sans-serif;}
/* --- a heading 1 style just for your site --- */
#yoursite H1 {font-family: Impact, sans-serif;}
/* --- a different heading 1 style for another site --- */
#anothersite H1 {font-family: Univers, sans-serif;}
There was a suggestion to apply the site-wide ID to the HTML element, but that's not valid HTML. BODY is the highest element with an ID attribute.
If a lot of people adopt this technique, two sites might choose the same ID. One way to avoid namespace collisions is to use a munged form of your domain name or Web address as the ID, for example by replacing punctuation with hyphens: ID="www-bighost-com--myaccount".
You can extend this technique to individual pages by wrapping a page's contents in a DIV with an ID attribute that's unique among your site's pages. For example, you could use a munged relative URL: ID="weather-todaysforecast". I use this on my personal site; you can customize how the site, a particular section, or even an individual page appears in your browser.
More discussion of this technique can be found at http://www.rdrop.com/~half/Creations/Writings/TechNotes/css.tip.2.html, which has more discussion on avoiding namespace collisions.
The technique was invented by a poster on the comp.infosystems.www.authoring.stylesheets newsgroup and publicised by EricMeyer.
-- MarkIrons