问题
- 背景模糊,不模糊文本
效果图
t1
t2
t3
实现思路
- 自定义css变量存储图片地址,方便后期更改
- 使用伪元素实现背景模糊达到不遮挡主体文本
transform: scale(1.5)
吧图片放大1.5倍,避免设置背景模糊出现白边。overflow: hidden
超出隐藏,避免背景放大出现白边、撑出滚动条。background-position: 50%
背景中间为起始位置background-size: cover
取背景中间- 使用
filter: blur(20px) brightness(50%)
模糊背景+降低背景亮度- blur(20px) 模糊20px
- brightness(50%) 亮度降低50% ,如果不降低亮度,会导致太亮而影响主体文字,如下图
- 降低亮度效果图
代码实现
html
<div class="music-box" style="width: 300px; height: 600px"></div>
<style>
:root {
/* 自定义变量 */
--music-bg: url("/testImg/photo0000-1246.jpg");
}
.music-box {
position: relative;
}
.music-box::before {
content: "";
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
overflow: hidden;
filter: blur(20px) brightness(50%);
background-size: cover;
/* 使用自定义变量 --music-bg*/
background-image: var(--music-bg);
background-position: 50%;
transform: scale(1.5);
}
</style>
更改图片地址
js
document.body.style.setProperty('--music-bg', `url(/myimg.jpeg)`)