图像映射区域周围的不需要的边框

时间:2012-01-27 08:01:36

标签: html css image maps

我正在使用带有圆形区域的图像地图。问题是我在IE7区域周围有一个不需要的边框。此边框不会出现在FF和Chrome以及IE8 / IE9中。

我尝试将border =“0”添加到图像,锚点的css属性,即

a{ 
border:none !important;
outline:none !important;
}

但没有用。

我也尝试添加IE修复onfocus =“blur();”在标签中。这解决了IE中的问题,但现在FF获得了边界。 搜索了很多,并通过此修复程序说它将解决使用IE修复程序时FF的问题。

#parent_div *:active, #parent_div *:focus { overflow-x:hidden; outline:none; }

但遗憾的是,即使这样也行不通。我使用的是FF 9.0.1。

任何帮助将不胜感激。提前谢谢。

4 个答案:

答案 0 :(得分:3)

img{border:none;}

这是ie版本的修复

<!--[if lte IE 6]>
<script type="text/javascript">
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 i=0; i<document.images.length; i++)

      {
         var img = document.images[i]
         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=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"

            + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
            + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
            img.outerHTML = strNewHTML

            i = i-1
         }
      }
   }    
}
window.attachEvent("onload", correctPNG);
</script>
<![endif]-->

试试希望它有所帮助!!!

答案 1 :(得分:3)

这是解决方案:

onclick="blur()" onfocus="navigator.appName == 'Microsoft Internet Explorer' ? blur() : null"

答案 2 :(得分:2)

您可以使用条件注释(更多信息here)+ jQuery。

HTML:

<!-- 
    "old-ie" targets IE7 or less
    "ie8" targets IE8
    "ie" targets IE8+
-->

<!--[if lt IE 8]> <html lang="en" class="old-ie"> <![endif]-->
<!--[if IE 8]> <html lang="en" class="ie ie8"> <![endif]-->
<!--[if gt IE 8]> <html lang="en" class="ie"> <![endif]-->
<!--[if !IE]><!--> <html lang="en"> <!--<![endif]-->

<head>
...
</head>

<body>
    <a href="#link">
        <img src="/img/image.jpg" />
    </a>
</body>

</html>

的jQuery:

// we first check if current browser is IE7 or older, than apply our "hack"

if (jQuery('html').is('.old-ie') === true) {
    jQuery('a').focus(function() { jQuery(this).blur(); });
}

答案 3 :(得分:1)

很好地找到了解决这个问题的方法......这可能不是一个好方法。通过使用js浏览器检测我们可以按如下方式应用IE修复,这不会给其他浏览器带来问题(在我的情况下是FF)

if (navigator.userAgent.toLowerCase().indexOf('msie') != -1) {
    document.getElementsByTagName('area')[0].onfocus = function () {this.blur();};
   }

好吧,如果有人找到更好的解决方案,那么请在这里发帖。感谢。