首页 > 代码库 > 完美解决png8毛边问题
完美解决png8毛边问题
以前做pc端时PNG8图片在ie6下的解决方案是这么做的:
将PNG保存为PNG24的,然后在项目中加上DD_belatedPNG.js这样的库,这样png24在ie6中的白色底就透明了。此方法看上去相当的完美,因为第一方便后期的图片的维护,一个js库就轻轻松松搞定了!为我们这群前段妹子省了不少心哈 O(∩_∩)O!第二,可谓是为服务器也减少了不少负担。
但是不幸的事发生了,就在本周做微信智慧生活的活动页时可真叫纠结。DD_belatedPNG.js跟框架的js冲突了(具体什么原因没去查,因为时间实在太紧迫了,估计是框架不太完美),首先介绍下此次活动页面的框架,全屏滑动(支持鼠标滚动切换),页面内容到也简单,毕竟只是个活动页嘛(*^__^*) …… 有兴趣的小伙伴欢迎点击(http://action.weixin.qq.com/payact/readtemplate?t=pc/2015/wisdom_life/index_tmpl)
好了,回到正题,在此项目中添加DD_belatedPNG.js后,png24在ie6中不仅没有呈现透明效果,还影响了部分绝对定位,这就太伤心了(;′⌒`) ,为了能够在预估的时间内上线,所以当时就没太纠结了,因为也没啥好纠结的,引用大婶的库,难免存在冲突。最后在导师的指点下,还是决定ie6的用png8的图片,其余浏览器用png24位的。
问题又来了…… 之前png8多半是会有毛边的,所以个人很是不喜欢。但是在导师的指点下还真没有了呢,效果基本跟其他浏览器一致。这种方法也是非常简单的,就是在保存的web格式的时候选择png8,将杂边填充个接近背景色(或是背景色)的即可,然后到样式中对其做出相应的补丁即可,这个方法真的是太完美了,几乎找不到瑕疵!上张在ie6中的效果吧O(∩_∩)O哈哈~
ie6中效果
Chrome效果
说到这里,顺便说说这次遇到的另一问题吧,以前没太注意。一般情况,拿到一个项目时我们会先跟产品、设计那边沟通,完了才会是我们的工作,什么分析设计稿啊,搭建框架啊……等等,搭建框架的时候会对页面所要用到的标签进行初始化,那么对于这种标题类的,h1、h2、h3、h4、h5、h6,虽然已经对其初始化了,但是本身还是有个类似于padding、margin的高度,这是用padding、margin是没办法消除掉的,也知道本次项目中才知道有个方法可以解决此类问题,真是解决了困扰已久的大麻烦哈~也怪自己平时看的书少,到现在才知道,这个强有力的武器就是将line-height设置为1就OK了,写法是这样的line-height: 1;px都省了,~\(≧▽≦)/~
完美解决png8毛边问题