CSS ・ 枠線・装飾

outline

アウトライン

要素の外側に線を描きます。border と違ってレイアウトに影響せず、主にキーボード操作時のフォーカス表示に使います。

初期値
medium none currentColor
適用対象
すべての要素
継承
しない
01

サンプルコード

HTML
1<button class="btn">ふつうのボタン</button>
2<button class="btn focus">フォーカス中の表示</button>
CSS
1.btn {
2 padding: 8px 18px;
3 margin-right: 12px;
4 border: 1px solid #b68235;
5 border-radius: 4px;
6 background: #fff;
7 font: inherit;
8}
9.focus {
10 outline: 2px solid #b68235;
11 outline-offset: 3px;
12}
02

実行結果

ブラウザでの表示右のボタンは、キーボードでフォーカスしたときの見た目を再現しています
03

解説

outline は要素の外側に線を描くプロパティです。書き方は border と同じ「太さ 種類 色」ですが、要素の大きさに含まれず、周りのレイアウトを動かしません。

ブラウザは、キーボードで選択中(フォーカス中)の要素に outline を表示します。キーボードで操作する人にとって、現在地を知るための大切な目印です。

outline-offset で要素との間隔を空けられます。

04

応用例・注意点

関連するプロパティ・セレクタ

名前説明
outline太さ・種類・色の一括指定
outline-offset要素との間隔
:focus-visibleキーボード操作などでフォーカスしたときだけ
outline: noneアウトラインを消す(代わりの表示が必要)

キーボード操作のときだけフォーカス線を出す

:focus-visible を使うと、マウスでクリックしたときには表示されません。

CSS
1:focus-visible {
2 outline: 2px solid #b68235;
3 outline-offset: 2px;
4}

注意点

  1. 01outline: none でフォーカス表示を消すと、キーボード利用者が操作できなくなります。消す場合は必ず代わりの表示を用意します。
  2. 02outline は角丸(border-radius)に沿って描かれますが、古いブラウザでは四角になることがあります。
↑↓ 選択Enter 移動Esc 閉じるCtrl K⌘K で開閉