CSSでホバーエフェクトを実装する

今回は擬似クラス:hoverを使って、ホバーエフェクトを実装していきます。

スポンサーリンク

ボタンのホバーエフェクト

ボタンのベースとなるコードです。
transitionの値を変えることで、エフェクトが変化する時間を調節できます。下記コードの場合は0.3秒で変化します。

CSS
.btn0 {
  display: inline-block;
  width: 200px;
  height: 54px;
  text-align: center;
  text-decoration: none;
  line-height: 54px;
  outline: none;
}
.btn0::before,
.btn0::after {
  position: absolute;
  z-index: -1;
  display: block;
  content: '';
}
.btn0,
.btn0::before,
.btn0::after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-transition: all .3s;
  transition: all .3s;
}

斜めのライン

Button

色を変えて、斜めのラインを加えています。「rotate(45deg)」で角度を設定しています。
ボタンのベースとなるコードに、下記のコードを追加します。

HTML
<a class="btn0 button1" href="#">Button</a>
CSS
.button1 {
  position: relative;
  z-index: 2;
  background-color: #333;
  border: 2px solid #333;
  color: #fff;
  line-height: 50px;
  overflow: hidden;
}
.button1:hover {
  background-color: #fff;
  border-color: #ff36ee;
  color: #fff;
}
.button1::after {
  top: -100%;
  left: -100%;
  width: 100%;
  height: 56px;
}
.button1:hover::after {
  top: 0;
  left: 0;
  transform: rotate(45deg);
  background-color: #ff36ee;
}

斜めに閉じる

Button

両側から斜めに閉じるような動きをつけています。角度は15度です。
ボタンのベースとなるコードに、下記のコードを追加します。

HTML
<a class="btn0 button2" href="#">Button</a>
CSS
.button2 {
  position: relative;
  z-index: 2;
  background-color: #fff;
  border: 2px solid #333;
  color: #000;
  line-height: 50px;
  overflow: hidden;
}
.button2:hover {
  background-color: #fff;
  border-color: #000;
  color: #fff;
}
.button2::after {
  left: -100%;
  width: 250px;
  height: 56px;
}
.button2::before {
  top: -100%;
  left: 100%;
  width: 250px;
  height: 56px;
}
.button2:hover::before {
  top: -45%;
  left: 0;
  transform: rotate(15deg);
  background-color: #000;
}
.button2:hover::after {
  top: 55%;
  left: -10%;
  transform: rotate(15deg);
  background-color: #000;
}

box-shadow

Button

浮かび上がるような動きをつけています。
ボタンのベースとなるコードに、下記のコードを追加します。

HTML
<a class="btn0 button3" href="#">Button</a>
CSS
.button3 {
  position: relative;
  background: #fff;
  border-radius: 2px;
  height: 54px;
  width: 200px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
  transition: all 0.3s cubic-bezier(.25,.8,.25,1);
}
.button3:hover {
  box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 10px 10px rgba(0,0,0,0.22);
}

テキストのホバーエフェクト

テキストリンクなどで、マウスホバー時に使えそうなエフェクトです。

上下のライン

Sample text

テキストの上下に線が表示されます。
下記のコードで実装します。

HTML
<a class="line1" href="#">Sample text</a>
CSS
.line1 {
  position: relative;
  display: inline-block;
  text-decoration: none;
}
.line1::after {
  position: absolute;
  bottom: -4px;
  left: 0;
  content: '';
  width: 100%;
  height: 2px;
  background: #333;
  transform: scale(0, 1);
  transform-origin: right top;
  transition: transform .3s;
}
.line1:hover::after {
  transform-origin: left top;
  transform: scale(1, 1);
}
.line1::before {
  position: absolute;
  top: -4px;
  right: 0;
  content: '';
  width: 100%;
  height: 2px;
  background: #333;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: transform .3s;
}
.line1:hover::before {
  transform-origin: right top;
  transform: scale(1, 1);
}
タイトルとURLをコピーしました