自定义CSS光标点击点

时间:2011-04-13 12:56:35

标签: css cursor

如何为cursor: url(theCursorUrl);创建的游标提供自定义点击? 例如你正在使用手(抓)图像的光标。但是你希望图像的中间是实际光标指向的点。

4 个答案:

答案 0 :(得分:27)

CSS3 supports setting the midpoint of a cursor image,其中指针的热点(即点击注册点)是:

cursor: url(mycur.cur) 6 6, auto;

两个6值分别表示距离左侧6个像素和距离顶部6个像素。默认热点始终位于图片的左上角,即0 0

此功能的浏览器支持可能相当差,但因为它是CSS3功能,所以它不是你应该依赖的东西。 (也就是说,Firefox已经从版本1.5支持它了!)如果浏览器无法解释坐标the cursor property will be ignored,那么请小心。

答案 1 :(得分:7)

如果您想要自定义光标的跨浏览器兼容性(当热点不在左上角时),这是一个相当棘手的问题。 首先,IE受限于使用.cur格式。 .cur格式还封装了热点位置。您可以编辑.cur格式(有像Real World Cursor Editor这样的免费工具)来设置热点像素。 不幸的是,chrome由于某种原因忽略了.cur格式的封装热点,它默认将它设置为0,0。所以你必须提供那些坐标,但这会让IE忽略整个css属性......

使用除0,0以外的热点的自定义游标时,我的方法是:

首先使用.cur编辑器将热点像素设置在所需坐标(本例中为9,7)。然后使用下面的东西。这将涵盖IE,FF和Chrome

cursor:url(mycursor.cur), default;
cursor:url(mycursor.cur) 9 7, default; /*chrome cursor hotspot fix - ignored by IE

答案 2 :(得分:1)

基本语法如下:

cursor: url(image) [x y|auto];

然而,有许多怪癖需要注意,这使得使用跨浏览器非常棘手。

主要的一点是Internet Explorer要求光标采用'.cur'格式,而其他浏览器则需要标准图像格式(例如'.gif')。如果要支持所有浏览器,则需要同时创建和编写特定于浏览器的代码。

在Opera中显然根本不起作用。

Quirksmode site详细列出了所有可能出现的奇怪现象。

答案 3 :(得分:1)

CSS 3热点定位但IE不支持此功能 https://developer.mozilla.org/en/Using_URL_values_for_the_cursor_property

cursor: url(cursor.gif) 2 2, pointer;
property: url x-coordinate y-coordinate, fallback image;