【CSS】CSS的置灰方法

本文介绍了使用CSS将元素置灰的方法,通过结合`filter`属性的`grayscale()`函数和`opacity`属性来实现。提供了相关代码示例并展示了实际效果。

CSS 置灰方法

css 的代码:

.gray {
           /*grayscale(val):val值越大灰度就越深*/
           -webkit-filter: grayscale(100%);
           -moz-filter: grayscale(100%);
           -o-filter: grayscale(100%);
           filter: grayscale(100%);
           text-align: center;
}

HTMLCSS 结合代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
        .gray {
            /*grayscale(val):val值越大灰度就越深*/
            -webkit-filter: grayscale(100%);
            -moz-filter: grayscale(100%);
            -o-filter: grayscale(100%);
            filter: grayscale(100%);
            text-align: center;
        }
        #gray_img {
            width: 405px;
            height: 630px;
        }
    </style>
    <title>Document</title>
</head>
<body>
<div class="gray">
    <h1>
        我是标题
    </h1>
    <div>
        <img src="https://ss3.baidu.com/-fo3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/8c1001e93901213faeed18c350e736d12e2e95d6.jpg" alt="置灰图片" id="gray_img">
    </div>


</div>
</body>
</html>

效果图:
在这里插入图片描述

使用CSS将元素有多种方法,以下是详细介绍: ### 全局元素 为了将整个HTML页面元素,可在`html`选择器中添加以下代码: ```css html { -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o-filter: grayscale(100%); filter: grayscale(100%); filter: gray; filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); } ``` 此代码利用`filter`属性的`grayscale`函数,将元素颜色转换为度。同时,为了兼容不同浏览器,添加了浏览器前缀。`filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);`则是为了兼容IE浏览器 [^1][^3]。 ### 控制区域 借助`backdrop-filter`能够控制区域,例如只首屏。添加`pointer-events: none;`可保证不影响鼠标事件的交互: ```css html { position: relative; width: 100%; height: 100%; overflow: scroll; } html::before { content: ""; position: absolute; inset: 0; backdrop-filter: grayscale(95%); z-index: 10; } ``` 这里运用`::before`伪元素创建一个覆盖整个页面的遮罩层,通过`backdrop-filter`属性对其进行度处理 [^2]。 ### 使用`mix-blend-mode`属性 ```css html { position: relative; width: 100%; height: 100%; overflow: scroll; background: #fff; } html::before { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, 1); mix-blend-mode: color; pointer-events: none; z-index: 10; } ``` 该方法同样使用`::before`伪元素创建遮罩层,借助`mix-blend-mode`属性的`color`值,将遮罩层与页面内容混合,从而实现效果 [^2]。 ### 利用CSS变量 此方法适用于低版本浏览器,它并非真正把页面元素颜色转换为度,而是通过覆盖半透明背景来模拟度效果: ```html <!DOCTYPE html> <html> <head> <style> .grayscale::before { content: ""; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(255, 255, 255, 0.8); z-index: 9999; pointer-events: none; } </style> </head> <body class="grayscale"> <!-- 页面内容 --> </body> </html> ``` 在`body`元素添加`grayscale`类,通过`::before`伪元素创建一个半透明白色背景覆盖整个页面,以此模拟度效果 [^2]。 ### 对特定类元素 ```css .gray { -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -o-filter: grayscale(100%); filter: grayscale(100%); text-align: center; } ``` 将该类添加到需要的元素上,就能使特定元素 [^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Warolitbos

如果有帮助,请我喝咖啡!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值