フォームのinput要素をfocusした時の枠の色を変える方法!

フォームのinput要素をfocusした時に枠の色を変更する方法をサンプルコード付きで解説します。

コンテンツ [表示]

  1. 1フォームのinput要素をfocusした時の枠の色を変えたい
  2. 1.1青い枠の正体
  3. 2フォームのinput要素をfocusした時の枠の色を変える方法
  4. 2.1outline(輪郭線)の色を変える
  5. 2.2outlineを無効にしてborderで線を付ける
  6. 2.3outlineを無効にしてbox-shadowでデザインする

フォームのinput要素をfocusした時の枠の色を変えたい

フォームのinput要素をfocusした時の色を変更したい時があります。

例えばフォームのinput[type="text"]のテキストボックスにフォーカスを当てると青い枠が表示される事があります。

今回この青い枠の色を変える方法についてサンプルコード付きで解説していきます。

青い枠の正体

この青い枠の正体ですが、擬似クラスの:focus時に設定されているoutlineプロパティによる表示結果です。

あわせて読みたい
:focus
CSSの:focusの擬似クラスはテキストフィールドなどにフォーカスが当たった際の要素を表します。:focusの構文や使い方をサンプルコード付きで解説します。
あわせて読みたい
outline
CSSのoutlineプロパティはアウトライン(輪郭線)を設定するプロパティです。アウトラインの種類・太さ・色を一括設定することが出来ます。outlineプロパティの構文や使い方をサンプルコード付きで解説します。

つまりこの枠の色を変えたい場合は、

  • :focus時のoutlineの色を変更する
  • :focus時のoutlineを無効にして別途デザインする
という2つのパターンが考えられます。それぞれ次の章で解説していきます。

Photo byFree-Photos

フォームのinput要素をfocusした時の枠の色を変える方法

outline(輪郭線)の色を変える

まずはoutline(輪郭線)の色を変える方法を紹介します。枠の正体はoutlineプロパティですので、このoutlineプロパティの設定を上書きします。

下記のサンプルコードを見てみましょう。

上記のサンプルコードのプレビューで「クリックして下さい」というところをクリックすると、今度は赤いかつ太い線が表示されているかと思います。

これは:focus時のoutlineのプロパティの値をCSSで上書きしているためです。このように枠のデザインをoutlineプロパティで変更することが出来ます。

outlineを無効にしてborderで線を付ける

次にoutline(輪郭線)は無効にしてborder(枠線)を別途設定する方法です。

この場合は:focus時のoutlineは0で設定をして無効にして、別途borderプロパティを設定しています。

このやり方でも見た目上で枠の線の色を変更することが出来ます。

outlineを無効にしてbox-shadowでデザインする

こちらもoutlineプロパティを無効にして、別途box-shadowプロパティで枠線の見た目を付ける方法です。

box-shadowプロパティの設定は上下左右斜めに赤の影を付け縁取りをする形で枠線の見た目にしています。

GeekHive採用サイト

関連記事