I didn’t know about naming rules/illegal characters for div/spans – they can’t start with a number – it has to be letter. Apart from that they can include letters, numbers, -, _, : and fullstops.
Also, and this is pretty cool, the id attribute acts as an anchor – so there’s no need to specify an “a name=”, you can just reference the id (which of course is unique).
Form the horse’s mouth:
ID and NAME tokens must begin with a letter ( A-Za-z ) and may be followed by any number of letters, digits ( 0-9 ), hyphens (“-“), underscores (“_”), colons (“:”), and periods (“.”).