css 虚化背景图

css 虚化背景图

虚化背景样式:

 -webkit-filter: blur(2rpx);
-moz-filter: blur(2rpx);
-o-filter: blur(2rpx);
-ms-filter: blur(2rpx);
filter: blur(2rpx);

示例直接上代码,此示例是基于uniapp项目举例(最近在熟悉uniapp框架,所以直接基于项目写例子)
注: 其中涉及到动态设置背景图知识点可参考另一篇:https://blog.youkuaiyun.com/AI_U20/article/details/89381052 (欢迎指导 (*^__^*) 嘻嘻……)

<template>
	<view class="shop_box">
		<view class="shop_bg_box" :style="{'backgroundImage': 'url(' + shopImg + ')'}">
			<view class="mask"></view>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				shopImg: '../static/image/home/Home_shangxin_banner@2x.png',
			};
		}
	}
</script>

<style lang="scss">
.shop_box {
	.shop_bg_box {
		width: 100vw;
		height: 384rpx;
		background-size: 100% 100%;
		 -webkit-filter: blur(2rpx);
		-moz-filter: blur(2rpx);
		-o-filter: blur(2rpx);
		-ms-filter: blur(2rpx);
		filter: blur(2rpx);
		.mask {
			width: 100%;
			height: 100%;
			background: rgba(45,35,32,1);
			opacity: 0.55;
		}
	}
}
</style>

效果图:

虚化前效果:
在这里插入图片描述
虚化后效果:
在这里插入图片描述
虚化效果加强: 值越大,虚化效果越明显
在这里插入图片描述

使用 CSS 虚化背景图片通常有以下几种方法: #### 方法一:使用伪元素 将要设置虚化背景的地方通过伪元素设置背景颜色或图片,利用区域 `relative` 定位和伪元素 `absolute` 定位,让伪元素的大小完全等于本来区域的大小,然后用 `blur` 滤镜进行虚化处理。示例代码如下: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <style type="text/css"> body .bg { position: relative; width: 100%; height: 100%; overflow: hidden; display: flex; flex-direction: column; justify-content: center; align-items: center; } body .bg::before { z-index: -1; content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: transparent url("../images/commend.jpg") center center no-repeat; background-size: cover; -webkit-filter: blur(15px); -moz-filter: blur(15px); -o-filter: blur(15px); -ms-filter: blur(15px); filter: blur(15px); } </style> </head> <body> <div class="bg"> <!-- 页面内容 --> </div> </body> </html> ``` 这种方法的核心思路是通过伪元素 `::before` 来设置背景图片,然后对其应用 `blur` 滤镜,同时使用 `z-index` 使伪元素位于内容的下方,避免内容被虚化 [^1][^4]。 #### 方法二:添加额外的 div 层 在有背景的 `div` 下面再加一层和它等大的 `div`,给这个 `div` 设置背景图片并应用 `blur` 滤镜。示例代码如下: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> * { padding: 0; margin: 0; } html, body { height: 100%; } .wrapper { height: 100%; width: 100%; position: relative; } .bg-blur { position: absolute; left: 0; right: 0; top: 0; bottom: 0; background-image: url('../../image/login-img/bgimg.jpg'); background-repeat: no-repeat; background-size: 100% 100%; -webkit-filter: blur(15px); -moz-filter: blur(15px); -o-filter: blur(15px); -ms-filter: blur(15px); filter: blur(15px); } </style> </head> <body> <div class="wrapper"> <div class="bg-blur"></div> <!-- 页面内容 --> </div> </body> </html> ``` 此方法通过创建一个绝对定位的 `div` 层,将其放在内容层的下方,并为其设置背景图片和虚化效果 [^2]。 #### 方法三:分离背景和内容 将背景和内容分别放在不同的 `div` 中,对背景 `div` 应用 `blur` 滤镜。示例代码如下: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <style type="text/css"> .login-container { position: relative; width: 100%; height: 100%; display: flex; justify-content: space-around; align-items: center; } .beijing { width: 100%; height: 100%; position: absolute; left: 0px; top: 0px; background: url('../../../static/img/timg (1).jpg'); background-repeat: no-repeat; background-size: cover; -webkit-filter: blur(10px); -moz-filter: blur(10px); -o-filter: blur(10px); -ms-filter: blur(10px); filter: blur(10px); } .content { width: 50%; height: 50%; position: absolute; z-index: 5; } </style> </head> <body> <div class="login-container"> <div class="beijing"></div> <div class="content"> <!-- 页面内容 --> </div> </div> </body> </html> ``` 该方法将背景和内容分别放在不同的 `div` 中,通过设置 `z-index` 确保内容层位于背景层之上,同时对背景层应用虚化效果 [^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值