在 div 上使用百分比 transformY 可能会导致相邻 div 之间出现接缝

Using percentage transformY on div may cause seams between adjacent divs

我一直在使用 CSS3 转换在我的网站中创建一个弹出窗口,但我注意到该弹出窗口中相邻的 div 之间有一个接缝。
我做了一个最小的例子来演示。

#wrapper {
  width: 50px;
  transform: translateY(50%);
}

#a,
#b {
  background: red;
}

#a {
  height: 50px;
  width: 100px;
}

#b {
  height: 51px;
  width: 150px;
}
<div id="wrapper">
  <div id="a">
  </div>
  <div id="b">
  </div>
</div>

你可以看到#a 和#b 之间有一个接缝。

我已经深入研究了这个问题,发现使用具有一定高度的 percentag transformY 可能会在 chrome 中导致这个问题(我没有在 firefox 中测试过)。

在我的示例中,如果#wrapper 的高度是奇数,translateY(50%) 将在子元素中创建接缝。

您可以尝试将#b 的高度设置为 52px,您会看到接缝消失了。
在我的网站上,我通过为该弹出窗口设置固定高度来修复它,但有时你无法控制高度,我想知道这是 chrome 中的错误还是我没有做对。

抱歉我的英语不好。

backface-visibility: hidden; 添加到 #wrapper 。这样就可以了。

#wrapper {
  width: 50px;
  transform: translateY(50%);
   backface-visibility: hidden; 
}

#a,
#b {
  background: red;
}

#a {
  height: 50px;
  width: 100px;
}

#b {
  height: 51px;
  width: 150px;
}
<div id="wrapper">
  <div id="a">
  </div>
  <div id="b">
  </div>
</div>