为什么边界半径会影响框阴影?

时间:2019-01-03 10:02:11

标签: css google-chrome

请考虑以下CSS:

div {
  background: rgba(0,0,0,.05);
  width: 200px;
  height: 200px;
  padding: 50px;
}

div > div {
  background: rgba(0,0,0,.2);
  width: 200px;
  height: 200px;
  border-radius: 5px;
  padding: 0;
  box-shadow: 0 1px 5px rgba(0, 0, 0, .2), 0 2px 2px rgba(0, 0, 0, .14), 0 3px 1px -2px rgba(0, 0, 0, .12);
}

div > div:hover {
  border-radius: 5px 5px 0 0;
  background: rgba(0,0,255,.2)
}

具有以下HAML:

%div
  %div

将鼠标悬停在内部元素上会导致边框半径以及背景颜色发生变化。但是,它也会影响框阴影。这不应该发生。请参见下面的代码段:

https://codepen.io/anon/pen/yGvydK?editors=1100

这怎么解释?这是Google Chrome中的错误吗?在Firefox,IE或Edge中似乎没有发生这种情况。我在64位Windows 10笔记本电脑上运行Chrome版本71.0.3578.98。

编辑

Chrome中的行为(不正确):

Non-hovered state Hovered state. Note how the shadow suddenly looks different on the left, top, and right.

请注意,悬停时阴影在左侧,顶部和右侧的外观突然不同。

编辑2

Firefox 64.0中的行为(正确):

Non-hovered state Hovered state

1 个答案:

答案 0 :(得分:0)

这似乎是Chrome 71中的错误。更新为Chrome 72可以解决此问题。