我调整使用javascript一个div的风格:为什么Internet Explorer会在某些情况下自动调整div的style.left值?
div.style.left = "486px";
I输出值:
console.log("left after:" + div.style.left);
输出:
LOG:离开后:486px
看起来不错。但我看到div不在那里。我使用开发人员工具检查内联样式:
left: 852px
这不会总是发生。左值的某些更改正常工作。但在其他人身上,一些“额外”调整是在之后做出的。
它只发生在Internet Explorer(测试版本8)。经过Firefox,Chrome,Opera和Safari测试,并没有发生。任何想法?
我正在做这个调整作为浏览器缩放使用$(窗口).resize函数的反应。 我在最后使输出“在......之后:”。我假设浏览器已完成所有缩放和重新定位的内容。我设定我的价值,我输出它的最后,然后期望在CSS中看到这个值。这在大多数情况下都会发生,但有时(大变焦)我会得到这些不同的值。
编辑:仅当浏览器缩放设置为150%或175%时才会发生。例如,我将150%的左值设置为567px。但在CSS中,当我回到缩放级别125%或更低时,它会得到851px。从200%转发也可以工作(设置425px)。
并没有多说这个问题。你知道谁是元素的抵消父母吗?据我所知,IE工具显示相对于屏幕的偏移量,以及偏移父级。 – Joseph 2012-03-29 17:17:01
div是从身体直接的小孩。抵消父母应该是身体。 – Ixx 2012-03-29 17:24:51
我知道在IE8中有一个错误会导致一个有效的调整大小,直到你点击屏幕或其他东西(我相信它是垂直调整大小)不触发调整大小。如果您要添加这样的样式元素,您应该能够使用DOM检查器查看内联样式。 – 2012-03-29 17:34:13