Нежелательная граница вокруг области изображения карты - PullRequest
5 голосов
/ 27 января 2012

Я использую карту изображений с круглой областью.Проблема в том, что я получаю нежелательную границу вокруг области в IE7.Эта граница не отображается в FF и Chrome, а также в IE8 / IE9.

Я попытался добавить к изображению border = "0", свойства CSS для якорей, например

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

но не сработало.

Я также попытался добавить исправление IE onfocus = "blur ();"в теге.Это решило проблему в IE, но теперь FF получил границу.Много искал и прошел через это исправление, в котором говорилось, что это исправит проблему с FF при использовании исправления IE.

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

Но, к сожалению, даже это не сработало.Я использую FF 9.0.1.

Любая помощь будет принята с благодарностью.Заранее спасибо.

Ответы [ 4 ]

3 голосов
/ 21 апреля 2012

Это решение:

onclick="blur()" onfocus="navigator.appName == 'Microsoft Internet Explorer' ? blur() : null"
3 голосов
/ 27 января 2012
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]-->

попробуй эту надежду, это поможет !!!

2 голосов
/ 23 марта 2012

Вы можете использовать условные комментарии (подробнее здесь ) + 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(); });
}
1 голос
/ 02 февраля 2012

Хорошо нашли способ решить эту проблему ... что, вероятно, не очень хороший способ.Используя обнаружение браузера js, мы можем применить исправление IE следующим образом, что не вызовет проблем в других браузерах (в моем случае FF)

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

Ну, пожалуйста, если кто-то найдет лучшее решение, тогда пишите здесь.Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...