水风清,晚霞明

微霞

4.折腾一下自定义光标

更新于
· 字数: 881 · 阅读: 4 分钟
# 探索
Table of Contents

今天心血来潮,又想折腾一下博客样式,这次是对鼠标样式进行自定义修改。

基本

CSS cursor 属性允许我们定义鼠标指针放在一个元素边界范围内时所用的光标形状。同时,curosor中也允许我们使用url来引入自定义的光标。于是,我们就可以使用 curosr 来引入 自定义光标,再用css将一个元素的光标定义为我们需要的自定义光标。 最基本的代码就这样。

body {
cursor: url('custom-cursor.cur'), auto;
}

其中,“url(‘custom-cursor.cur’)“表示我们引入的资源,这个资源可以是相对位置也可以是网址,后边的auto则表示当前者不可用的时候,使用浏览器默认的光标形状。

解决

网站本体

既然知道了最基本的修改手段,那么现在的问题来到了:如何用最少的光标文件来使网站光标看上去尽可能的多。 我选择了三个光标,分别是:

  1. default(默认光标)
  2. text(文本光标)
  3. pointer(指针光标)

本站功能较少,站点的光标形态基本就是在这三个光标中来回切换,所以只需准备三个替换文件即可。 所以我选择了只引入三个光标文件,用来替换默认光标。

/* 自定义光标 */
p {
cursor: url(https://cdn.yuuu.org/cur/texto.png),auto;
}
body {
cursor: url(https://cdn.yuuu.org/cur/normal.png),auto;
}
a {
cursor: url(https://cdn.yuuu.org/cur/link.png),auto;
}

这样,网站的大部分光标都会被替换为上述光标。

twikoo中的一些问题

但是,我却发现我的Twikoo评论居然没有改变,还是原本的图标。我的强迫症不允许我出现这么糟心的情况,既然是修改了,当然还是希望全局生效。
所以我打算将twikoo中的类全部加上cursor,但是却发现twikoo将css全部以内联样式形式引入,类选择器优先级比不上内联样式,没法覆盖为我的自定义光标,无奈之下,只好加上!important来覆盖内联样式。这不算很优雅。😔

/* 自定义twikoo里面的,光标*/
/* twikoo 输入框其一 */
input {
cursor: url(https://cdn.yuuu.org/cur/texto.png),auto;
}
/* twikoo 输入框其二 */
textarea {
cursor: url(https://cdn.yuuu.org/cur/texto.png),auto;
}
/* twikoo 的一些按钮,使用了 !important,来确保生效 */
.tk-icon.__comments, .tk-submit-action-icon, .el-button {
cursor: url(https://cdn.yuuu.org/cur/normal.png),auto !important;
}

至此,在twikoo中的元素的光标全部都被转换为了我当前自定义的光标。🎉🥳🎊

后记

2024/11/15 :取消网站所有的自定义鼠标样式,突然间觉得不需要了。 2025/2/2:给网站加上了一个跟随的小黑点,真好玩。

我使用了星奈铃的鼠标指针 bilibili

原文件为ani文件,目前各大浏览器内核好像都不算很支持,于是我使用了RealWorld Cursor Editor从中抽取了一帧作为cur文件。但是也不知道出了什么差错,居然上传后居然没法正常的引入,在线预览变成了乱码,但是下载到本地却又正常。于是只好重新生成png格式上传,这才可以在线预览并且成功引入,目前暂时不知道是什么原因。按道理,一般情况是使用cur文件作为网站光标文件。

附上一张效果图1

水氵冫

Written by 水氵冫

再努力一点点的说!

本文作者: 水氵冫
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

评论

评论加载中...