If your CSS doesn't seem to be rendering correctly even though you are 99.99% sure you're using the correct markup double check the doctype. If you don't explicitly set the doctype to transitional or strict the browser will default to CSS 1.0 specifications and many CSS 2.0 features aren't supported in the older version.
Make sure this is above the <html> tag:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Understanding DOCTYPE:
http://www.alistapart.com/articles/doctype/