6

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

在此处输入图像描述

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

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

  • 添加outline: none到 img、map 和 area 标签(以及它们的: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

4 回答 4

7

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

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

为防止聚焦于区域元素,请将 a 设置tabindex-1,即

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

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

于 2012-10-15T01:53:47.617 回答
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"

于 2012-10-15T01:42:28.137 回答
0

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

根据以下问题:Internet Explorer 9 中图像映射周围的蓝色边框

a,
img {
  outline: none;
}
map > area,
map > area:active,
map > area:focus {
  outline: none;
  border: 0;
}
于 2012-10-14T23:21:42.123 回答
-2

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

于 2012-10-14T22:54:53.963 回答