If any css statement is invalid: in syntax OR attribute name OR attr-value, then whole statement is ignored. A small typo in a CSS file (e.g. missing '}') then large parts are silently ignored, which can be puzzling. Not as bad as PHP though (where you get a blank screen). Use Firefox and/or get console error msgs. INTRO [csstest.html] A standard style set: http://www.w3.org/TR/CSS2/sample.html http://css-tricks.com/pseudo-element-roundup/ CSS tricks site. http://dorward.me.uk/www/css/inheritance/ http://www.quirksmode.org/css/cascading/values.html https://www.w3.org/community/webed/wiki/Advanced_CSS_selectors Great on selectors. http://webdesignerwall.com/trends/47-amazing-css3-animation-demos MAJOR stuff on animation just in CSS. Key thing here is you have to think of 3 langs simultaenously: HTML, CSS, Java. Apparently: 0) PHP does calculations and outputs HTML, plus any CSS in the original file. a) Browser reads the HTML and builds the DOM (doc. object model) i.e. builds objects (data structures) to rep. the page. b) Perhaps simultaneously, it is reading in CSS sheets and building a separate object network. It reads all the CSS in one pass, with later defs over-riding earlier ones if they conflict. It attaches CSS properties to the DOM objects. c) Reads in java; both accumulating defs (fn-defs, var-vals), and exec as asked. Java can change both CSS net (?), and html-obj-properties. d) Finally, renders page using these things. THE 4 PLACES FOR CSS DEFS 1. In inherited style sheets; 1.2 including those files "included" within e.g. 2. In This shows syntax for (tmp def for) multiple tags at once. CASCADING / PRIORITY RULES The textually last def. gets used. But all the css is read before any rendering, so putting