css3 实现png图片改变背景颜色
实际上是用的是就是css的filter的drop-shadow属性
drop-shadow:
1 不支持内阴影
2 不支持多阴影
3 兼容性 ie13+ 谷歌 火狐 android4.4+ ios
4 实现的是正真意义上的投影。对于非透明的部分都会有投影,表现形式与box-shdow不一样,透明的部分不会有阴影,包括png格式的图片的透明部分
demo1修改png图片的颜色:
html
<div class="demo1">
<div class="del"></div>
</div>
css
.demo1 {
width: 16px;
height: 16px;
overflow: hidden;
margin: 50px auto;
}
.demo1 .del{
width: 16px;
height: 16px;
position: relative;
background: url("images/delete.png") no-repeat center;
}
.demo1 .del:hover{
left:-16px;
border-right:16px solid transparent;
-webkit-filter:drop-shadow(16px 0 0px red);
filter:drop-shadow( 16px 0 0px red);
}
filter:drop-shado(x偏移 y偏移 r模糊半径 color投影的颜色);
1 “改变颜色”时设置left:-16px:使原来的背景颜色,向左移动16px(背景图片的宽度是16px,元素的宽度也是16px);
2 父元素overflow:hidden;就隐藏了,这是del被完全隐藏,
3 为了显示投影(根据投影在透明部分没有投影)设置border-right:16px solid transparent;(增加del的表现宽度),下面就只剩下改变图片的颜色了,根据drop-shadow
4 设置投影filter:drop-shadow( 0px 0 0px red); 这时候的投影在del背景图片的下方,因为背景图左移动16px,所以看不到,这是设置x轴偏移16px,刚好的2 中设置的border-right上,这样就实现css改变png图片的颜色了
demo2:实现带有三角的box的投影 三角的实现方法:为了兼容都是用border写的,使用box-shadow(盒阴影)如果实现三角也带阴影,就需要在父元素和三角上都设置box-shadow就会出现阴影重叠,效果不是很好
这里就可以使用drop-shadow实现
html
<div class="demo">
<div class="angle"></div>
</div>
css
.demo {
width: 300px;
height: 100px;
background-color: #fff;
margin: 100px auto;
/*-webkit-box-shadow: 0px 0px 10px #000;
-moz-box-shadow: 0px 0px 10px #000;
box-shadow: 0px 0px 10px #000;*/
filter: drop-shadow(5px 5px 10px #000);
}
.angle {
position: absolute;
margin-left: -20px;
margin-top: 30px;
width:;
height:;
border-right: 20px solid #fff;
border-top: 20px solid transparent;
border-bottom: 20px solid transparent;
}
效果图:

css3 实现png图片改变背景颜色的更多相关文章
- [JS9] document's bgColor改变背景颜色
<HTML> <HEAD> <TITLE>设置背景颜色</TITLE> </HEAD> <BODY> <CENTER> ...
- OpenGL的glClearColor和glClear改变背景颜色
OpenGL的glClearColor和glClear改变背景颜色 结合以下两个函数void glClearColor(GLclampf red, GLclampf green, GLclamp ...
- iOS 创建多个button实现点击改变背景颜色
工程中需要实现与UISegmentedControl效果相似的一排一共十个button,如下图.但是SegmentedControl修改不太方便,就用button替代, 循环创建十个button,点击 ...
- 设置UINavigation的背景图片和背景颜色
//通过背景图片来设置背景 float systemVersion = [[[UIDevice currentDevice] systemVersion] floatValue]; UIImage * ...
- UITabBar-UITabBarItem图片的背景颜色属性和文字的颜色大小设置
UITabBarItem设置的图片选中状态下默认的是蓝色,如何改变它的颜色为图片自带的颜色呢? typedef NS_ENUM(NSInteger, UIImageRenderingMode) { / ...
- xml中,button改变背景颜色方法
在画几个设置界面,用到了button控件,对于button空间的背景色在不同状态下的颜色改变方法,做了一下尝试,发现了两种背景颜色改变的方法,就总结了下. 方法一尝试了好多遍才好,要点在于,在sele ...
- jquery动态改变背景颜色插件
GETHUB下载地址 背景颜色用animate方法时时无法改变颜色的 所以要使用插件进行补充. 用法: <!DOCTYPE html> <html> <head> ...
- div可以同时设置背景图片和背景颜色吗?
前言 当然可以同时设置 当图片背景色不透明时 情况一:当图片的长.宽 >= div的长.宽时 我们最终看到div背景是图片,之所以说是最终看到,是因为在页面加载时,我们先看到的div背景是颜色, ...
- CSS实例:鼠标滑过超级链接文字时改变背景颜色
先讲简单的: 通过CSS可以设置超链接在不同时刻的颜色: <style> a:link {color: #FF0000} /* 未访问的链接 */ a:visited {color: #0 ...
随机推荐
- mongDB的常用操作总结
目录 常用查询: 查询一条数据 查询子元素集合:image.id gte: 大于等于,lte小于等于... 查询字段不存在的数据not 查询数量: 常用更新 更新第一条数据的一个字段: 更新一条数据的 ...
- Solidworks如何绘制文字
1 新建草图,并点击工具-草图绘制实体,文本 2 在弹出的窗口中输入文字,并设置文字的字体和样式 3 画好之后效果如下图所示 4 使用拉伸或者拉升切除来得到凸面的文字或者凹面的文字. ...
- 【机器学习算法-python实现】协同过滤(cf)的三种方法实现
(转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景 协同过滤(collaborative filtering)是推荐系统经常使用的一种方法.c ...
- 使用RPi-Monitor监控、统计Guitar的运行状态
前言 之前发在ickey社区上的一系列文章: 犹抱琵琶半遮面,无人知是荔枝来--unboxing & interview 一.二.三 葡萄美酒夜光杯,巧妇难为无米炊--资料与社区 一支穿云箭, ...
- mysql 同样内容的字段合并为一条的方法
从两个表中内联取出的数据,当中category_name字段有同样内容,想将具有同样内容的字段进行合并,将amount字段进行加法运算,变成下表中的内容 url=http%3A%2F%2Fdev.my ...
- Access 执行查询时,抛出“标准表达式中数据类型不匹配”的错误
Access根据时间查询时应在查询条件前后加# SELECT COUNT(*) FROM [User] WHERE [CreateTime] > #{0}#
- poj 3105 Expectation 按位统计
题意: 给n,求sum(i^j)/(n^2),0<=i,j<n.n<10^9 分析: 暴力n^2算法肯定超时.这是logn按位统计算法:按位先算出0出现的个数x,则1出现的个数为n- ...
- BFS和DFS记录路径
DFS记录路径的意义好像不大,因为不一定是最短的,但是实现起来却很简单. #include<math.h> #include<stdio.h> #include<queu ...
- 李洪强iOS开发之 - enum与typedef enum的用法
李洪强iOS开发之 - enum与typedef enum的用法 01 - 定义枚举类型 上面我们就在ViewController.h定义了一个枚举类型,枚举类型的值默认是连续的自然数,例如例子中的T ...
- startActivity、 startActivityForResult 、广播的使用
前言 近期忙着跟项目.好久没有写文字了.今天一个群里面的童鞋问到一个关于不同界面间传值的问题,借这个背景,写一段关于" startActivity. startActivityForResu ...