简单实现毛玻璃效果
1、思路
首先介绍一下css里的filter(滤镜)属性,filter 属性定义了元素(通常是<img>)的可视效果(例如:模糊与饱和度)。
就是这个属性来形成我们的毛玻璃,简单来说就是一个div形成页面的大图,div里面的再嵌一个div来放文案或者表单等内容,再用伪类设置filter属性形成毛玻璃背景
有个要注意的点是z-index层级关系
2、实现
html
<div class="login"> <div class="login-box"> <el-form ref="form" :model="form" label-width="40px"> <el-form-item label="账号"> <el-input v-model="form.account"></el-input> </el-form-item> <el-form-item label="密码"> <el-input v-model="form.password"></el-input> </el-form-item> </el-form> <el-button class="btn" type="primary" @click="onSubmit">登录</el-button> </div> </div>
css 这里用到了sass
.login { width: 100%; height: 100%; background: url('../assets/image/bg.jpeg') 100% 100% no-repeat fixed; position: relative; z-index: 0; .login-box { width: 30%; height: 50%; min-width: 300px; position: absolute; left:35%; top: 25%; overflow: hidden; color: #fff; padding: 20px; display: flex; justify-content: center; align-items: center; flex-direction: column; .btn { width: 242px; } &::before { z-index: -1; content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: url('../assets/image/bg.jpeg') 100% 100% no-repeat fixed; filter: blur(3px) contrast(0.8); } } } ::v-deep .el-form-item__label { color: #fff; }
3、效果