• 前端开发之20110810日之iebug


      1.png图片设了padding后,图片往padding方向填充容器.

     我之前在编写代码的时候都是在ff里弄的,"8月50洲..."字样是一张图,而那个人物等图像是背景图.设了"8月50洲.."图片的padding-top后在ff下显示正常,

      可是,在做浏览器兼容性测试的时候在ie里看到的又不是那么回事了(ie6,ie7下显示不正常,ie8则和在ff里显示得一样),看下面的图,"8月50洲.."图片竟然按照padding多少填充了.比如,图片height=100px,设了padding-top:30px后,图片的高度自动填充为100+30了.


       解决:a.改成按margin来就好了;
          b.把滤镜的sizingmethod改为'crop',这样就不会自动填充了,图片的高度=100px,现在还是100px,但是padding属性却不起作用了,把padding改为margin就行了.
      2.直接对img设padding不行.把img图片放到一个div容器里,对div容器设paddiing就行了.

    注意,感谢园友“ 编程、为你执着-努力”的提问,我知道了原来我对img设padding无效,和我所用的一个js文件有关,且是针对*.png图片,不是ie6本来的bug,而是那个js文件的bug,我那个js就是网上很流行的correctPNG.js,原理是给遍历*.png图片,给它们加滤镜。

    把代码贴出来,希望和我一样这个js的园友们能看到这个解决方案。

      

    function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6. 
    { 
        var arVersion = navigator.appVersion.split("MSIE") 
        var version = parseFloat(arVersion[1]) 
        if ((version >= 5.5) && (document.body.filters)) 
        { 
           for(var j=0; j<document.images.length; j++) 
           { 
              var img = document.images[j] 
              var imgName = img.src.toUpperCase() 
              if (imgName.substring(imgName.length-3, imgName.length) == "PNG") 
              { 
                 var imgID = (img.id) ? "id='" + img.id + "' " : "" 
                 var imgClass = (img.className) ? "class='" + img.className + "' " : "" 
                 var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' " 
                 var imgStyle = "display:inline-block;" + img.style.cssText 
                 if (img.align == "left") imgStyle = "float:left;" + imgStyle 
                 if (img.align == "right") imgStyle = "float:right;" + imgStyle 
                 if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle 
                 var strNewHTML = "<span " + imgID + imgClass + imgTitle 
                 + " style=\"" + "" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";" 
                 + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader" 
                 + "(src=\'" + img.src + "\', sizingMethod='crop');\"></span>" 
                 img.outerHTML = strNewHTML 
                 j = j-1 
              } 
           } 
        }     
    } 
    window.attachEvent("onload", correctPNG); 

    第二个问题是另一种解决方法是,引入js时加入条件注释,

      

    <!--[if lt IE 7]> 
    <script type="text/javascript" src="js/correctPNG.js"></script>
    <![endif]--> 
    

  • 相关阅读:
    从客户端(Content="<p>666</p>")中检测到有潜在危险的 Request.Form 值。
    VS插件集
    Carmack在QUAKE3中使用的计算平方根的函数
    自动匹配HTTP请求中对应实体参数名的数据(性能不是最优)
    webapi单元测试时出现的ConfigurationManager.ConnectionStrings为空错误
    @@IDENTITY在加触发器时返回错误的ID值
    Protobuf完整实例
    Apache配置多个监听端口和不同的网站目录的简单方法[转]
    ThinkPHP 小技巧
    复选框 ajax取得后台页面
  • 原文地址:https://www.cnblogs.com/lanyueer/p/2133887.html
Copyright © 2020-2023  润新知