Who won the browser wars? Standards did! It's now possible to write a single set of HTML, CSS, and Javascript, and have it work in multiple browsers without doing sniffing If you want to know who's winning the browsers wars now, you have to evaluate standards support, but this is less of an issue So the real question is which parts of which standards are supported by multiple browsers The side question is how far you can push design without having the page fall completely apart in a major browser ("Major" is defined by YOUR visitors, not some "global" statistic!) It used to be that we assumed the browser was broken, rather than that we were authoring badly, but now that's shifting-- it's worth it to assume that if something doesn't work, it's not the browser's fault So let's take a look at various standards and where browsers stand (Note: Gecko is the rendering engine that underlies Mozilla, Netscape 6+, Compuserve 7, Galeon, Chimera, and...?) HTML 4.01: nearly complete support by everyone There are a few edge exceptions, like object/embed and optgroup You can't be a Web browser without HTML! XHTML 1.1: nearly complete support by everyone Again, there are some gaps around the edges The main failing you see here is tolerance for sloppiness DOCTYPE switching: the Big Two are doing it now The rendering mode you get depends on the DOCTYPE Error-handling, layout, and more are affected Opera tries to be in standards mode all the time; it's moderately successful CSS1: nearly complete support by IE6, NS6+, and Opera 4+ Lynx: no support There are still some lingering bugs, but they are unlikely to get you as long as you're in standards mode Watch out for IE5.x-- only one mode, and it isn't the greatest The big failing is the box model 'width' isn't handled correctly in quirks Error-handling is very lax in quirks Standards mode (IE6) fixes this CSS2: support is limited but fairly robust Opera: very good CSS2 support Gecko: good CSS2 support IE6: limited CSS2 support Multiple-media support is quite good Paged-media support is limited Generated content is very limited Positioning is the big problem-- it's fragmented and in some places contradictory; workarounds are often the order of the day Javascript (EMCAscript): support is excellent Being fairly simple, this is an easy language to support The problem arises from using proprietary code The worst example is proprietary DOMs DOM: a gradually clarifying mess DOM0 support is pretty good across the board Doing animations leads to major performance hits in most browsers IE is the standout in this category; it is excellent DOM2 is the reverse: slow performance in most browsers, and close to zilch in IE, but recent interest in Events from IE engineers If you stick to the W3C DOM, you should be fine in the Big Two, and may be all right in Opera XML: poor support across the board Gecko is the standout here IE has limited/flawed support (Mac at least gives a tree view) XML+CSS works great in Gecko, okay in IE/Win XSLT: very limited Mozilla is the only engine with native XSLT support However, using XSLT on the server to transform XML into HTML can be done easily, and is a viable solution (DevEdge) PNG: widespread support Gecko and IE5/Mac support the works, including alpha channels IE/Win supports PNG but not alpha channels Opera?