1

IE 8 appears to have implement the "zoom" CSS attribute completely differently than IE 7.

Here is a quick example:

<style>
   .outer { position: relative; width: 500px; height: 500px; }
   .inner { position: absolute; width: 250px; height: 500px; font-size: 50px; }
   .one { top: 0; left: 0; }
   .two { top: 0; left: 250px; }
</style>
<div class="outer">
  <div class="inner one">one</div>
  <div class="inner two">two</div>
</div>

This ideally would show 2 divs that are side by side - each 500px wide and they do not overlap eachother.

In IE 7 the "two" div is what you would expect - and this works in general with many different things - everything inside the "outer" div is scaled up to a scale of 2x just like you would expect.

But in IE 8 this is not the case - the "two" div is still only 250px from the left; it appears only the text inside the "two" div scaled up - nothing else really gets scaled (such as the position context of every child element!!!).

Things start overlapping horribly wrong in IE 8, so I actually am forced to have a tag like this

<meta http-equiv="X-UA-Compatible" content="IE=7" />

That way IE 8 will render like IE 7, making the benefits of IE 8 moot - so now everything on the page must work with IE 7's crappy layout engine (not like IE 8 is so much better here, but at least there are some better things in IE 8 layout engine).

Oh and guess what - even now (July 2013) the stats for our site indicate that over 90% of our users primarily use IE 8 - so, yea... making new features that only work for less than 10% of your customers is not an option (many of whom do not even have the administrative rights to install anything new because these are enterprise customers using PCs in an office).

Edit To be clear: It is clear that the implementation of Zoom changed in IE 8 - my question is why did IE 8 change this behavior when clearly it has made things so much worse.

I can give other examples of functionality that is plainly impossible with IE 8, but with IE 7 it is easy to accomplish with css zoom - so that is clear evidence that IE 8's implementation of zoom is just plain wrong - so why did they do it?

codefactor
  • 1,616
  • 2
  • 18
  • 41
  • It's not clear what your question really is. IE changed the way zoom worked (optical zoom vs. layout zoom) between v7 and v8 in order to improve the user-experience with Zoom. – EricLaw Jul 16 '13 at 20:32
  • My question is "why did it change" - it appears your answer is "to imrpove the user-experience with the css zoom attribute" - but in reality the user-experience is much much worse. Can you please be more clear as to what is actually improved? – codefactor Jul 16 '13 at 20:35
  • 2
    http://blogs.msdn.com/b/ie/archive/2008/03/25/internet-explorer-8-and-adaptive-zoom.aspx – MiniRagnarok Jul 16 '13 at 20:40
  • 1
    Thanks MiniRagnarok - this article explains it in detail - it appears my usage of "zoom" is not actually what Microsoft intended it to be used for. I am trying to use it as an alternative to the "transform:scale(xx)" which CSS3 provides - in which I want to scale everything - and microsoft has interpreted zoom to simply make text more readable (like the user wants to make just the text bigger) - so what Microsoft did was to assume that the zoom was being used only for one particular purpose and then changed it to better suit that one single-minded purpose, meanwhile breaking the functionality. – codefactor Jul 16 '13 at 20:48

0 Answers0