I am learning these the hard way. so I am sharing these with you - so you don't code your web pages the wrong way either.
You might be surprised at some of the things in the w3c/whatwg recommendations which people commonly mess up on, even good people in the field. (I call w3c/whatwg's recommendations specs or standards though they are not technically a standard).
WHen you code properly,
the REAL LIST of singleton tags (the ones what don't have open and close tags, like br, meta, img, input...) you'll be surprised most people get option, li, and a few others wrong (I did, and have seen it myself)! in w3c standards vernacular, a void element is one which does not have an open and close tag, but is instead a singleton (look that up and expand your vocabulary).
CSS Selectors case sensitivity. this one will bite you in the backside with firefox 5.0 and up, since this browser follows the specification and the others as of 7/10/2011 are case insensitive (the other browsers are being sloppy). so to be safe, MATCH THE CASE OF YOUR DTD! this means: for XHTML, use lowercase element names. for XML, case-sensitive for element names. for HTML, you can use any case you like, but to be safe (and for conversion to XHTML) use lower-case element names.
Non-IE browser id case sensitivity. have not tried with anything other than IE8, ff, o, chrome. IE is case insensitive, which follows the standard. this breaks a lot of things. HTML5 defines it basically as kind of case-sensitive, meaning you can't have 2 attribute values for the same attribute (such as an id) with difference only in case.
<strong> this is bold </strong> (this is good) <strong> this is bold <em> bold italics </strong> mess(tag soup) </em> mess(tag soup) <strong> this is bold <em> bold italics </em> bold </strong> (this is good)