CSSでつくるhover時に画像の中身だけが拡大されるリンクカード

HTML/CSS

ブログなどで見かける、カード状になっていて、画像とテキストがあるリンク。
マウスオーバー時に画像のサイズは変わらずに、画像の中身だけが拡大されるリンクカードをhtml/cssで作ったので記述例などを紹介します。

記述例の紹介

画像自体のサイズが変わらないように画像に「overflow: hidden;」を設定しておき、hover時に画像を「transform: scale(1.1);」で拡大させています。

See the Pen
NWqEmeN
by saku (@web-saku)
on CodePen.

記述例は以下のようになります。

・HTML

<a class="card" href="">
  <div class="left">
    <figure><img src="https://web-saku.net/wp-content/uploads/2020/03/sunset.jpg"></figure>
  </div>
  <div class="right">
    <p class="upper">記事タイトル この記事はこれだ!</p>
    <p class="lower">記事の概要記事の抜粋記事の内容のサンプルテキストサンプルテキストサンプルテキスト。</p>
  </div>
</a>

・CSS

.card {
  display: flex;
  justify-content: space-between;
  width: 600px;
  margin: 20px auto;
  height: 170px;
  border: 1px solid #333;
  color: #333;
  text-decoration: none;
}

figure {
  width: 150px;
  height: 150px;
  margin: 10px;
  overflow: hidden;
}

figure img {
  width: 100%;
  height: 100%;
  transition: .4s;
}

a:hover figure img {
    transform: scale(1.1);
}

a:hover {
  text-decoration: underline;
}

.right p {
  margin: 0;
  padding: 10px 20px;
}

.upper {
  font-size: 110%;
  font-weight: 600;
  padding-bottom: 20px;
}

アレンジの紹介

hover時に追加で少し暗めのフィルターをかけて、文字が表示されるように少しアレンジを加えてみました。
フィルターと文字は擬似要素を使って表示させています。

See the Pen
poJqJXO
by saku (@web-saku)
on CodePen.

CSSの記述例は以下のようになります。(HTMLは一番目のもの同じです。)

・CSS

.card {
  display: flex;
  justify-content: space-between;
  width: 600px;
  margin: 20px auto;
  height: 170px;
  border: 1px solid #333;
  color: #333;
  text-decoration: none;
}

figure {
  width: 150px;
  height: 150px;
  margin: 10px;
  overflow: hidden;
  position: relative;
}

figure img {
  width: 100%;
  height: 100%;
  transition: .4s;
}

figure::after {
  content: 'Read More';
  font-size: 16px;
  letter-spacing: .2em;
  text-align: center;
  padding-top: 41%;
  color: #fff;
  width: 100%;
  height: 100%;
  display: block;
  background: rgba(0,0,0,.4);
  transition: .8s;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
}

a:hover figure::after {
  opacity: 1;
}

a:hover figure img {
    transform: scale(1.1);
}

a:hover {
  text-decoration: underline;
}

.right p {
  margin: 0;
  padding: 10px 20px;
}

.upper {
  font-size: 110%;
  font-weight: 600;
  padding-bottom: 20px;
}

まとめ

以上、hover時に画像の中身だけが拡大されるリンクカードとそのアレンジ例について紹介してきました。
参考になりましたら幸いです。

関連記事

コメントを残す





このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください