コーディングをしているとborderのプロパティはよく使います。似ているのですが、outlineというプロパティがあります。outlineも要素の周囲に描画するために使いますが、何が違うのでしょうか?

  1. outlineは要素のレイアウトやサイズに影響を与えません。outlineが要素の外側に追加されても、要素の全体的なサイズは変わりません。
  2. outlineは一方向です。borderのように個々の辺を個別にスタイル設定することはできません。
  3. borderのようにborder-radiusを使って角を丸めることができません。

outlineプロパティは、borderのように以下の3つの値をスペースで区切って指定します
.class {
outline: 1px solid red;
}
この例では要素の周囲に太さ1px、スタイルがsolid、色が赤のアウトラインが描画されます。

また、ブラウザはフォーカスが当たった時に自動でinput要素などにoutlineを適用します。そのため、お問い合わせフォームなどでinput要素を使用している時にフォーカス時にデフォルトの色がついてしまっているため、下記のように変更するケースが多いです。
input:focus{
border:0;
outline: 1px $color-accent solid;
}
上記のborderを消さないと、二重になってまいます。ただ、上記でborderは消えませんでした。border: none;にしても同じでした。そのため、下記のように同じ色で設定し直しました。理由がわかれば、いつか追記したいと思います。

投稿者

Kの手習い

前職はOA機器の販売営業でしたが、退職して、50代で1からプログラマーを目指します。一般的にこの年齢からは厳しいと言われておりますが、この歳ならではの経験を活かして、頑張ります!

コメントを残す