【问题标题】:IE showing horizontal scrollbar after dom element transformedDOM 元素转换后 IE 显示水平滚动条
【发布时间】:2015-03-15 10:26:18
【问题描述】:

我在我网站的各个地方都使用了以下 CSS:

http://jsfiddle.net/uycq29mt/1/

.a {
    position:absolute;
    background:red;
    width:600px;
    height:100px;
    left:50%;
    transform: translate(-50%);
}

在 Internet Explorer 中运行时,您会注意到一个水平滚动条,它似乎忽略了有关页面总宽度的转换。

【问题讨论】:

  • 我在 IE 团队工作,最近提交了一个关于此行为的错误。此外,I tweeted for sites that were affected 通过这个 bug,试图了解这个 bug 的影响。您是否有受此影响的实时站点?如果是这样,它将帮助我们了解修复的紧迫性。
  • 不幸的是它还没有上线,但是 jsfiddle 清楚地展示了它。

标签: html css internet-explorer horizontal-scrolling


【解决方案1】:

有一个简单的解决方案:

http://jsfiddle.net/uycq29mt/2/

.a {
    position:absolute;
    background:red;
    width:600px;
    height:100px;
    right:50%;
    transform: translate(50%);
}

我没有将元素向左发送 50%(向右)并使用变换向左发送,而是完全相反。 直到现在我才考虑过,但如果你将一个元素放在最左边,它不会影响页面宽度或滚动条。

奇怪的是,如果你通过使用 top 50% 和 translate(0px, -50%) 来做垂直等价的居中,它似乎不会影响垂直滚动条。

当以这种方式使用转换时,似乎只有 Internet Explorer 不会重新计算水平边界。很烦人。 IE 很烂。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2010-09-20
  • 2012-02-08
  • 1970-01-01
  • 1970-01-01
  • 2021-11-13
  • 2022-12-18
  • 2015-03-06
  • 1970-01-01
相关资源
最近更新 更多