カード型一覧 レスポンシブで 3列 2列 1列に変化 ラベル付き

タップで読みたいところにジャンプします

一覧 カード型 仕様

カードはPCでは3枚横並び、タブレットで2枚横並び、スマホで1枚。

リセットcss使用。リスタイルもしているよ。

疑似要素は使ってないよ。

バージョン1とほとんど変わらないからブログに残さなくてもいいかと思ったけど、一応残しておく~。

HTMLのコード(一部)

<ul class="areaCard">
  <li class="areaCard__card card">
    <div class="card__areaImage">
      <img class="card__cardImage" src="./img/pasta_calbo.jpg" alt="">
      <div class="card__cardLabel"><span>単品</span></div><!-- card__cardLabel -->
    </div><!-- .card__areaImage -->
    <div class="card__areaNote">
      <div class="card__cardTitle">
        カルボナーラ
      </div><!-- .card__cardTitle -->
      <div class="card__cardNote">
        濃厚なクリームチーズとさわやかなブルーベリーソースのハーモニーが楽しめるケーキ
      </div><!-- .card__cardNote -->
    </div><!-- card__areaNote -->
  </li><!-- areaCard__card -->
</ul><!-- areaCard -->

SCSSファイル

リセットcss 関係するコードのみ

/* Reset image and restyle */
/******************************************/
img {
  width: 100%;
  height: 100%;
  vertical-align: bottom;
  object-fit: cover;
}

cssコード

/* セクション カード 複数列
/******************************************/

.areaCard {
  width: 94%;
  margin-left: auto;
  margin-right: auto;

  display: flex;
  flex-wrap: wrap;
}

.card {
  margin-top: 24px;
  margin-right: 24px;
  width: calc((100% - 48px) / 3);
  box-shadow: 0 3px 6px rgba(#000, 0.16);

  padding: 16px;
  background-color: #fff;

  &:nth-child(3n) {
    margin-right: 0;
  }

  @include mixin.responsive(md) {
    width: calc((100% - 24px) / 2);

    &:nth-child(n) {
      margin-right: 24px;
    }

    &:nth-child(2n) {
      margin-right: 0;
    }

  }

  @include mixin.responsive(sm) {
    width: 100%;

    &:nth-child(n) {
      margin-right: 0;
    }
  }

  &__areaImage {
    aspect-ratio: 16/9;
    position: relative;
    font-size: 12px;
    line-height: 24px;
    text-align: center;
  }

  &__cardLabel {
    width: 100px;
    height: 24px;
    background-color:variable.$bright1_color;
    color: #fff;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 10;
  }


&__areaNote {
  // height: 315px;
  display: flex;
  flex-direction: column;
  // background-color: #fff;
}

&__cardTitle {
  margin-top: 16px;
  font-size: 20px;
  font-weight: bold;
}

&__cardNote {
  margin-top: 16px;
  margin-bottom: auto;
  font-weight: bold;
  overflow-y: hidden;
}

}

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

タップで読みたいところにジャンプします