リンクに伸びる下線をつけるには
- 2017-06-01
- HTML5&CSS3デザインレシピ集
- css
ときどきみかける「テキストにホバーしたら下線が横に伸びる」リンク。簡単に見えますが意外と面倒で、ちょっと長いCSSを書かないといけません。
基本的には、<a>
の:after, ::after
をdisplay: block;
で表示しておいて、その::afterのボックスの幅を…
width: 0;
)width: 100%;
)にします。
また、マウスアウトしたときに下線を縮めたい場合には、ホバーしていないときの::after
だけでなく、ホバーしているときの:hover::after
にも、transition
を適用しておく必要があります。
サンプルソースを上げておきます。HTMLは通常のリンクですね。
<p><a href="#">Awesome link!</a></p>
CSSはこのようになります。
html * { font-family: sans-serif; } * ::after { box-sizing: border-box; } a { display: inline-block; /* aのdisplayはinline-block */ color: #4A8FE4; text-decoration: none; } a::after { content: ""; display: block; width: 0; /* ホバーしていないときは幅0 */ height: 1px; transition: all 0.5s ease; } a:hover::after { width: 100%; /* ホバーしていないときは幅100% */ height: 1px; background-color: #4A8FE4; transition: all 0.5s ease; }
実際の動作はこちらで確認できます。