トップページ  > ウェブ制作チュートリアル  > ユーザーの操作に反応を返す
第20章 フォームのスタイリング

★ユーザーの操作に反応を返す

ユーザーの操作に反応を返す

広告

フォームはユーザーが操作することのできる要素です。 そのため、ユーザーが入力欄を操作した際に、何らかの反応を返してやると、いまどの部分を操作しているのかが明確になって、より使いやすいフォームとなるはずです。

そこで、ユーザーが入力欄にカーソルを当ててフォーカスした際に、その入力欄の周りに微かに色が付くようにしようと思います。

form.cssに以下の記述を追加してください。

CSSソース(form.css)

@charset "utf-8";

/***************************************
入力フォーム
***************************************/
#form1 input, #form1 textarea {
	font-size:16px;			/*フォントサイズ*/
	border:1px solid #999999;	/*ボーダー*/
	padding:2px;			/*パディング*/
	border-radius:3px;		/*角丸にする*/
	box-shadow: 1px 1px 1px 1px rgba(0,0,0,0.1) inset;	/*影を付ける*/
}
#form1 input:focus, #form1 textarea:focus {
	box-shadow: 0px 0px 5px 2px #ccccee;		/*影を付ける*/
	outline-style:none;				/*アウトライン無しにする*/
}

保存をしたらブラウザで表示してみましょう。テキスト入力欄にカーソルを当ててフォーカスした際に、その入力欄の周囲に薄青の影が付くようになれば成功です。 影を付けるのに使用したbox-shadowプロパティは、旧いバージョンのブラウザではサポートされていない場合があります。 以下の画面はGoogle Chromeによるものです。

今回追加したCSSソースを確認

今回追加したCSSソースの内容を確認しておきましょう。

:focus疑似クラス

#form1 input:focus, #form1 textarea:focus { ~ } は、#form1 input:focusと#form1 textarea:focusという2つのセレクタを、カンマ区切りで並べています。

どちらのセレクタにも:focus疑似クラスが付けられていますが、:focus疑似クラスは、「ユーザーがマウスカーソルを合わせてフォーカスしている最中の要素」がスタイル適用対象となります。

つまり、「ユーザーがフォーカスしているform1というid名がつけられた要素の子となるinput要素、および、ユーザーがフォーカスしているform1というid名がつけられた要素の子となるtextarea要素」という意味になります。

入力欄に影を付ける

box-shadow: 0px 0px 5px 2px #ccccee; は、薄青の影を付けるように指定しています。 また、outline-style:none;は、アウトライン無しにしています。

ユーザーがフォーム入力欄にフォーカスした際にアウトライン無しにするのは、Google Chromeなどのブラウザで、入力欄がフォーカスされた際に、アウトラインが付けられるスタイルが初期設定されているのをリセットするためです。 影とアウトラインが同時に表示されるとうるさい感じがするので、影を付ける代わりに、アウトラインを無しにしています。

まとめ
  1. ユーザーが入力欄を操作した際に何らかの反応を返してやると、フォームの操作性が向上する
  2. どの入力欄を操作しているのかを明確にして、ユーザーに安心感を与える
  3. ユーザーがフォーカスしている要素は、:focus疑似クラスで特定できる
<前へ 目次へ 次へ>
広告
Sponsors
広告
MuuMuu Domain!
ドメイン取るならお名前.com
現役エンジニアのオンライン家庭教師【CodeCamp】
サイトに広告を掲載してお小遣いが稼げる!【A8.net】
Node.jsコース
はじめてのプログラミングコース
▲ページ先頭へ
HTMLクイックリファレンスについて
© HTMQ