动态阴影
创建一个类似于box-shadow
的阴影,但是基于元素本身的颜色。
- 使用
::after
伪元素,设置position: absolute
,width
和height
都等于100%
,以填充父元素中的可用空间。 - 使用
background: inherit
来继承父元素的background
。 - 使用
top
轻微偏移伪元素,使用filter: blur()
创建阴影,使用opacity
使其半透明。 - 在父元素上使用
z-index: 1
,在伪元素上使用z-index: -1
,将其定位在父元素的后面。
<div class="dynamic-shadow"></div>
.dynamic-shadow {
position: relative;
width: 10rem;
height: 10rem;
background: linear-gradient(75deg, #6d78ff, #00ffb8);
z-index: 1;
}
.dynamic-shadow::after {
content: '';
width: 100%;
height: 100%;
position: absolute;
background: inherit;
top: 0.5rem;
filter: blur(0.4rem);
opacity: 0.7;
z-index: -1;
}