今回はCSSで「aタグをクリックできる範囲をheaderの高さと一緒にする方法」を紹介します。
aタグをクリック出来る範囲が大きい方が、ユーザーもクリックしやすくなります。
是非試してみてください!
【CSS】aタグをクリックできる範囲をheaderの高さと一緒にする方法
完成形はこちらです。
HTMLからJavaScriptのメニューをhoverしてみましょう。
背景にheaderの高さ分のaタグが保持されていて、赤い部分のどこをクリックしてもaタグが反応するようになっています。
それではコーディングしていきましょう!
HTML
<header class="header"> <div class="header__title"> <h1>プログラミング</h1> </div> <div class="header__navmenu"> <ul> <li> <a href="">HTML</a> </li> <li> <a href="">CSS</a> </li> <li> <a href="">JavaScript</a> </li> </ul> </div> </header>
headerの中に、「header__title」と「header__navmenu」のブロックを用意しました。
CSS
今回CSSはSCSSで書きました。
// リセットCSS /* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 License: none (public domain) */ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } /* HTML5 display-role reset for older browsers */ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; } body { line-height: 1; } ol, ul { list-style: none; } blockquote, q { quotes: none; } blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; } table { border-collapse: collapse; border-spacing: 0; } // headerのCSS .header { display: flex; align-items: center; justify-content: center; box-sizing: border-box; &__title { h1 { font-size: 15px; } } &__navmenu { margin-left: 50px; ul { display: flex; li { &:not(:first-child) { margin-left: 30px; } a { display: inline-block; height: 60px; display: flex; justify-content: center; align-items: center; font-size: 13px; color: black; text-decoration: none; &:hover { background-color: red; color: #fff; } } } } } }
リセットCSSを書いて無駄なスタイルを消しました。
aタグをheaderの高さにするポイントは、まずaタグを「display: inline-block;」でインラインブロック要素にします。
次にheaderの高さである「height: 60px;」を指定。
最後に
display: flex; justify-content: center; align-items: center;
の3つのプロパティを指定することで、aタグが上下中央寄せになります。
まとめ
以上が、「aタグをクリックできる範囲をheaderの高さと一緒にする方法」でした。