
I would prefer to avoid Microsoft-bashing, but today I've spent time trying to get my
tree viewer to work under Internet Explorer 6 and 7, and it's hell. Here are the problems I've had to deal with:
Empty DIV bugOn IE 6 the top of the scrollbar overlapped the transparent area when the page first loads. Eventually discovered that this is a bug in IE. It gives empty DIVs a height approximately equal to the font-height for the DIV, even if the DIV has
height:0px; (see
here for a discussion). I set the CSS for this DIV to
overflow:hidden;, and the DIV now behaves.
OpacityThe viewer makes use of opacity, that is, having DIVs that are coloured, but which you can see through. This enables me to add layers over the top of an image. IE doesn't support the standard way of doing this, so styles such as
opacity:0.5; must also be written as
filter:alpha(opacity=50); (thanks to David Shorthouse for pointing this out to me).
Background transparencyThe DIV overlaying the big tree has
background-color:transparent;, which means it refuses to accept any mouse clicks on the big tree. Changing the color to anything else meant the DIV received the clicks, so I ended up using a fairly ugly hack to include Internet Explorer-specific CSS for this DIV (idea borrowed from
How to Use Different CSS Style Sheets For Different Browsers (and How to Hide CSS Code from Older Browsers)).
z-index bugThe final show stopper was the auto-complete drop down list of taxon names. On IE it disappeared
behind the big tree. This is the infamous
z-index bug. The drop down menu is a DIV created on the fly, and although it's z-index value (99) means it should be placed on top of the tree (so the user can see the list of taxa), it isn't. After some Googling I settled on the hack of setting the z-index for the DIV containing the big tree to -1 in IE only, and this seems to work.
IE is sometimes goodSometimes it has to be said, IE has it's good points. The tree viewer failed in part because I'd failed to define a Javascript variable. Somehow FireFox and Safari were OK with this, but IE 6 broke. I defined the variable and it worked. I've also learnt to avoid some variable names, such as
scroll. I find FireFox to a better browser for developing stuff, especially if the
Firebug extension is installed. However, the
Internet Explorer Developer Toolbar is useful if you need to figure out what IE is doing.
ConclusionIt's staggering how much time one can waste trying to cater to the weird and wonderful ways of Internet Explorer. However, the
tree viewer should now work for those of you running Internet Explorer.