LINEで現役エンジニアに直接質問してみよう!登録無料

CSS cursorでカーソルの形変更する方法と一覧をサンプル付き解説(指や矢印など)

CSSのcursorを使うと、マウスカーソルの形(種類)を変えることが出来ます。

CSS cursorとは?

CSSのcursorとは、マウスカーソルの形状を変えることができるプロパティです。

CSS cursorの書き方・使用例

cursorを変更するには、下記のようにしてCSSを設定します。

〇〇 {
  cursor: カーソル名 又は URL;
}
合わせて読みたい

\ CSSについてわからない人は、下記記事で解説しています!参考にどうぞ /

これを実際にCSSに起こすと、下記のようになります。

.elem {
  cursor: move;
}

左のテキストでは、実際にcursor: move;を設定しています。マウスカーソルを当てると、変化します。

このcursor: move;は、javascriptで要素をドラッグアンドドロップして場所を変更する場合等に使われます。

カーソルを変更するには、種類を表すキーワードを組み合わせます。キーワードには、下記「cursorのサンプル一覧36種紹介」で紹介しているものが使えます。

MEMO

マウスカーソルはどの部分でも変えられる!

上記の例では、<p>に対し適用しましたが、<div> <a>など、要素ごとにカーソルの値を自由に変えることが出来ます。

直感的にわかるように、うまく組み合わせてユーザーにわかりやすくなるようにしたいですね。

CSS cursorのサンプル一覧36種紹介

cursorで使うことの出来るキーワード全36種をサンプル付きで紹介します。

表の1行1行に対応したカーソルに変化するように設定しているので、ぜひ確認してみてください

上記の表の例では、「Mac」の場合のイメージ図を使っています。Windowsの場合は表示が異なりますので、ご注意ください

CSSの「grab」「grabbing」のベンダープレフィックスは必要ない

一昔前は、grabgrabbingの対応しているブラウザは少なかったので、「ベンダープレフィックス」というブラウザごとで提供している実験的な機能を使う書き方をしなくてはいけませんでした。

ところが、その実験的な部分はなくなり、正式に取り込まれたため、今ではベンダープレフィックスの必要性はなくなりつつあります。

上記の画像は、grabgrabbingの対応ブラウザを示しています。

それぞれの面積の広さが、ブラウザごとのシェアを表しています。そして、grabgrabbingのベンダープレフィックスが必要なブラウザのバージョンは、Chromeの項目の上の「4-67」と書かれてある部分と、Safariの一番上の(もう文字が見えないほど層が薄い)部分だけです。

これから分かる通り、ベンダープレフィックスが必要なのは、本当に一握りのユーザーだけなのです。

ブラウザが対応していないcursorだったらどうなる?

そのようなときのための回避策ももちろんあります。対応していないcursorだったら、別のcursorを使うように設定しておく事が出来ます。

書き方は下記のようになります。

〇〇 {
  cursor: 値1, 値2;
}

このように、,(カンマ)区切りで複数のcursorが出来ます。cssのfont-familyのような使い方ですね。

最後まで利用できるcursorがなかった場合、初期値であるautoが選ばれます。つまり、リンクテキストならpointerになり、普通のテキストならtextになります。

参考

CSSのcursorは仕様が下記サイトで定義されています。詳しい情報が欲しい場合は、英語ですが下記サイトから確認できます。

参考 Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification (CSS 2.1の仕様)w3.org 参考 6.1.1. Styling the Cursor: the cursor propertyw3.org
この記事を書いた人

自身がプログラミングを独学で勉強し始めて躓いた経験を元に、これから勉強をする人に向けに「イラスト多めでわかりやすい記事」にこだわって情報を発信しています。

現在はフルスタックエンジニアとしてサービス開発などのお仕事をしています。