You can always assign your desired background and <p> colors with a personal CSS file. Practically any html tag you can think of, for that matter. The biggest problem with pages that have a black or extremely dark background color is that they often use white text. So, if you only take care of the background color, you may not be able to even see the text! Of course, if you create your personal CSS file, it will take precedence over anything that the page CSS tries to use for those particular html tags.
Of hand, I think the cascading flows like this:1. External CSS file
2. Internal CSS definitions (up in the Head area)
3. Inline CSS info (in the actual html tag info)
4. Personally created CSS file(s) (stored on your hard drive and set in a browsers prefs)
The order of 'strength' is equal to the size of the number above. In other words, #4 over rides all others, for the styles in its declarations.
It's just another reason web designers can't expect what they design to always appear on the users screen. Even if their browser supports everything they try to do. 
So, if you always wanted a white background with black text, you could type up the following css in a plain text editor (NOT WORD!!!).
The CSS:CODE
html {background:#ffffff; color: #000000;}
Save it as "My Special, super-duper, plain white background with black text.css" Then, in each browser, simply tell it to use that file. Just note the use of 'braces' {} instead of parentheses, a colon between the property (background) and its value (#fff), and a semi-colon after each property pair. This also shows how simple CSS can be, just like html, it's nothing more than plain text. No magic needed.
You can even use key words (white and/or black) for many colors instead of the RGB values, and shortened versions of those hexadecimal numbers instead of all six characters (#fff for #fffff and #000 for #000000).
For those with visual problems, the size of the text could be increased in a similar manner by using the 'font-size' property, for example.
QUOTE
just not sure how I'd make it work on only 1 site
That's the biggest drawback. It can probably be done with a bit of javascript, if you have that enabled. It might also be possible to use the site's CSS to see where they are setting that color. If it is a uniquely named definition, you could probably just use it again on your personal CSS file and just change the background color (and probably text, also). You can view source and see how they are using CSS (in the page itself or from an external file, hopefully not in each line of html!
). Of course, if they did it as I did, above, it will not be unique at all and would affect practically 100% of any site you visit.
Maybe a better alternative and probably more difficult, would be to write an Automator action or even an AppleScript. Saved as an app, it could reside on your Desktop or the Dock and you could run it only when you visited that site. A similar script could then be used when you surf the other 99.999999999999% of the web...it must be a pretty special site to consider jumping through all these hoops!