关于前端:dropshadow为不规则DOM添加阴影

42次阅读

共计 1345 个字符,预计需要花费 4 分钟才能阅读完成。

按钮暗影

前端平时开发页面中,按钮是一个很常见的组件。为了让按钮变的显著,个别会对按钮做一个暗影。
这个很简略,代码如下:

.box-shadow {box-shadow: 0 4px 20px #ccc;}

成果如下:

然而,有时候咱们会遇到可恶的设计师,让你做一个不规则的按钮。比方上面这样的。

不规则的按钮

针对这种按钮,咱们能够用 radial-gradient 来实现。radial-gradient函数用径向突变创立 ” 图像 ”。
举个例子:

.circle-btn {
  background-image:
    radial-gradient(circle at 100% 100%, transparent 0, 
      transparent 12px, #2179f5 13px);
}

下面这个例子中,circle at 100% 100%示意在 100% 100% 的地位,即以后 DOM 的右下角为圆心,画一个圆。这个圆从圆心往外突变,突变的款式是离圆心 0 到 12px 的色彩是transparent,从 12px 到 13px 的色彩是#2179f5

通过下面这个办法,咱们就能够把按钮的 4 个角变成图片的款式。
代码如下:

.circle-btn {
  padding: 6px 20px;
  background-size: 70% 70%;
  background-image: 
    radial-gradient( circle at 100% 100%, transparent 0, 
      transparent 12px, #2179f5 13px),
    radial-gradient( circle at 0 0, transparent 0,
      transparent 12px, #2179f5 13px),
    radial-gradient( circle at 100% 0, transparent 0,
      transparent 12px, #2179f5 13px),
    radial-gradient( circle at 0 100%, transparent 0,
      transparent 12px, #2179f5 13px);
  background-repeat: no-repeat;
  background-position: right bottom, left top, right top, left bottom;
}

不规则按钮的暗影

最初如果持续用 box-shadow 来做按钮的暗影,成果就会很奇怪,如图:

为什么会这样?
因为 box-shadow 是对这个 DOM 节点 box 的暗影,看名字也能看进去。4 个角切掉后,box 的大小并没有扭转。所以暗影没有在四个切掉的角下方。
查了一些材料,发现了 drop-shadow 这个属性能够解决这个问题。
间接上代码:

.drop-shadow {filter: drop-shadow(0 4px 20px #ccc);
}

drop-shadow是 filter 的一个属性办法,外面的参数和 box-shadow 是一样的。
成果如图:

最初

CSS 是学习前端路上最难把握全的,属性又多又碎。大家有什么好的学习办法吗,评论区通知下我。

完结

好了,本文到此结束,心愿本文对你有所帮忙 :-)
最近新弄了一个公众号:写代码的浩,求关注 😄。前面会逐渐把把握的前端常识以及职场常识积淀下来。
如果还有什么疑难或者倡议,能够多多交换,原创文章,文笔无限,满腹经纶,文中若有不正之处,万望告知。

正文完
 0