(Replying to fs_tigre)
Laid out as a "do this, don't do this" list, it would probably end up being longer than the reference works, since there are so many permutations and combinations.
BTW, I think you're confusing "syntax" with "semantics."
Proper syntax refers to using language elements in the right sequence, combined in correct ways.
In the HMTL context, "semantic" refers to whether something has "meaning," or whether it's just applied for styling purposes. So, an <li> tag has a meaning - it says, "This is a list item." An <h1> tag has a meaning - it says, "This is the main topic of this page" (or something like that - always a source of debate!).
A <font> tag, on the other hand, has no meaning, so it's not "semantic." It's not telling you that the material that follows is a font. It's telling the browser how to style that content.
There's a school of thought that says that all HTML tags should be semantic, and that all styling should be done in the CSS. Of course, they immediately carve out huge exceptions for tags like <div> and <span>, which don't really mean anything, so it's an ideology that isn't particularly consistent.