为什么计算出的样式只能在devtools中切换后才能工作? (IE和Edge)

时间:2017-08-11 13:07:55

标签: internet-explorer cross-browser internet-explorer-11 microsoft-edge computed-style

我有一个像这样的css类:

.open-drawer {
  transform: translateX(0px);
  border-left: 1px solid grey;
  margin-left 3px;
}

此类添加在div上,在用户点击按钮时将其滑入视图。 margin-left表示它是在IE11 / Edge开发人员工具中计算出来的,它还没有被覆盖或者其他任何东西,但却未能真正出现在浏览器中。

这是针对IE和Edge的,在Chrome和Firefox中它按预期工作。

真正奇怪的是,当我在IE / Edge开发人员工具中关闭margin-left并再次打开时,它突然修复/应用自身并按预期显示。

这些短片有助于确保在Chrome中可以看到边距,而不是IE。边距最明显为双线之间的间隙,即开放式抽屉的左边界。在Chrome浏览器中,我们会看到这一点,但是在IE中,直到我们在视频显示的情况下关闭devtools中的属性:

我觉得这可能与渲染引擎布局时的时间有关,也许转换/翻译正在影响它,但实在不知道。不确定如何进一步缩小正在进行的操作,并且Trident或EdgeHTML的源代码是专有的。

任何想法?

1 个答案:

答案 0 :(得分:-3)

刚刚打开开发工具时,它是否可以工作?

如果你的代码中有console.log,但dev工具已关闭 - IE返回错误。您需要编写var console = {log:function(t){}};在js开始的某个地方或删除所有控制台日志。

这是已知问题之一,也许我没有正确理解你的任务。