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