有没有办法用CSS在area
元素上设置cursor
?似乎不是。此代码似乎什么都不做。
.CSS
area {cursor: help;}
.HTML
<img src="blah.png" width="800" height="550" alt="Blah" usemap="#blah-map">
<map name="blah-map">
<area shape="rect" coords="104,86,210,113" href="okgo.htm" alt="OK Go">
</map>
我能想到的最好的技巧是将链接绝对放置在该区域的顶部,并为其提供光标样式。
我最近遇到了一个问题,即 css 光标在 Firefox 中正确显示,但在 chrome 或 safari 中却没有。
长话短说,我最终需要设置 display:block; 在区域标签上。要么是我的基本 css,要么是浏览器默认标签显示:none;
这是我创建的快速测试用例(在这里查看)
<img usemap="#map" src="http://i.imgur.com/9EcEvkn.jpg" height="120" width="100" />
<map name="map" id="map">
<area shape="rect" coords="0,0,120,100" href="#" />
</map>
area {
cursor: crosshair;
display:block;
}
希望这对某人有所帮助。
绝对将链接定位在图像顶部也是我的解决方案/黑客。
如果它不是一个非常重要的图像,你可以通过创建一个以图像为背景的容器,绝对定位链接,并使链接文本成为你当前正在使用的alt
文本来相当语义地做到这一点。然后,在链接上使用负text-indent
以隐藏视图中的文本。它将按您的预期工作,但是当禁用CSS时,应该显示纯文本链接来代替人造图像映射。
CSS
#blah-map area{
cursor:default;
}
.HTML
<img src="blah.png" width="800" height="550" alt="Blah" usemap="#blah-map">
<map id="blah-map" name="blah-map">
<area shape="rect" coords="104,86,210,113" href="okgo.htm" alt="OK Go">
</map>
只需给地图一个 id,然后为该 id 的区域设置光标类型。
使用 Webkit 导航器,CSS :
area {cursor: help;} /* or other type */
不起作用,所以我使用"href",你可以像这样禁用
<area ... href="javascript:void(0);" />
toazron1给出的答案在WebKit/Safari中完美运行,没有任何坏问题:
.CSS
area {
cursor: help;
display: block;
}
这个想法是正确显示任何area
,因此即使未设置 href
属性,display: inline
和令人惊讶的display: initial
也可以工作。
虽然这个挑战已经得到了解答,但我想分享一个有用的IE解决方法,我通过实验发现了。
问题:我正在使用图像映射,我不希望光标在悬停时更改为手/指针状态。 这适用于不需要实际锚链接的工具提示 (qTip) 实现。 我希望光标保持为箭头(默认状态)或在悬停时将其更改为另一种状态。
我无法让 IE 确认样式 - 光标在悬停时仍然更改:(
解决方案是什么?作为最后一次尝试,我添加了样式:
cursor: default;
display: block;
但我也将它们与用于地图本身的图像相关联:
area, img {cursor: default; display: block;}
希望这对某些人有帮助。