综合

网页重构时在IE6中遇到png兼容性

网友投稿 2023-07-03 23:13:42

为满足用户的视觉追求及产品的背景图片的换肤功能,设计师难免在设计上会用到半透明的效果。因此页面重构师基于视觉及产品的需要,采用了PNG32的半透明图片还原设计稿。
为满足用户的视觉追求及产品的背景图片的换肤功能,设计师难免在设计上会用到半透明的效果。因此页面重构师基于视觉及产品的需要,采用了PNG32的半透明图片还原设计稿。本文是网页教学www.jb51.net收集整理或者原创内容,转载请注明出处!
但在IE6中遇到png兼容性,及其延伸的种种问题。如: png32的图片上在IE6有兼容性问题,原本的透明显示的背景将会失效。 在问题1的基础上,针对IE6采用了CSS滤镜让其透明,但图片不能应用背景坐标定位的方式只能单张使用,这做法不利于带宽流量和请求链接数之余也不利样式的管理 在问题2的基础上,意味着要把png图片单张切割,并单张应用CSS滤镜
针对以上问题重构师的解决办法如下:
把背景图片如常的合并,利用相似于背景坐标的方式调用局部图片位置。最大区别在于分别定义了两个无意义的标签。 一个标签作为模拟背景的载体标签:定义一个作为载体的标签,针对IE6以滤镜的形式导入图片,宽高与背景一致。 另一个标签作为截取背景局部位置的截取标签:定义此标签宽高与预想调用背景局部位置大小一致,并隐藏其溢出的部份。 最后计算出预想调用背景局部位置的坐标,定义在载体标签中。
HTML结构如下:
<div title="载体">
<div title="截取"></div>
</div>
为了清晰的体现HTML结构,给标签添加了title属性,加以说明。
实现步骤(分3步): 载体标签:定义一个作为载体的标签,针对IE6以滤镜的形式导入图片,宽高与背景一致。
(注意:滤镜图片路径相对于页面,而不是CSS的位置)
<div title="载体" style="width:440px;height:440px; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='bg.png');"></div> 截取标签:定义此标签宽高与预想调用背景局部位置大小一致,并隐藏其溢出的部份。
<div title="截取" style=" overflow:hidden; width:120px; height:120px;"></div>

最后计算出预想调用背景局部位置的坐标,定义在载体标签中。
(背景局部位置坐标的调整可用margin或position控制。下面以”I”为例)
margin
<div title="载体" style="margin:-80px 0 0 -120px;width:440px;height:440px; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='bg.png');"></div>
position
<div title="载体" style="position:absloute;top:-80px;left:120px;width:440px;height:440px; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='bg.png');"></div>

完成后的代码
<div title="截取" style="width:120px;height:120px;overflow:hidden;">
<div title="载体" style="margin:-80px 0 0 -140px;width:440px;height:440px; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='bg.png');"></div></div>
在FF与IE7等浏览器处理方式与IE6一致,在这问题曾经做过考虑是真的要为了IE6而IE6吗?因为其它高版本浏览器都支持png32以上图片,大可用正常的方式导入背景及调用坐标。但考虑到最终目的及其可维护性,因而不去做高版本浏览器的常规处理方式。

相关文章

  • 淘宝省钱卡怎么取消自动续费
  • 什么叫贸易顺差
  • 怎样在淘宝上买东西
  • 第一产业第二产业第三产业是什么
  • 微信贷款申请条件
  • 什么是标普道琼斯指数
  • 问答:电脑开机蓝屏代码0x000000ED怎么解决
  • s股是什么股票
  • 借呗逾期会怎么样?
  • 汽车空调漏氟的原因在哪里