问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

css修改png图片颜色

发布网友 发布时间:2022-04-29 16:01

我来回答

2个回答

懂视网 时间:2022-05-13 19:39

这篇文章发布于 2016年06月8日,星期三,01:17,归类于css相关。 阅读 3 次, 今日 2 次

byzhangxinxu from http://www.zhangxinxu.com

本文地址: http://www.zhangxinxu.com/wordpress/?p=5429

一、眼见为实

CSS可以修改图片的颜色,没错,可以,眼见为实!您可以狠狠地点击这里:png小图标CSS赋色demo

上面的不是很黑的是原始图标,是个PNG图片,下面这个是可以赋色的:

下面,我们随意选择一个颜色,例如紫色,然后:

是不是感觉很厉害!以后设计师就不需要在提供几套颜色的图片了。

SVG, icon fonts等技术似乎也不是那么耀眼了。

二、原理其实很简单

原理其实很简单,使用了CSS3滤镜 filter 中的 drop-shadow , drop-shadow 滤镜可以给元素或图片非透明区域添加投影。

如果对 drop-shadow 不是很了解,建议先看看前些时间写的“ CSS3 filter:drop-shadow滤镜与box-shadow区别应用 ”一文!

对于背景透明的png小图标而言,如果我们施加一个不带模糊的投影,不就等同于生成了另外一个颜色的小图标了吗?

然后,我们把原始图标隐藏在容器外面,投影图标在容器中间,不见给人感觉是赋色效果了?

比方说本文的demo,如果把icon父级的的 overflow:hidden 去掉,原始的图标就暴露出来啦!

三、实现的时候实际有难度

原理如上面,我一开始实现的时候,以为很简单,因为分分钟可以实现自己的想法,后来发现有些天真了,Chrome浏览器怎么都显示不出来;FireFox浏览器却可以!咦,究竟发生了什么。

在Chrome浏览器下, drop-shadow 有一个如下的呈现特性:

在Chrome浏览器下,如果一个元素的主体部分,无论以何种方式,只要在页面中不可见,其drop-shadow是不可见的;实体部分哪怕有1像素可见,则drop-shadow完全可见。

所以,我试过:

  • text-indent负值隐藏原始图,无投影,失败!
  • clip剪裁隐藏,无投影,失败!
  • margin负值隐藏原始图,无投影,失败!
  • left负值隐藏原始图,无投影,失败!
  • 通通不行,实现遇到了巨大的阻碍。

    后来,灵光一现,如果我实体部分也在可视区域内,但是是透明的,会怎样呢(反正不会有投影出来)?

    于是,我就试了下曾经立下无数战功的透明边框,卧槽,又立功了,成了!

    因此,下面这一个CSS声明是千万不能少的:

    border-right: 20px solid transparent;

    四、关于兼容性

    IE13+支持,Chrome和FireFox浏览器支持,移动端iOS支持,Android4.4+支持。也就是,基本上,移动端现在可以使用这种技术了。

    既节约了流量,也让我们的开发更简单,维护更方便了。

    五、结语碎碎念

    其实,本文的技术发明(主要是透明border的处理)在“ drop-shadow vs box-shaow ”这篇文章完成后就研究出来了。本来想写个小专利,蹭点早饭钱。结果,新厂子写专利没费用,而且周期要3年。

    3年我儿子都可以打酱油了。所以,罢了,直接分享出来。

    今天8号,本月已经6篇文章了,写文章暴走了下。就是为了腾出大段且连续的业余时间,要秘密进行其他大项目。

    时光机

    如果你是3~5年之后看到此文,而且你是2016年上大学的,那么,我在写这篇文章的时候,你可能正在翻来覆去睡不着,还在焦虑明天的考试。总之,不要担心,我给大家找了一个非常硬的后台,保证你们这次高考无忧,放心睡觉吧!哟,你在好奇是哪个后台。嘻嘻嘻嘻,说出来怕吓着你————观音菩萨!

    本文为原创文章,包含脚本行为,会经常更新知识点以及修正一些错误,因此转载请保留原出处,方便溯源,避免陈旧错误知识的误导,同时有更好的阅读体验。

    本文地址: http://www.zhangxinxu.com/wordpress/?p=5429

    (本篇完)

    热心网友 时间:2022-05-13 16:47

    CSS滤镜(filter)属提供的图形特效,像模糊,锐化或元素变色。过滤器通常被用于调整图片,背景和边界的渲染。 MDN

    CSS标准里包含了一些已实现预定义效果的函数。

    filter: none
    | blur()
    | brightness()
    | contrast()
    | drop-shadow()
    | grayscale()
    | hue-rotate()
    | invert()
    | opacity()
    | saturate()
    | sepia()
    | url();
    具体请看原文
    ————————————————
    版权声明:本文为CSDN博主「nanhupatar」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/nanhupatar/article/details/82793637
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    东北人眼中的南方人? 酒店管理研究生就业很难吗 在美国学酒店管理的就业前景 怎么样 美国酒店管理研究生的就业前景怎么样? 流放者柯南克立尔城堡在哪 克立尔的堡垒怎么进入 《刺客信条》兄弟会全版修改哪里有? 跪求 我的猫用直流12V直接供电 现在烧毁 打开电源现在无反应 应该是... 感情爱上你一生不放弃,是什么歌曲名字里的歌词 起亚嘉华商务车天一热空调就不工作 AE导入PNG格式的文字文件以后该文件的特效应该怎么编辑?比如说我做的时候扫光效果就*在图片大小范围内 ae如何给png图片加重影? 爱剪辑特效的png怎么才能打开? 特斯拉检测不到钥匙,无法启动怎么办? 不动产备案是什么意思 梦到前婆婆跟我说没有鞋子穿了!叫我给她买? 梦到前婆婆公公都来我店里了,还烧饭,对我也好? 微信西安一码通怎么改身份证 西安一码通显示的名字不是自己的名字身份证是自己的身份证号码该怎么办_百度问一问 出差到西安,一码通怎么弄? 离婚后每年春节前都梦到已去逝很多年的婆婆怎么回事? 西安一码通怎样看电子驾照 离婚一年多。最近天天晚上噩梦梦到前婆婆,和女儿。这是怎麼啦?该怎麼办? 小米3桌面文件夹怎么才能加密? 部队医院的行政人员是事业编制吗 还是非现役文职? 小米3怎样给桌面上的那个文件夹设置密码? 什么是体系医院?指部队的医院? 中国融通军产集团公司招人需要什么学历 在部队医院工作怎样? 小米2的桌面创建的文件夹能加密吗 为什么在我电脑上PNG图片是透明,在另一台电脑上却不是透明的?_百度知 ... 图片特效,鼠标悬停清晰,离开模糊 怎么转换控制点坐标到奥维地图上显示,就是把控制点坐标转换成kml格式 怎么打领带能好看点? 领带哪个打法好看些? 怎样打领带又帅气又好看呢? 小领带怎么打最好看? 怎样打领带才好看? 9000e处理器和9000处理器有什么区别 这9000E比9000区别差多少?假如9000是百分百,9000E是百分几? 如何鉴别面粉的优劣? LOL游戏里怎样看队友的符文,天赋? 面粉的品质鉴别主要是依据 lol在哪看上一把带的什么天赋? lol游戏中时怎么看对方带的什么符文和天赋 LOL怎么看别人的符文天赋 在lol游戏中按哪个键可以看对面英雄点的什么天赋 lol怎么看其他玩家符文? 如何鉴别面粉的质量?是越白越好吗? tgp英雄联盟怎么查询天赋符文