フォームはユーザーが操作することのできる要素です。
そのため、ユーザーが入力欄を操作した際に、何らかの反応を返してやると、いまどの部分を操作しているのかが明確になって、より使いやすいフォームとなるはずです。
そこで、ユーザーが入力欄にカーソルを当ててフォーカスした際に、その入力欄の周りに微かに色が付くようにしようと思います。
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ソースの内容を確認しておきましょう。
#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などのブラウザで、入力欄がフォーカスされた際に、アウトラインが付けられるスタイルが初期設定されているのをリセットするためです。
影とアウトラインが同時に表示されるとうるさい感じがするので、影を付ける代わりに、アウトラインを無しにしています。
<前へ | 目次へ | 次へ> |