首页 > 解决方案 > 使用 rgba 值时的抗锯齿边界半径问题

问题描述

我遇到了一个问题,当我将边框半径与 rgba 值的颜色结合使用时,比如让我们说 rgba(255,255,255,.8),然后使用 abox-shadow在某种程度上使盒子看起来像羽毛一样,我得到的问题是角不实心,如图所示。

在此处输入图像描述

左上角细节: 在此处输入图像描述

可以看出,当使用边框半径与其他 CSS 元素结合使用时,边缘会在设置边框半径时产生奇怪的透明边缘。

我已经尝试了很多但没有太大成功,这是一个代码尝试,因为我想为另一个项目尝试这个但只是在这里简单地复制它:https ://jsfiddle.net/01u7gbxa/1/

代码本身可以应用于任何对象,因此它似乎解析为相同的结果:

  background:rgba(0,0,0,.8);
  box-shadow:0 0 15px 30px rgba(0,0,0,.8);
  border-radius:60px;

有谁知道这是否可以解决?

提前感谢您提供更多信息。

标签: cssbox-shadow

解决方案


您可以使用模糊滤镜执行相同的操作。将其应用于伪元素以不影响任何潜在内容

body {
  background: #f00;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100vw;
  height: 100vh;
  padding: 0;
  margin: 0;
}

.box {
  width: 500px;
  height: 200px;
  border-radius: 60px;
  position: relative;
}

.box:before {
  content: "";
  position: absolute;
  top: -10px;
  left: -10px;
  right: -10px;
  bottom: -10px;
  background: rgba(0, 0, 0, .8);
  border-radius: inherit;
  filter: blur(10px);
}
<div class="box"></div>


推荐阅读