ボタンのフォーカス時の太線の外枠を表示しないようにする

Microsoft EdgeやGoogle Chromeでフォーカスされたボタンの太い線の外枠を表示しないようにするコードを紹介します。

デフォルトの動作

コード

デフォルトの動作を確認します。下記のHTMLファイルを作成します。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
  <form>
    <input type="text" />
    <input type="button" value="Exec" />
  </form>
</body>
</html>

表示結果 (Microsoft Edge / Google Chrome)

上記のHTMLファイルをWebブラウザで表示します。下図のページが表示されます。
ボタンのフォーカス時の太線の外枠を表示しないようにする:画像1

テキストボックスをクリックするとテキストボックスにフォーカスが設定されます。テキストボックスの枠線が太く変化します。
ボタンのフォーカス時の太線の外枠を表示しないようにする:画像2

テキストボックスにフォーカスが設定されている状態で[TAB]キーを押下します。フォーカスが次のコントロールのボタンに移動します。 ボタンにフォーカスが設定されるとボタンの外枠の線幅が太くなります。
ボタンのフォーカス時の太線の外枠を表示しないようにする:画像3

表示結果(Microsoft Internet Explorer)

Internet Explorerでの表示も確認します。上記のHTMLファイルをWebブラウザで表示します。下図のページが表示されます。
ボタンのフォーカス時の太線の外枠を表示しないようにする:画像4

テキストボックスをクリックしてフォーカスを設定します。テキストボックスの枠線の色が濃くなりますが、枠線の太さは変わりません。
ボタンのフォーカス時の太線の外枠を表示しないようにする:画像5

テキストボックスにフォーカスが設定されている状態で[TAB]キーを押下します。フォーカスが次のコントロールのボタンに移動します。 ボタンにフォーカスが設定されるとボタンの内側に点線の枠が表示されます。ボタンの外枠の枠線は太くなりません。
ボタンのフォーカス時の太線の外枠を表示しないようにする:画像6

フォーカス時に枠線を表示しない方法

上記の動作がデフォルトの動作ですが、Internet Explorerのようにテキストボックスがフォーカスされた場合でも枠線を表示したくない場合があります。 フォーカス時に枠線を太くしないコードを紹介します。
フォーカス時に枠線を表示しない場合は、outlineプロパティを none または 0 に設定します。

コード

下記のHTMLとCSSファイルを作成します。

button-no-focus-frame.css
.buttonClass:focus{
  outline:0;
}

button-no-focus-frame.html
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
  <link rel="stylesheet" href="button-no-focus-frame.css" />
</head>
<body>
  <form>
    <input type="text" />
    <input class="buttonClass" type="button" value="Exec" />
  </form>
</body>
</html>

解説

ボタンに buttonClass をクラスに指定します。
スタイルシートでは buttonClassクラスの focus 疑似クラスを記述して、buttonClassクラスの要素がフォーカスした場合のスタイルを設定します。 フォーカス時のボタンの外枠はoutlineプロパティで描画されていますので、outline:0; を記述してoutlineの外枠を表示しない動作とします。

表示結果

上記のHTMLファイルをWebブラウザで表示します。
ページが表示されますので、テキストボックスにフォーカスを設定し[TAB]キーを押します。フォーカスがボタンに移動しますが、 スタイルが設定されているため、枠線が太くならないことが確認できます。
ボタンのフォーカス時の太線の外枠を表示しないようにする:画像7

補足
Internet Explorer でフォーカスされたボタンのように、フォーカス時にボタンの内側に点線を描画する方法こちらの記事を参照してください。
補足
テキストボックスのフォーカス時の外枠を表示しない方法はこちらの記事を参照してください。
AuthorPortraitAlt
著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。 最近は生成AIの画像生成の沼に沈んでいる。
作成日: 2021-03-17
Copyright © 1995–2025 iPentec all rights reserverd.