CSSでつくるhover時に画像の中身だけが拡大されるリンクカード
ブログなどで見かける、カード状になっていて、画像とテキストがあるリンク。
マウスオーバー時に画像のサイズは変わらずに、画像の中身だけが拡大されるリンクカードを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時に画像の中身だけが拡大されるリンクカードとそのアレンジ例について紹介してきました。
参考になりましたら幸いです。
関連記事
cssの擬似要素を使って背景画像にフィルターをかける
cssの擬似要素を使って背景画像にフィルターをかける方法を紹介します。
「シンプルなリンクカードジェネレーター」の使い方
シンプルなリンクカードジェネレーターを作りましたので、使い方などについて紹介します。 シンプルなリンクカードジェネレーターは、リンクカードを作成したいページのURLを入力するとHTMLとCSSのコードを生成します。そのコードを貼り付けるだけでリンクカードを設置することができます。
コメントを残す