【问题标题】:1px gap of absolute positioned element with transform: translate on Safari only带变换的绝对定位元素的 1px 间隙:仅在 Safari 上翻译
【发布时间】:2017-11-03 02:46:41
【问题描述】:

有一个全宽容器,其中包含位于容器内部中心的内盒。盒子里面有一个 100% 宽度的绝对定位盒子。对盒子也应用了变换:translate()。

HTML:

<div class="cover-holder">
    <div class="cover">
        <div class="cover__overlay"></div>
    </div>
</div>

CSS:

.cover-holder {
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  display: flex;
  justify-content: center;
}

.cover {
  width: 206px;
  height: 206px;
  background: white;
  position: relative;
  overflow: hidden;
  align-self: center;
}

.cover__overlay {
  background: rgba(0, 0, 0, 0.8);
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  transition-duration: 0.3s;
  transform: translate3d(0, 50%, 0);
}

.cover:hover .cover__overlay {
  transform: translate3d(0, 0, 0);
}

问题:

仅在 Safari 浏览器上出现奇数大小的窗口(或透明“边框”):

预期结果(在 Chrome、Firefox 和 IE 上的显示效果):

Demo in JSFiddle

【问题讨论】:

  • 您使用的是哪个 Safari 版本,您能否提供一个特定像素范围的窗口宽度/高度,以使您看到边框显示出来?我正在查看 Safari 10.1.1,我正在将您的小提琴的结果面板调整为各种尺寸,但我没有看到边框出现。
  • 嗨@cjl750 我尝试了不同的方法:真实设备 - OS X El Capitan 上的 Safari 10.11.6,以及 BrowserStack - El Capitan 上的 Safari 9.1 和 Sierra 上的 Safari 10.1。关于窗口大小,您可以很容易地注意到调整窗口大小的问题...

标签: css safari css-transitions css-position


【解决方案1】:

我遇到了同样的问题,在使用 transform 而不是 transform3d 之间切换为我解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    • 2014-05-16
    • 1970-01-01
    • 2012-10-23
    • 2017-02-08
    相关资源
    最近更新 更多