Unfortunately, an "incorrectly" closed tag is the cause of your problems. The first tag after <body> is
<a name="top" />
If you change that to
<a name="top"></a>
the text will become black in IE too.
Your way works in theory and in browsers that conform to theory ;-) But it's always a good idea to write the closing tag if the tag actually has one. That will prevent you from confusing browsers that have no clue. Extra example: for an empty paragraph, you should always write <p></p> and not <p />.