【CSS】cursor一覧とinputでの使い方
![]() | inputのラジオボタンやlabelはマウスを乗せても指のアイコンになりません。クリックできることがわかるようにアイコンを変えたいですね。 |
CSSのcursorは特定の範囲内に乗ったマウスカーソルのアイコンを変更することができます。
また、cursorで指定できるアイコンは多数用意されています。
cursor一覧とラジオボタンなどのinputやlabelでの使い方を紹介します。
カーソル(cursor)一覧
「cursor:○○」と指定します。
○○にあたる値と実際のアイコンの一覧は下記のとおりです。
default![]() |
none |
pointer![]() |
progress![]() |
wait![]() |
|
alias![]() |
copy![]() |
help![]() |
cell![]() |
crosshair![]() |
|
text![]() |
vertical-text![]() |
col-resize![]() |
row-resize![]() |
||
move![]() |
all-scroll![]() IEの場合 ![]() |
not-allowed![]() |
no-drop![]() IEの場合 ![]() |
||
n-resize![]() |
s-resize![]() |
ns-resize![]() |
e-resize![]() |
w-resize![]() |
ew-resize![]() |
nw-resize![]() |
se-resize![]() |
nwse-resize![]() |
ne-resize![]() |
sw-resize![]() |
nesw-resize![]() |
zoom-in![]() IE不可 |
zoom-out![]() IE不可 |
grab![]() IE不可 |
grabbing![]() IE不可 |
カーソルのアイコンはブラウザやバージョンによって異なる場合があります。
Chrome、Edge、Firefoxは同じです。IE11はマークが異なったり使えないものがあります。
「resize」シリーズは3つ同じマークになっています。(昔は違ったのかもしれません。)
CSSやhtmlの基本をしっかり理解すると、この記事の内容もより理解できるようになりますよ。
↓CSSやhtmlを楽しく学べるようにマンガを描きましたのでゼヒご覧ください↓
↑「副業してもう少し稼ぎたい!」というかたのために副業の方法も解説しています。
inputでのcursorの使い方
cursorにおいてよく使うのは「cursor:pointer」です。
というかサイト作成においてpointer以外のcursorはほぼ使いません。
pointerは人差し指のアイコンであり、クリックできることを示すことができます。
aタグは標準でこのアイコンになりますが、label、input、buttonタグなどはこのアイコンにはならないためCSSで指定する必要があります。
下記はinputタグに「cursor: pointer」を指定した例です。
<style>
.example2{
cursor: pointer;
}
</style>
<input type="checkbox" class="example2"> <label>選択肢</label>
カーソルを乗せたときに動作するので「:hover」が必要に思いがちですが、実はいりません。
これでもいいのですが、クリック範囲が非常に狭く押しづらいですね。
もう一工夫してラベルもクリックできるようにしましょう。
<style>
.example3,.example3 + label{
cursor: pointer;
}
</style>
<input type="checkbox" class="example3" id="example3"> <label for="example3">選択肢</label>
idとforでinputとlabelを結びlabelを押してもinputが反応するようしました。
さらにlabelにも「cursor: pointer」を指定しクリックできることを示しました。
しかし、inputとlabelの間の隙間はクリックできません。ここもクリックできるようにしましょう。
<style>
.example4,.example4 input{
cursor: pointer;
}
</style>
<label class="example4"><input type="checkbox"> 選択肢</label>
ラベルとinputと隙間をlabelで囲んでしまいます。こうするとlabel内のどこをクリックしてもinputが反応します。
おまけにidとforで結ぶ手間もなくなります。
labelには「cursor: pointer」を指定してクリックできることを示しています。
inputはlabelの中にありますが「cursor: pointer」を指定する必要があります。
さらにもう一手間かけてクリック範囲を広げましょう。
<style>
.example5{
cursor: pointer;
display: inline-block;
padding: 10px;
}
.example5:hover{
text-decoration: underline;
}
.example5 input{
cursor: pointer;
margin-right: 5px;
}
</style>
<label class="example5"><input type="checkbox">選択肢</label>
labelに「display: inline-block」を指定しpaddingが効くようにしてからpaddingを指定してクリック範囲を広げています。
マウスの変化だけではなく、さらにlabelのhover時に下線が表示されるようにしました。
このときスペースにも下線が引かれてしまうためmarginの隙間に変更しています。
このようにしてクリックしやすく、視覚的にもクリックできることを示すようにしましょう。
cursorの注意点(スマホでは効かない)
cursorはマウスのアイコンを変更できます。
しかしスマホやタブレットなどマウスカーソルがない端末では当然無意味です。
「マウスカーソルを乗せればクリックできるかどうかわかる」と思ってはいけません。
クリックできるものは見た目だけで「クリックできそう」と判断できるようにしましょう。
逆にクリックできないものを「クリックできそう」と勘違いさせないことも重要です。
まとめ
よく使うのは「cursor: pointer」。というかpointerしか使わない。
hoverは不要で、マウスを乗せたとき変化させたい箇所に指定する。
スマホのことを考え、見ただけでクリックできそうに見せることが重要。
以上、cursor一覧とinputでの使い方でした。
「この記事の内容がよくわからなかった…」「なんかうまくいかなかった…」というかたは下記記事↓でhtmlとCSSの基本を学びましょう。
わからないまま突き進むより基本を学ぶのが結局近道です。