マウスがホバーしたときに枠線をつけたい

最終更新日

outlineプロパティは、要素のボックスに外枠線をつけるのに使われてます。borderプロパティと同じところに線が引かれ、設定する値もまったく同じです。唯一違うのは、outlineプロパティで引かれた枠線は、要素のボックスモデルには影響しないことです。outlineプロパティを実際のWebデザインで使うことはあまり多くありません。

なぜborderプロパティではなくoutlineプロパティを使う方がよいのか?リンクの通常時とホバーのときで、borderプロパティで設定するボーダーがあったりなかったりすると、ボックスのサイズが変わってしまいます。その結果、リンクテキストにホバーすると、そのテキストの位置がずれてしまいます。少し違和感がある動作になるので、borderプロパティではなくoutlineプロパティを使用しています。

<!DOCTYPE html>
<html lang="ja">
<head>
    <title>サンプル</title>
    <style>
      a{
        color: #ea6357;
        text-decoration: none;
      }
      a:hover{
       outline:1px solid #ea6357;
      }
      
    </style>
</head>
<body>
   <h1>代表的な検索エンジン</h1>
   <ul>
        <li><a href="#">Google</a></li>
        <li><a href="#">MSN</a></li>
    </ul>
</body>
</html>

実行結果

実行結果