我正在使用带有圆形区域的图像地图。问题是我在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。
任何帮助将不胜感激。提前谢谢。
答案 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();};
}
好吧,如果有人找到更好的解决方案,那么请在这里发帖。感谢。