mecobalamin’s diary

人間万事塞翁が馬

https://help.hatenablog.com/entry/developer-option

リンクの範囲を広げる

htmlでリストで並べたリンクを枠で囲むことがある

通常はカーソルでリンク先に飛ぶのは赤枠で囲った範囲
リンク範囲をcssで黄色に表示させるとこんな感じ

これを緑の枠で囲った範囲全体に広げたい

カーソルを重ねるとこんな感じ

しばらく悩んでいたが解決したのでその忘備録

やったこと

  1. cssのliで"display: flex"を指定する
  2. cssのliでwidthとheigthを指定する
  3. cssのli aでwidthとheightをliで指定した大きさにする

解説できるほどの知識もないので
できたソースを載せる
そのままコピペで動くはず

一行分だけリンク範囲を広げるにはdisplay: blockを指定するのだが
上下に範囲を広げるにはスタイルシートでdisplay: frexにして
親のタグ(li)と同じ大きさを子のタグ(li a)に指定する必要があった

<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="UTF-8">

        <title>リンクの範囲を広げる</title>
        <style>
            body {
                font-size: 24px;
            }
            li {
                display: flex;
                border: 3px solid green;
                height: 4em;
                width: 300px;
            }
    
            li a {
                display: flex;
                border: 1px solid red;
                height: 100%;
                width: 100%;
                justify-content: center;
                align-items: center;
            }

            li a:hover {
                background-color: yellow;
            }
        </style>
    </head>

    <main>
        <body>
            <ul>
                <li>
                    <a href="https://www.google.com" target="_blank">Google</a>
                </li>
            </ul>
        </body>
    </main>
</html>