如何从Firefox中的<area />元素中删除虚线边框?

时间:2012-10-12 01:40:20

标签: html css firefox

在Firefox(当前版本14.0.1)中,我围绕我创建的<area>个标记here (http://mediabrands.com.au/)得到了一个虚线轮廓。我不仅看到了虚线,而且一旦它出现了我就无法摆脱它(例如通过点击另一个区域)。

enter image description here

我在这里和谷歌搜索了相当长的时间,但仍未设法摆脱它们。它们不会出现在任何其他浏览器中。

我尝试过的事情(以及下面的所有组合)都没有成功:

  • outline: none添加到img,地图和区域代码(以及他们的:focus:active)对应代码。
  • 为每个人添加了border: none
  • 为每个人添加了hidefocus="hidefocus"
  • 使用::-moz-focus-inner{ border: none; outline: none; }为每个元素添加了各种组合。
  • 为每个人添加了.focus(function(){ $(this).blur(); })(jQuery)。

我相信我已经用尽了所有能够遇到的信息 - 还有其他方法可以摆脱这些界限吗?

这是用于快速参考的HTML,以及因为我无法摆脱它的原因的可能性:

<img src="anatomy/dial/components/foundation.png" id="dial-map" usemap="#dial" />
<map name="dial">
    <area title="Ansible" class="tab" id="click-ansible" shape="poly" coords="412,419,376,447,313,474,248,487,247,434,327,415,374,377" href="#">
    <area title="Cadreon" class="tab" id="click-cadreon" shape="poly" coords="487,245,478,313,455,366,416,417,378,380,429,299,434,246" href="#">
    <area title="Orion" class="tab" id="click-orion" shape="poly" coords="418,73,453,117,482,191,484,242,431,244,422,180,378,111" href="#">
    <area title="Ensemble" class="tab" id="click-ensemble" shape="poly" coords="247,1,311,10,368,35,415,70,378,108,312,66,244,53" href="#">
    <area title="Reprise" class="tab" id="click-reprise" shape="poly" coords="73,69,111,39,176,8,242,2,243,53,172,66,112,108" href="#">
    <area title="Magna Global" class="tab" id="click-magnaglobal" shape="poly" coords="245,487,186,481,114,450,71,417,110,377,175,423,246,432" href="#">
    <area title="Airborne" class="tab" id="click-airborne" shape="poly" coords="69,414,37,373,12,316,2,244,55,244,68,322,106,375" href="#">
    <area title="Marketing Sciences" class="tab" id="click-analytics" shape="poly" coords="2,242,11,171,33,120,71,74,109,109,70,168,54,241" href="#">
    <area title="MB3" class="tab" id="click-mb3" shape="poly" coords="257,430,178,422,120,384,82,340,140,305,163,337,206,360,262,364,317,342,348,305,404,340,384,367,324,413" href="#">
    <area title="UM" class="tab" id="click-um" shape="poly" coords="307,134,245,116,246,56,309,68,375,109,418,178,430,237,429,288,404,339,350,303,368,246,358,198,344,169" href="#">
    <area title="Initiative" class="tab" id="click-initiative" shape="poly" coords="80,339,63,289,58,235,72,171,109,112,176,67,243,56,242,119,192,128,152,159,126,206,122,261,137,306" href="#">
    <area title="View Website" id="website" shape="poly" coords="173,330,139,292,133,213,161,167,196,143,245,129,305,146,336,176,359,246,339,300,309,335,260,352,209,351" href="#">
</map>

4 个答案:

答案 0 :(得分:7)

问题是你在dial.js第151行的模糊聚焦功能。删除它可以解决问题。

$("img, area, map").focus(function(event) {
    $(this).blur();
});

为防止对区域元素进行关注,请将tabindex设为-1,即

<area tabindex="-1" title="Ansible" class="tab" id="click-ansible" shape="poly" coords="...

演示:http://jsfiddle.net/SO_AMK/K8Adx/

答案 1 :(得分:3)

焦点模糊似乎导致问题:

从dial.js中删除:

// Prevent focus of areas.
$("img, area, map").focus(function() {
    $(this).blur();
});

这是我为简化一切而做的一个小提琴:http://jsfiddle.net/MadLittleMods/gDrAS/ 评论并取消注释javascript以查看不同的结果。


模糊和焦点的解决方案是使用event.preventDefault()。因此,您可以将上面删除的内容替换为:

// Prevent focus of areas.
$("img, area, map").focus(function(e) {
    e.preventDefault();
}); 

使用tabindex属性还有一个tabindex="-1"修正。

答案 2 :(得分:0)

尝试将区域焦点和活动状态设置为边框0,如下所示:

根据以下问题:Blue border around image maps in Internet Explorer 9

a,
img {
  outline: none;
}
map > area,
map > area:active,
map > area:focus {
  outline: none;
  border: 0;
}

答案 3 :(得分:-2)

尝试使用CSS:text-decoration:none;