• HOME > 
  • CSS > 
  • CSSの疑似クラス「:focus」の使い方【focus-wi...

CSSの疑似クラス「:focus」の使い方【focus-withinとの違い】

投稿日:

このページにはGoogleアドセンス広告とアフィリエイト広告が含まれています。

カテゴリー記事のアイキャッチ画像

本記事は執筆時点(2023年05月01日)の情報をベースにしております。掲載している情報が最新ではない可能性がありますので何卒ご容赦ください。

広告
広告

フォーカスとは?

フォーカスとは入力ボックスなどがクリックされて入力できる状態になっていることを指します。その後、別の場所をクリックしたり、他の入力ボックスにカーソルを移すことをフォーカスが外れると言います。

CSSでは疑似クラスである「:focus」を用いることで、フォーカス時のスタイルを設定することが可能です。

なお、ほとんどのブラウザではデフォルトCSSによりフォーカス時のスタイルが設定されています。

リンク先のサムネイル
CSSの疑似要素・疑似クラスの種類と使い方

疑似要素・疑似クラスは、どちらも元となる(基準となる)要素に対して追加のスタイルを指定したり装飾を行うために使用するCSSのセレクタ―です。どちらもHTMLのソースコードには...【もっと読む】

フォーカスされた時や外れた時に入力チェックしたり、テキストを表示させたりといった処理を行いたい時はJavascript(jQuery)を用います。

リンク先のサムネイル
jQueryのblur()でフォーカスが外れた時の処理を行う方法【入力チェックなど】

jQueryのblur()メソッドはフォームの入力ボックスなどでフォーカスが外れたときに処理を実行させることができるメソッドです。入力チェックなどに利用され、...【もっと読む】

疑似クラス「:focus」の使い方

疑似クラス「:focus」はCSSのセレクターに利用することで、要素がフォーカスされた時のスタイルを設定することができます。

次のように記述します。

疑似クラスfocusの使い方

下の例では、テキストボックスがフォーカスされている時のみ文字色を変更するように指定しています。

HTML

<input type="text" id="testA" placeholder="入力欄A">

CSS

input[type="text"]#testA:focus{
    color:#d40000;
}

プレビュー

テキストボックスの枠線はoutlineプロパティで設定する

input[type='text']によるテキストボックスの枠線は一見するとborderプロパティのように思われますが、outlineプロパティによって表示されています。

設定の仕方はborderプロパティと同じで、線の種類・太さ・色を指定することができます。

下の例では、フォーカスされた時に枠線を赤く表示させています。

HTML

<input type="text" id="testB" placeholder="入力欄B">

CSS

input[type="text"]#testB:focus{
    outline:solid 2px #d40000;
}

プレビュー

「:focus-within」との違い

フォーカス時のスタイルを設定できる疑似クラスとして「:focus-within」があります。

「:focus」が要素自体がフォーカスされた時のスタイルであるのに対し、「:focus-within」は、その要素自体もしくは子要素にフォーカスがある状態に有効になる疑似クラスです。

親要素の「:focus-within」に設定したスタイルは、子要素のテキストボックスのどれかがフォーカスされた時に適用されます。

下記の例ではいずれかのテキストボックスにフォーカスすると、親要素の「:focus-within」のスタイルが有効になり背景色が変更されます。

HTML

<div class="sample_form">
    <input type="text" placeholder="入力欄A">
    <input type="text" placeholder="入力欄B">
    <input type="text" placeholder="入力欄C">
    <input type="text" placeholder="入力欄D">
</div>

CSS

.sample_form{
    background:#f9f9f9;
    padding:10px;
}
.sample_form:focus-within{
    background:#ff4d5f;
}

プレビュー

まとめ

以上がCSSの疑似クラス「:focus」の使い方です。

フォーカスされている部分をわかりやすく装飾できれば、入力フォームなどでのユーザビリティを高める効果が期待できます。focus-withinも合わせて使えばより効果的です。

広告
広告

関連する記事

サムネイル

CSSでPNG画像に影を落とす方法【filterプロパティd……

2025年01月15日
CSSでドロップシャドウをつけるには? CSSで要素に影(ドロップシャドウ)を付ける手段としては「box-shadow」や「text-shadow(テキストの場 […]
サムネイル

CSSのfilterプロパティの関数の種類と効果をまとめ【フ……

2025年01月06日
最終更新日:2025年01月15日
IEのサポートが終了したので、これまで使う機会の少なかったfilterプロパティを改めて調べたところ、CSSでの表現の幅を広げてくれる画期的なプロパティだと気づ […]
サムネイル

CSSで写真にぼかし加工を加える方法【filterプロパティ……

2025年01月06日
CSSだけで写真をぼかせる? CSSのfilterプロパティのblur()関数を使うと、画像(要素)にぼかしを加えることができます。 画像編集ソフトを使うことな […]
サムネイル

CSSで写真の明るさ(明度)を調整する方法【filterプロ……

2025年01月06日
CSSだけで画像の明度を調整できる? CSSのfilterプロパティのbrightness()関数を使うと、画像(要素)の明るさを変更することができます。 画像 […]
サムネイル

CSSで写真のコントラストを変更する方法【filterプロパ……

2025年01月06日
CSSだけで写真のコントラストを調整できる? CSSのfilterプロパティのcontrast()関数を使うと、画像(要素)のコントラストを変更することができま […]
サムネイル

CSSで写真を白黒に変更する方法【filterプロパティgr……

2025年01月06日
CSSだけで写真を白黒にできる? CSSのfilterプロパティのgrayscale()関数を使うと、画像(要素)を白黒に変更することができます。 グレースケー […]
サムネイル

CSSで写真をセピアに加工する方法【filterプロパティs……

2025年01月06日
CSSで写真をセピアに加工できる? CSSのfilterプロパティのsepia()関数を使うと、画像をセピア色に変換できます。 画像編集ソフトを使うことなくCS […]