简单实现毛玻璃效果

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、效果

 

posted @ 2021-10-21 18:08  Pavetr  阅读(420)  评论(0)    收藏  举报