記事内に商品プロモーションが含まれる場合があります
CSSではマウスカーソルの形状を自由に変えることができます。今回はその方法と各形状のブラウザ対応状況をまとめておきます。
1. CSSのcursorでカーソル形状を変える
CSSのcursor
プロパティにより、マウスカーソルの形状を変えることができます。具体的には以下のような指定をします。
◯◯ {cursor: 値;}
◯◯には「何にカーソルをのせたときに形状を変えるか」ということを示すセレクタを書きます。
値には「カーソルを具体的にどんな形にするのか」を書きます。cursor
で取ることのできる値は後ほどまとめて紹介します。
「このボタンの上にカーソルをのせたときには、カーソルを 指にする」というような指定ができるわけですね。
cursorの使用例
たとえば、リンク(aタグ)にカーソルをあてると「はてなマーク」になるようにしてみましょう。はてなマークの値はhelp
です。
<a href="https://saruwakakun.com/">サルワカとは?</a>CSS
a {cursor: help}
「サルワカとは?」にカーソルをあてるとはてなマークが表示されるはずです。このようにCSSで要素ごとに自由にマウスカーソルの形状を指定することができます。この例はaタグでしたが、divやpなどの他のタグにも使うことができます。うまく使えば直感的に分かりやすい表現ができるわけですね。
2. cursorの値一覧とブラウザの対応状況
「どんな値を取ることができるのか」とブラウザの対応状況をまとめました。よく使われそうなものから並べています。値名にカーソルをあてると実際の表示が確認できます。
右にスクロールできるかもです
cursor: | 表示 | 解説 | IE | Chrome | Safari | FireFox | Opera |
---|---|---|---|---|---|---|---|
auto | – | 初期値。状況に応じて変わる。リンクならpointerに文字ならtextに。 | ◯ | ◯ | ◯ | ◯ | ◯ |
default | 普通の矢印。 | ◯ | ◯ | ◯ | ◯ | ◯ | |
pointer | 指差しの手に。主にリンクで使われる。 | ◯ | ◯ | ◯ | ◯ | ◯ | |
move | 十字の矢印。移動させられる物を示すのに便利。 | ◯ | ◯ | ◯ | ◯ | ◯ | |
text | Iビーム。主にテキスト用 | ◯ | ◯ | ◯ | ◯ | ◯ | |
crosshair | 十字。選択範囲を作る動作に使えそう。 | ◯ | ◯ | ◯ | ◯ | ◯ | |
cell | Excelのセル選択風。 | ◯ | ◯ | ◯ | ◯ | ◯ | |
help | クエスチョンマーク。Windowsだと矢印カーソルと一緒に表示される。 | ◯ | ◯ | ◯ | ◯ | ◯ | |
grab | 基本的にgrabbingとセットで使う。 | ◯ | ◯ | ◯ | ◯ | ||
grabbing | grabとセットで使う。:activeに指定することで掴むような動作に。 | ◯ | ◯ | ◯ | ◯ | ||
zoom-in | 拡大できるものを表すのに使える。 | ◯ | ◯ | ◯ | ◯ | ||
zoom-out | 縮小できるものを表すのに使える。 | ◯ | ◯ | ◯ | ◯ | ||
not-allowed | 操作できないことを表すのに便利。 | ◯ | ◯ | ◯ | ◯ | ◯ | |
wait | ぐるぐる or 砂時計。処理中で操作ができないことを表すのに便利 | ◯ | ◯ | ◯ | ◯ | ◯ | |
progress | 矢印+ぐるぐるor砂時計。処理中だが操作はできるときを表す。 新しいMacだと矢印なしのぐるぐだけ。 |
◯ | ◯ | ◯ | ◯ | ◯ | |
none | カーソルが非表示に。 | ◯ | ◯ | ◯ | ◯ | ◯ | |
alias | ショートカットを連想させるもの。 | ◯ | ◯ | ◯ | ◯ | ◯ | |
context-menu | メニューアイコン+矢印。 | ◯ | ◯ | ◯ | Mac のみ |
◯ | |
vertical-text | 縦書きテキストの選択用。 | ◯ | ◯ | ◯ | ◯ | ◯ | |
n-resize | 上へのサイズ変更用。 | ◯ | ◯ | ◯ | ◯ | ◯ | |
e-resize | 右へのサイズ変更用。 | ◯ | ◯ | ◯ | ◯ | ◯ | |
s-resize | 下へのサイズ変更用。 | ◯ | ◯ | ◯ | ◯ | ◯ | |
w-resize | 左へのサイズ変更用。 | ◯ | ◯ | ◯ | ◯ | ◯ | |
nw-resize | 左上へのサイズ変更用。 | ◯ | ◯ | ◯ | ◯ | ◯ | |
ne-resize | 右上へのサイズ変更用。 | ◯ | ◯ | ◯ | ◯ | ◯ | |
se-resize | 右下へのサイズ変更用。 | ◯ | ◯ | ◯ | ◯ | ◯ | |
sw-resize | 左下へのサイズ変更用 | ◯ | ◯ | ◯ | ◯ | ◯ | |
ew-resize | 左右のサイズ変更用。 | ◯ | ◯ | ◯ | ◯ | ◯ | |
ns-resize | 上下のサイズ変更用。 | ◯ | ◯ | ◯ | ◯ | ◯ | |
nesw-resize | 斜めのサイズ変更用。 | ◯ | ◯ | ◯ | ◯ | ◯ | |
nwse-resize | 斜めのサイズ変更用。 | ◯ | ◯ | ◯ | ◯ | ◯ | |
col-resize | 幅を変更するとき用。 | ◯ | ◯ | ◯ | ◯ | ◯ | |
row-resize | 高さを変更するとき用。 | ◯ | ◯ | ◯ | ◯ | ◯ | |
all-scroll | 全方向にドラッグしてスクロールする用。 | ◯ | ◯ | ◯ | ◯ | ◯ | |
copy | 矢印の横に+マーク。コピーできるものを表すのに便利 | ◯ | ◯ | ◯ | ◯ | ◯ | |
no-drop | 矢印+禁止マーク。ドロップできない領域を表す用。 | ◯ | ◯ | ◯ | ◯ | ◯ |
表示はMacのGoogle Chromeで見た場合です。 解説文はあくまでも使い方の一例です。目的に合った値を選ぶのが良いですね。
grabとgrabbingを使うときは接頭辞をつける
grab
とgrabbing
を指定したいときは、ベンダープレフィックス(接頭辞)をつけましょう。これはChromeや、Safari、Firefoxに対応させるために必要なおまじないのようなものです。具体的には以下のように書きましょう。
/*grabの場合*/ a { cursor:-moz-grab; cursor:-webkit-grab; cursor: grab; } /*grabbingの場合*/ a { cursor:-moz-grabbing; cursor:-webkit-grabbing; cursor: grabbing; }
ただしこのように書いてもInternet Explorerは非対応のままです…。
対応していなかった場合どうなるの?
たとえばcursor: grab
を指定したとき、非対応のWindowsではどのように表示されるのでしょうか。答えは、auto
(初期値)のカーソルなります。つまりリンクならpointerになり、テキストならtextとなるわけです。
ここまでたくさんの値を紹介してきました。「ユーザーが直感的にどんな操作をするべきなのか分かる」ようなカーソルを選ぶことが重要ですね。