The web was originally designed to be platform independent. The text for a web page was 'marked up' with internal tags -- to indicate a paragraph break, for example -- that were understood by all browsers, whether hosted on PCs, Macs, VAXen, Unix machines, etc. The designers of the web were content-oriented, not design-oriented, so the tags were specified to indicate the function of the content, not the appearance. Thus there were tags for a hierarchy of headings -- heading 1, heading 2, etc. -- but it was up to the individual browsers how these headings should appear, i.e. the font faces, sizes, and formatting. Such heading tags, and other tags like 'cite' (for citation), might be displayed in boldface by one browser and italics by another.
But soon web page authors wanted more control, and so tags like 'b' for bold were created that didn't give the browser any choice in how to display the affected text. The set of agreed-upon tags, the "hyper-text markup language" (html), grew through several internationally negotiated versions. A consequence of the evolving language meant, however, that someone with a first-generation browser might not be able to see a web page using third-generation html tags -- at least, not as the page designer intended it to be seen.
Things got vastly more complicated when web browsers hit the PC market, and Netscape began implementing custom tags of its own. Not only were these tags Netscape-specific, but they offended the html-purists who considered them frivolous -- tags to specify font color, for example. Once Microsoft got into the act with Internet Explorer, the "browser wars" began, with IE and Netscape each offering successive generations of sometimes mutually incompatible custom tags. Thus the latest versions of Netscape allows use of a platform-independent language called Java on web pages, while Microsoft employs an analogous system called Active-X. In many cases, Netscape and IE have belatedly implemented each others' custom features without advertising the fact.back