• 如何实现网站首页变为黑白色?


    某些时候,网站会根据要求将页面调成黑白色,一开始我还以为是将连夜把图片和文字都搞成黑白色,但是转念一想,像推送产品的京东、淘宝,以及展示up内容的B站、CSDN等,刷新之后可能展示的内容均不同,作为一个前端程序猿,瞬间引起了我的好奇,那么他们是如何做到的呢?

     

    首先看一下CSDN?

    看了下CSDN页面的源代码,发现有如下样式设置:

    1. html {
    2. -webkit-filter: grayscale(100%); /* webkit */
    3. -moz-filter: grayscale(100%); /*firefox*/
    4. -ms-filter: grayscale(100%); /*ie9*/
    5. -o-filter: grayscale(100%); /*opera*/
    6. filter: grayscale(100%);
    7. filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
    8. }
    9. body{
    10. filter:gray; /*ie9- */
    11. background : none!important;
    12. }

     查阅了下MDN上关于css的filter属性,

    filter属性可以将模糊或颜色偏移等图形效果应用于元素,可以用于调整图像、背景和边框样式

    The filter CSS property applies graphical effects like blur or color shift to an element. Filters are commonly used to adjust the rendering of images, backgrounds, and borders.

    其中grayscale函数就被用来改变图像灰度,参数值可以是0-100%或0-1,值为1或100%表示完全转换为灰度图像;若未设置值,默认为0

    filter: grayscale(50%); // 将灰度值设置为50%

     看来CSDN程序员们是将灰度值调成了100%,从而实现了完全黑白的效果;

    再来看一下B站?

    查看源代码发现,B站的根元素上定义了gray类,也定义了样式filter属性的grayscale灰度值为0.85:

    将灰度值改掉后,发现轮播图还是黑白色,点击轮播图图片发现是把这四张轮播图换成了黑白色图片进行展播;

     再来看看淘宝和京东?

    也是简单粗暴的直接定义了100%的灰度值(对于轮播图的处理没做特殊处理);

     京东也是同样的处理:

    通过以上各大网页的展示,我们可以得出结论,通过设置

                                    filter: grayscale()

    可以将首页变为黑白色,而不用费劲的将每个元素一一修改成黑白色~

    补充下filter属性的其它用途:

    filter: blur(20px);  //  为图像设置高斯模糊,默认为0,值越大越模糊

    filter: brightness(2); // 为图像设置线性乘法器,使其明亮,默认1,值为0表示全黑,值大于1提供更明亮的效果

    filter: contrast(200%);  //  设置图像的对比度,默认是1,值为0表示全黑,值超过100%表示更低的对比

    filter: drop-shadow(offset-x offset-y blur-radius color); // 前两个参数必选

    filter: drop-shadow(16px 16px 20px yellow); // 为图像设置阴影效果,设置值与box-shadow属性相似

    filter: hue-rotate(90deg); // 为图像设置色相旋转,默认为0deg,超过360deg默认绕一圈回到初始; 

     filter: invert(1);  // 反转图像,默认为0,值为100%表示完全反转

    filter: opacity(25%);  //  设置图像的透明程度,默认为1,值为0表示完全透明

    filter: saturate(30%); // 设置图像饱和度,默认为1,值为0表示完全不饱和,超过1表示更高的饱和度 

     filter: sepia(100%); //  将图片转换为棕褐色,默认为0,为1表示完全是深褐色 

    当然也可以使用任意的组合完成想要的效果:

    filter: contrast(175%) brightness(103%) // 设置图片的对比度为1.75、明亮度设置为1.03

  • 相关阅读:
    Seq2Seq底层代码
    NAS HomeAssistant
    (最新方法)最简单小鹅通视频下载分析及小白工具下载实现
    使用mac自带VNC公网远程控制macOS
    【uniapp】使用canvas组件编译到微信小程序兼容出错问题
    高校教材征订系统(Java+Web+MySQL)
    【RegNet】《Designing Network Design Spaces》
    EPDM和钉钉集成审批工作—移动端直接处理审批节点,高效协同!
    mybatis之动态SQL
    事务的隔离级别与MVCC
  • 原文地址:https://blog.csdn.net/ks795820/article/details/128142842