HTML・CSS: outlineの使い所 borderとの違い

CSSのoutlineプロパティは、 要素のボックスに枠線を付けたい場合に使用します。

枠線を付けるだけならborderプロパティでも同じことができますが、 outlineプロパティは、 要素のボックスモデルに影響を与えないのが特徴です。

例えば、リンク部分のマウスホバー時に枠線を表示したい場合、 borderプロパティを使用すると少しですがテキストがズレます。 一方、ボックスモデルに影響を与えないoutlineプロパティを使うと テキストはズレません。 テキストをずらさずに枠線を表示したい時に outlineプロパティを使用します。

outlineとborderの違い サンプル

次の2つのリンクは、マウスホバー時にoutlineプロパティを使って枠線を付けるリンクと、 borderプロパティを使って枠線を付けるリンクです。

リンク部分にマウスカーソルをのせてみてください。 outlineの方はテキストはズレませんが、 borderの方は若干テキストがズレるのを確認できます。

1. outlineサンプル

2. borderサンプル

上の2つのリンクのHTMLとCSSは次の通りです。 outlineプロパティはborderと同じように指定します。

HTML
<p><a href="" class="test1">1. outlineサンプル</a></p>

<p><a href="" class="test2">2. borderサンプル</a></p>
CSS
a.test1, a.test2 {
	text-decoration: none;
}


a.test1:hover {
	outline: 1px solid red;
}

a.test2:hover {
	border: 1px solid red;
}
HTML・CSS入門