【问题标题】:Cross browser custom cursor style跨浏览器自定义光标样式
【发布时间】:2011-09-28 11:19:30
【问题描述】:

用img标签表示世界地图。我将图像映射与其关联以超链接某些区域。我覆盖了一个带边框的框 div,表示可以单击和缩放某个区域。

现在要向用户展示它这样做了,我希望光标变为放大镜形状。我浏览了网络,发现了一些在 Firefox 和 ie6-8 中有效的东西:

#zoomregion:hover { cursor: url('templates/test/styles/images/magnify.cur'), -moz-zoom-in; }

不幸的是,opera、chrome 和 ie9 忽略它并显示默认值(即:指针)。如何使用跨浏览器自定义光标图标?

【问题讨论】:

  • 一种便宜的方法是在页面中添加一个额外的元素,使用您想要的新光标图像,使用 JavaScript 将其始终定位在鼠标上,并使用 CSS 隐藏真正的光标.但你可能对这样做不感兴趣。
  • 我认为这会阻止点击事件到达他们应该去的地方。
  • 你确定图片在 templates/test/styles/images/magnify.cur ?
  • beradrian.wordpress.com/2008/01/08/… 应该可以帮到你。
  • 我读到过提供 2 个 uri 符号。一个具有相对于 css 文件的路径和相对于 html 文件的后备。这解决了它。

标签: css cross-browser mouse-cursor


【解决方案1】:

-moz-zoom-in;-moz- 部分表示它仅适用于 Mozilla,要使其跨浏览器,您需要同一 id 标签 css 中的所有标签:

#zoomregion:hover { 
    cursor: url('templates/test/styles/images/magnify.cur');
    -webkit-zoom-in;
    -moz-zoom-in;
    -ie-zoom-in;
    -ms-zoom-in;
    -o-zoom-in;
}

-webkit- 适用于很多浏览器,包括移动设备(对于这种用途,可能不需要),它非常有用并且大大缩短了时间。

【讨论】:

  • 你确定这个供应商的前缀和规则吗?
  • 我在 2 年前发布了这个,我什至不记得发布过这个答案。但是,如果这其中有一个错误,我早就被抓住了。那个或这个解决方案已被弃用。但是,我不知道。
  • 不管它是不是在2年前发布的,你仍然可以正确编辑它,这也是因为它不断被搜索并且总是可以投反对票。这里的错误是我从未听说过名为-ie- 的供应商前缀,CSS 中的规则也不可能只有供应商前缀而没有任何规范。
  • 嗯,发布时-ie- 用于 Internet Explorer,但如果它已被替换,那么一旦我发现它被替换了什么,我会很乐意修复它。跨度>
  • 这不是真的,前缀 -ie- 从未存在过:例如,在此答案之前,请查看 2015 年发布的这篇文章 divi.space/divi-tutorials/browser-prefixes-explained。再说一次,像您应用的 CSS 规则 (-webkit-zoom-in; -moz-zoom-in; ...) 在语法上是完全不正确的:例如查看 w3schools.com/css/css_syntax.asp 以了解如何构建 CSS 规则。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-21
  • 2017-02-05
  • 2023-03-24
  • 2017-04-14
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
相关资源
最近更新 更多