CSS:用backdrop-filter属性给元素背景添加滤镜

296 阅读1分钟

backdrop-filter用法跟filter差不多,不同的是backdrop-filter只会对元素的背景起作用,不会影响元素本身。

<html lang="en">
    <head>
        <title>背景模糊效果</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <style>
            * , *::before, *::after {
                margin: 0;
                padding: 0;
            }
            body {
                width: 100vw;
                height: 100vh;
                background: url(../img/bg.jpg) no-repeat fixed;
                background-size: cover;
                overflow: hidden;
            }
            .mask {
                position: fixed;
                right: 0;
                top: 0;
                width: 100%;
                height: 100%;
                border-left: 5px solid #666;
                background-color:  rgba(0,0,0, 0.2);
                backdrop-filter: grayscale(1);
                transition: 2s;
            }
            body:hover .mask {
                width: 0;
            }
        </style>
    </head>
    <body>
        <div class="mask"></div>
    </body>
</html>

Image.png