2012-01-27 15 views
5

私は円形エリアのイメージマップを使用しています。問題は、私はIE7の領域の周りに不要な境界線を取得することです。この境界線は、FFやChrome、IE8/IE9では表示されません。イメージマップエリアの周囲の不要なボーダー

私がイメージに=「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

866 repおよび0%受け入れの回答!あなたはこれに対する解決策を見つけましたか? –

+0

はい...いいえ、解決策はありません。回避策のすべての回答を確認してください。 – Abhidev

答えて

3
img{border:none;} 

、これはすなわちバージョン

<!--[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]--> 

ことができます。この希望を試すための修正です!!!

+0

これをもう一度試してみました... IEの修正を加えたイメージマップの場合は私のために働いていません。 – Abhidev

+0

は、すなわち6.0ですか? OKのスクリプトをヘッダに入れてください。 – Madhu

+0

あなたが与えたスクリプトは、IE6以下のPNG画像の透明度を修正するためのものだと思います。私が直面している問題は画像マップを使うことに関連しています。 – Abhidev

1

この問題を解決する方法が見つかりました。これはおそらく良い方法ではありません。 (私の場合FF)を他のブラウザに問題を引き起こすことはありませんこれは、次のようにjsのブラウザ検出を使用することにより、私たちは、誰もがよりよい解決策を見つけた場合

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

さて、その後、ここに投稿くださいIEの修正プログラムを適用することができます。ありがとう。

+0

Abhidev、条件付きコメントを使用して、IEが動作しているかどうかを検出することができます。詳細はこちら[http://www.quirksmode.org/css/condcom.html]を参照してください。例として新しい回答を追加しようとしています。 – bdurao

2

条件付きコメント(more info 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(); }); 
} 
+0

はい、間違いなく条件付きコメントを使用できます。 :) – Abhidev

3

これが解決策です:

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

私は多くの多くを試しました(国境、輪郭、..)物事、そしてこれだけが働いた、ありがとう –

関連する問題