box-shadow阴影运用

CSS 中一大利器box-shadow为我们提供了非常强大的功能,了解他的语法掌握他的能力可以方便我们实现很多非常炫酷的效果。

首先我们看看定义。

.shadow{
    box-shadow: inset x-offset y-offset blur spread color;
}
属性 说明
inset 可选。没有指定inset,默认阴影在边框外,即阴影向外扩散
x-offset 必需的。水平阴影的位置。允许负值
y-offset 必需的。垂直阴影的位置。允许负值
blur 可选。阴影模糊半径。允许负值
spread 可选。阴影扩散半径。允许负值
color 可选。阴影的颜色。

几乎可以在任何元素上使用box-shadow来添加阴影效果。如果元素同时设置了 border-radius属性 ,那么阴影也会有圆角效果。 由于box-shadow属性并不占据空间,所以无法响应事件。


/* x偏移量 | y偏移量 | 阴影颜色 */
box-shadow: 60px -16px teal;

/* x偏移量 | y偏移量 | 阴影模糊半径 | 阴影颜色 */
box-shadow: 10px 5px 5px black;

/* x偏移量 | y偏移量 | 阴影模糊半径 | 阴影扩散半径 | 阴影颜色 */
box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.2);

/* 插页(阴影向内) | x偏移量 | y偏移量 | 阴影颜色 */
box-shadow: inset 5em 1em gold;

/* 任意数量的阴影,以逗号分隔 */
box-shadow: 3px 3px red, -1em 0 0.4em olive;

/* 全局关键字 */
box-shadow: inherit;
box-shadow: initial;
box-shadow: unset;

由于只能定义x轴或y轴偏移位置,左右或上下的对侧不能由一个阴影实现,所以我们分别用两个阴影偏移实现。下面是一些简单示例:

无阴影
内侧阴影
外侧阴影
上下阴影
左右阴影
模糊阴影
1px阴影
多重阴影
还可以这样

实践展示

光晕

{
  "width": "40px",
  "height": "40px",
  "borderRadius": "50%",
  "backgroundColor": "#fff",
  "boxShadow": "0 0 60px 30px #fff,0 0 100px 60px #f0f,0 0 140px 100px #0ff"
}

恒星

{
  "width": "260px",
  "height": "260px",
  "borderRadius": "50%",
  "boxShadow": "inset 0 0 50px #fff, inset 20px 0 80px #f0f, inset -20px 0 80px #0ff, inset 20px 0 300px #f0f, inset -20px 0 300px #0ff, 0 0 50px #eee,-10px 0 80px #f0f, 10px 0 80px #0ff"
}

长阴影

配合伪元素和transform,可以实现长阴影效果,当然也可以使用函数叠加多层阴影实现,只是会更复杂。

div::before,
div::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: -1;
}

div::before {
    transform-origin: 0 50%;
    transform: translate(100%, 0) skewY(45deg) scaleX(.6);
    background: linear-gradient(90deg, rgba(0, 0, 0, .3), transparent);
}

div::after {
    transform-origin: 0 0;
    transform: translate(0%, 100%) skewX(45deg) scaleY(.6);
    background: linear-gradient(180deg, rgba(0, 0, 0, .3), transparent);
}

日食

配合keyframes动画,可以实现简单日食效果


自定义工具

阴影自定义样式块
 3px 3px 10px 3px #3A354C

阴影1.


<box-shadow/>

Show Copy
最近更新
01
echarts扇形模拟镜头焦距与可视化角度示意图
03-10
02
vite插件钩子
03-02
03
vite的依赖预构建
02-13
更多文章>