有没有可能用CSS制作一个模糊的渐变阴影?

pprl5pva  于 2023-02-20  发布在  其他
关注(0)|答案(2)|浏览(165)

这里有一个影子:

所以我需要一个按钮悬停时出现的阴影。我知道它的css,但我没有设法使任何模糊:

background-image: linear-gradient(-90deg, #CF77F3 0%, #009BFF 47%, #2AC9DB 100%);
border-radius: 100px;
filter: blur(5px);

所以,有两个基本问题:
1.有没有可能用CSS做这个模糊的东西?
1.如果是的话,有没有可能把它做成一个按钮阴影呢?或者我怎么解决这个问题呢?一个想法是做一个带有绝对定位的png,这有点笨拙

    • 更新**

所以我想要达到的最终结果看起来像这样:

阴影重复按钮渐变,即

linear-gradient(-90deg, #CF77F3 0%, #009BFF 47%, #2AC9DB 100%);
vsmadaxz

vsmadaxz1#

    • 新答案**

我做了一个在线生成器,可以帮助您轻松获得渐变阴影:https://css-generators.com/gradient-shadows/
您所要做的就是调整一些值并获得代码:

button {
  margin: 50px;
  border-radius: 999px;
  padding: 10px 30px;
  font-size: 25px;
  color: #fff;
  text-align: center;
  line-height: 50px;
  border: none;
  background: linear-gradient(-90deg, #CF77F3 0%, #009BFF 47%, #2AC9DB 100%);
  position: relative;
  transform-style: preserve-3d;
}
button::before {
  content: "";
  position: absolute; 
  inset: -10px;
  background: inherit;
  filter: blur(20px);
  transform: translate3d(15px,15px,-1px);
  border-radius: inherit;
  pointer-events: none;
}
<button >
  this a button
</button>

更多详情:https://css-tricks.com/different-ways-to-get-css-gradient-shadows/

    • 旧答案**

那么多个框影呢?
一个二个一个一个

czq61nw1

czq61nw12#

在现代浏览器中,使用具有相同背景的伪元素并对其应用滤镜模糊可以获得这种效果。
为了与IE兼容,你也可以设置一个伪,并获得模糊的边界使用嵌入阴影.至少在Chrome中,有一个小的遗留下来的边界,仍然可以看到.

.test {
  margin: 20px;
  background-image: linear-gradient(-90deg, #CF77F3 0%, #009BFF 47%, #2AC9DB 100%);;
  border-radius: 50px;
  display: inline-block;
  height: 100px;
  width: 200px;
  position: relative;
  border: solid 4px black;
}

#test1:after {
  content: "";
  position: absolute;
  background-image: inherit;
  border-radius: inherit;
  width: inherit;
  height: inherit;
  transform: translate(0px, 20px) scale(1.1);
  z-index: -1;
  filter: blur(14px);
}

#test2:after {
  content: "";
  position: absolute;
  border-radius: 90px;
  width: 250px;
  height: 150px;
  z-index: -1;
  top: 1px;
  left: -25px;
  background-image: linear-gradient(-90deg, #CF77F3 0%, #009BFF 47%, #2AC9DB 100%);
  box-shadow: inset 0px 0px 25px 18px white;
}
<div class="test" id="test1">
</div>
<div class="test" id="test2">
</div>

相关问题