视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
使用css解决png透明图片在ie6正常显示的方法
2020-11-27 18:52:09 责编:小采
文档


很久没写CSS了,遇到一个png透明logo折腾了我很久,也怪以前的页面直接不考虑透明的问题。在网上找到几种办法,有用css实现的,有些是用js实现,用js感觉大材小用了,能用纯css解决就css吧,这里感谢蓝莓公主的帮助。以下的两种方法都是尝试过可行的,不过在我的虚拟机下的ie6图片完全透明了,不知道是不是我虚拟机的问题。
先将图片存为 PNG-24 透明格式。
(图片要绝对路径)
方法一:用png图作背景
要注意hack
html代码
<div class="logo"><a href="/">logo</a></div>
css代码
.logo { width: 338px; height: 57px; float: left; url( /images/logo.png) 0px 0px no-repeat!important; text-indent: -1000px; _background-image: none; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'#\'" /images/logo.png', senabled='true', sizingMethod='scale'); }

标准:_background-image: none; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'#\'" /templets/dyimgs/wymrs/images/logo.png', enabled='bEnabled', sizingMethod='image');


方法二:插入png图片,定义img
这个方法要准备一完全透明的图片transparent.gif,大小随意。
html代码
<div class="logo"><a href="/"><img src=\'#\'" /images/logo.png" alt="logo" /></a></div>
css代码
.logo { width: 338px; height: 57px; float: left; }
.logo img { width: 338px; height: 57px; }
/* png 透明 兼容 ie6 */
.logo img {
azimuth: expression(
this.pngSet ? this.pngSet = true:(this.nodeName == "IMG" && "http://blog.51cto.com/viewpic.php?refimg=" + this.src.toLowerCase().indexOf('.png')>-1 ? (this.runtimeStyle.backgroundImage = "none",
this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'#\'" //qianduangcs.blog.51cto.com/2624849/" + "http://blog.51cto.com/viewpic.php?refimg=" + this.src + "', sizingMethod='image')",
"http://blog.51cto.com/viewpic.php?refimg=" + this.src=\'#\'" /images/transparent.gif"):(this.origBg = this.origBg? this.origBg :this.currentStyle.backgroundImage.toString().replace('url("','').replace('")',''),
this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'#\'" //qianduangcs.blog.51cto.com/2624849/" + this.origBg + "', sizingMethod='crop')",
this.runtimeStyle.backgroundImage = "none")),this.pngSet=true
);
}

有时候超链接加了这个透明滤镜,然后页面上所有超级连接 <a href=""> </a>全点不到了 ,解决办法是:

给a加上position:relative;

不过这里要提醒你,你这里的image路径是相对路径,那么值得注意的是,这个相对路径是根据html相对的,而不是CSS。

下载本文
显示全文
专题