【问题标题】:internet explorer non-deterministic layoutInternet Explorer 非确定性布局
【发布时间】:2017-04-11 22:47:15
【问题描述】:

另一个 Internet Explorer 非确定性错误。错误只出现在 Internet Explorer 中(chrome、firefox、safari 都可以正常工作)。

制作(在此处查看屏幕截图:http://imgur.com/a/8Ut7H):

  1. 如果我在窗口宽于 600 像素的情况下访问 https://shick.me/test,聊天消息会粘在左侧,尽管它们应该居中(就像在任何其他浏览器中一样)
  2. 如果我将窗口设置为小于 600 像素,则布局正确
  3. 非确定性:如果我现在将窗口再次变宽,则布局正确!

需要什么解决方法,或者 CSS/HTML 有什么问题?

提示:这可能与

的技巧有关
margin-right: 3000px;
padding-right: -3000px;

这有帮助吗?

当我使用开发人员控制台(ie 中的 F12)处理页面时,我发现几乎所有操作都会立即修复布局。例如,重绘页面并修复它:

document.body.style.display = 'none';
document.body.style.display = 'block';

但是,当我将它放入 javascript(在 onload/domcontentloaded 等中)时,它不起作用 - 在 js 执行后发生中断。当我将setTimeout 包裹在它周围时,它可以工作 - 但我会说这是一个非常丑陋的黑客攻击。

【问题讨论】:

  • 现在这是浏览器软件的错误还是您的样式规则的错误?您的主张是什么
  • 因为所有其他浏览器都可以工作,并且 ie 在特定路径之后工作,我肯定会声称这是一个 ie 错误 - 除非你另有说明。
  • 那么为什么最后一个问题是“CSS/HTML 有什么问题?”?答案显然应该是“什么都没有”……
  • 感谢@arkascha 我更正了它;-)
  • @arkascha 我不知道你对浏览器技术了解多少。许多浏览器都有一些内置的容忍度。因此,浏览器“正确”地显示布局并不一定意味着 CSS/HTML 是“正确的”。因此,很可能是我的代码不正确,只有ie是对的。

标签: html css internet-explorer media-queries


【解决方案1】:

在现实生活中进行了一些讨论(而不是 stackoverflow)后,我们最终将负边距“技巧”视为在 ie 中造成严重破坏的罪魁祸首。

所以我选择了一个不同的布局,它现在可以正常工作了。

【讨论】:

    猜你喜欢
    • 2017-11-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-29
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多