リンク

マウスホバーで背景が伸びるリンク

マウスホバーで背景が伸びるリンクのCSS

See the Pen Untitled by チータツ @ブログについて語る (@cheese_fuji) on CodePen.

CSSの解説

  • リンクaposition: relativeを指定
  • リンクの疑似要素:afterを作成する
    • position: absoluteで絶対値で配置
    • z-index: -1で文字の後ろに配置
    • 標準状態ではwidth: 0にしておく
  • マウスホバー時の疑似要素a:hover:afterwidth: 100%にして背景を伸ばす

疑似要素にz-index: -1を指定しておかないと、背景で文字まで塗りつぶされてしまうので注意。また、濃い色を使う場合は、サンプルと同じようにホバー時に文字色をcolorで白色にするのがおすすめです。

応用CSS

透明度を使って自然に

透明度を変化させるopacityを追加するだけで、背景の出現をより自然にすることができます。

ただその分「伸びている」感じが弱くなるので、好みに合わせて使い分けてください。

See the Pen Untitled by チータツ (@cheese_fuji) on CodePen.

右から背景が伸びる

左←右 に背景が伸びるバージョンです。
人の視線の動きには反しているので、使いどころはよく考えましょう。

最初から width:100%; の背景を作っておき、transform: scaleX() によるアニメーションでサイズを変更します。

See the Pen Untitled by チータツ @ブログについて語る (@cheese_fuji) on CodePen.

中央から背景が伸びる

transform-origin でアニメーションの開始点を指定しなかった場合は、初期値である中央を始点として背景が伸びます。

See the Pen Untitled by チータツ @ブログについて語る (@cheese_fuji) on CodePen.

センターに円系の背景

疑似要素に border-radius: 50%; を指定すれば、丸い背景を出現させることも可能です。

汎用性は高くないですが、いざという時には使えるかもしれません。

See the Pen Untitled by チータツ (@cheese_fuji) on CodePen.

おすすめの使い方

  • 本文中の重要なリンク
  • ボタン
  • ヘッダーメニュー