コピペでできる!css gridのsubgridを使った子要素の高さを揃えたカードレイアウト

CSS HTML
 

cssの「grid」については、たくさんの記事もあるし、普通に使われていると思うのですが、
中でも「subgrid」を使ったら、今まで色々面倒だった、カードレイアウトのボタン位置揃える問題が非常に簡単だよということで。
「subgrid」については、多くの記事が出ていますのでそちらにお任せします。

browser:  ✔︎ ✔︎ ✔︎ 

css gridのsubgridを使った子要素の高さを揃えたカードレイアウト

ニャン易度

タイトル1タイトル1タイトル1タイトル1

吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。

記事を見る

タイトル2タイトル2

何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで始めて人間というものを見た。

記事を見る
<div class="cp_container">
  <div class="cp_carditem">
    <div class="cp_img"><img src="/sample9.jpg" alt=""></div>
    <h2>タイトル1タイトル1タイトル1タイトル1</h2>
    <p>吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。</p>
    <a href="" class="cp_button">記事を見る</a>
    </div>
  <div class="cp_carditem">
    <div class="cp_img"><img src="sample9.jpg" alt=""></div>
    <h2>タイトル2タイトル2</h2>
    <p>何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで始めて人間というものを見た。</p>
    <a href="" class="cp_button">記事を見る</a>
  </div>
</div>
.cp_container {
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* 2つのカラムを設定 */
  grid-template-rows: auto;
  gap: 20px; /* ブロック間の隙間 */
}
.cp_carditem {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 4; /* 4行分のスペースを占めるように調整 */
  gap: 10px; /* 子要素のブロック間の隙間 */
}
/* 以下ブロックの装飾 */
.cp_carditem {
  border-radius: 5px;
  overflow: hidden;
  min-width: 200px;
  background: #fff;
  filter: drop-shadow(2px 2px 3px #ededed);
}
.cp_img {
  line-height: 0;
}
.cp_img img{
  max-width: 100%;
  width: 100%;
  object-fit: cover;
  aspect-ratio: 16/9;
}
.cp_carditem h2 {
  font-size: 130%;
  padding: 0 20px 0;
  margin: 0;
  color: #48494e;
}
.cp_carditem p {
  padding: 0 20px 0;
  margin: 0;
  color: #8a8a8f;
}
.cp_button {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 2em;
  background: #2a4df4;
  color: #fff;
  font-weight: bold;
  text-decoration: none;
  border-radius: 5px;
  margin: 0 20px 20px;
  transition: all .3s;
}
.cp_button::before{
  content: '';
  width: 10px;
  height: 10px;
  background: #fff;
  clip-path: polygon(0 0,0 100%,60% 50%);
}
.cp_button:hover {
  background: #203bc1;
}

copypet.jp

CSS3などで新たに追加された要素・装飾方法など、日々コードを書いていないと忘れてしまったり、ささっとプロトタイプを作る時などちょっとしたことに時間をかけている暇はない。そんな時に「あ〜、あれストックしときゃよかったなぁ」って困った自分用のストックブログです。カスタマイズなどがしやすいよう、昨今のweb制作に取り入れられる一般的なコードを中心に掲載しています。

More Info

こんな記事はいかがですか?