立即注册  找回密码
 立即注册
CeraNetworksBGVM服务器主机交流会员请立即修改密码Sharktech防护
查看: 109|回复: 7

实现png图片和png背景透明的代码(支持多浏览器)

[复制链接]

实现png图片和png背景透明的代码(支持多浏览器)

[复制链接]

81

主题

325

回帖

1664

积分

金牌会员

积分
1664
yrdesign

81

主题

325

回帖

1664

积分

金牌会员

积分
1664
2011-4-2 20:30:42 | 显示全部楼层 |阅读模式
Firefox和Opera对PNG的支持非常的好,都是IE却无视PNG图片这一特性的“存在”,虽然IE7已经支持都是IE6还是不行。虽然有让IE6支持PNG透明背景的JS程序,都是不是很方便,还是用CSS来实现的好。使用到的就是:IE5.5+的AlphaImageLoader滤镜。
1.png背景透明 解决办法
#div1 {
   height: 600px;
   width: 260px;
   padding: 20px;
   background-repeat: repeat;
   }

html>body #div1 {
   background-repeat: repeat;background-image: url(bj1.png);
}
* #div1 {filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src="bj1.png")
}

附加:IE才识别的通配符(*),来定义IE浏览器中的滤镜

         Firefox、Opera等完全支持PNG透明图片的浏览器也支持子选择器(>)

语法:

filter : progid:DXImageTransform.Microsoft.AlphaImageLoader ( enabled=bEnabled , sizingMethod=sSize , src=sURL )
属性:
enabled : 可选项。布尔值(Boolean)。设置或检索滤镜是否激活。true | false
      true : 默认值。滤镜激活。
      false : 滤镜被禁止。


sizingMethod : 可选项。字符串(String)。设置或检索滤镜作用的对象的图片在对象容器边界内的显示方式。 crop : 剪切图片以适应对象

尺寸。
        image : 默认值。增大或减小对象的尺寸边界以适应图片的尺寸。
        scale : 缩放图片以适应对象的尺寸边界。
        src : 必选项。字符串(String)。使用绝对或相对 url 地址指定背景图像。假如忽略此参数,滤镜将不会作用。



2.png图片透明

如果在网页中直接插入png图片想使其透明只需加入以下js代码,整个页面内的所有直接插入的png图片都可以实现透明方法


另外,顺便说一下从PS输出保存PNG-8和PNG24有什么不同ie6并不是不支持png,它支持索引颜色的PNG-8,而是不支持RGB颜色的PNG-24。
ie6里的PNG-24图片做背景主要有以下几个问题:
一、ie6里png背景透明问题:解决办法用滤镜。这个一般高手们都知道。

[color=]注意:
src 这个路径是指加载滤镜的页面相对于图片的路径,而不是css文件相对于图片的路径。这跟一般的图片加载有区别。
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=”图片名称”);
_ background-image: none;
二、ie6里png背景做循环问题:用一个2px*2px的半透明图片做背景循环。解决办法加“sizingMethod=scale”。
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale, src=”图片名称”);
_ background-image: none;
三、ie6里不做循环的大png图片背景会出现区块被剪切,网站版面一片混乱,文字消失问题:解决办法加sizingMethod=crop。
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop,src=”图片名称”)
_ background-image: none;
四、ie6里png背景下的的连接失效:解决办法给a元素添加样式position:relative;
五、ie7里png背景下的div下的dl  dt dd ul li 等有float浮动时,连接文字在鼠标滑过出现一条背景消失的问题。解决办法是给包含dl  dt dd ul li的div大盒子加上一个高度或最小高度。
min-height:50px; 因为ie6下没有这个问题,min-height:又是ie6不支持的,ie7和FF支持,而div要随着文字而伸长,所以我就采用了min-height:。
六、最后关于png背景定位的问题。 我实在没想出来用解决的办法,我加了“sizingMethod=scale”。让它在ie6里放大去吧,虽然效果上没有FF好,但是总比贴着最左边看起来舒服。


[ 本帖最后由 yrdesign 于 2011-4-2 20:31 编辑 ]
回复

使用道具 举报

35

主题

136

回帖

415

积分

中级会员

积分
415
daigouadmin

35

主题

136

回帖

415

积分

中级会员

积分
415
2011-4-2 20:39:06 | 显示全部楼层
技术帖,还是抛弃IE6吧
回复

使用道具 举报

13

主题

363

回帖

1233

积分

金牌会员

积分
1233
moto72

13

主题

363

回帖

1233

积分

金牌会员

积分
1233
2011-4-2 23:20:05 | 显示全部楼层
求LZ 给我设计个logo
回复

使用道具 举报

81

主题

325

回帖

1664

积分

金牌会员

积分
1664
yrdesign 楼主

81

主题

325

回帖

1664

积分

金牌会员

积分
1664
2011-4-2 23:41:42 | 显示全部楼层
原帖由 moto72 于 2011-4-2 23:20 发表


求LZ 给我设计个logo

你是?
哈哈
免费?
回复

使用道具 举报

37

主题

110

回帖

461

积分

中级会员

积分
461
bon290017

37

主题

110

回帖

461

积分

中级会员

积分
461
2011-4-3 00:21:13 | 显示全部楼层
原帖由 yrdesign 于 2011-4-2 23:41 发表



你是?
哈哈
免费?


你設計LOGO價碼大約在?
回复

使用道具 举报

81

主题

325

回帖

1664

积分

金牌会员

积分
1664
yrdesign 楼主

81

主题

325

回帖

1664

积分

金牌会员

积分
1664
2011-4-3 00:27:11 | 显示全部楼层
原帖由 bon290017 于 2011-4-3 00:21 发表




你設計LOGO價碼大約在?

看情况了~~
回复

使用道具 举报

24

主题

167

回帖

444

积分

中级会员

积分
444
xtmp

24

主题

167

回帖

444

积分

中级会员

积分
444
2011-4-3 09:48:43 | 显示全部楼层
费这么大劲,做png的时候直接设置成png-8就可以了
回复

使用道具 举报

81

主题

325

回帖

1664

积分

金牌会员

积分
1664
yrdesign 楼主

81

主题

325

回帖

1664

积分

金牌会员

积分
1664
2011-4-3 16:01:35 | 显示全部楼层
原帖由 xtmp 于 2011-4-3 09:48 发表


费这么大劲,做png的时候直接设置成png-8就可以了

直接质量上就。。。。。。。。。。。。。。。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|HS2V主机综合交流论坛

GMT+8, 2025-3-11 04:14 , Processed in 0.022129 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表