はじめに

以下の記事では、おすすめカードを折り返し表示させる方法を紹介しています。
しかし、余白や画面幅の調整が複雑で、記述や設定が少し分かり難い印象があります。
そこで、画面幅やカード数に応じてカード幅を自動調整しながら綺麗に折り返されるよう改善します。
この記事では、この方法について説明します。
完成イメージ

実装手順
以下のコードをstyle.cssに追加します。
/* カード幅のデフォルト設定(最大5列基準) */
.recommended {
--column: 5;
--gap: 0px;
/* おすすめカード毎の余白 */
&.rcs-card-margin {
--gap: 15px;
}
.navi-entry-cards {
/* カードが4枚以下 */
&:has(> :last-child:nth-child(-n+4)) {
--column: 4;
}
/* カードが3枚以下 */
&:has(> :last-child:nth-child(-n+3)) {
--column: 3;
}
a {
margin: 0;
width: calc((100% - var(--gap) * (var(--column) - 1)) / var(--column));
}
}
}
.body .recommended .navi-entry-cards {
flex-wrap: wrap;
gap: var(--gap);
@media (width <= 1023px) {
--column: 3 !important;
}
@media (width <= 834px) {
--column: 2 !important;
}
}
さいごに
今回紹介した方法を使えば、おすすめカードの幅を自動調整し、カード数に応じて折り返し表示させることができます。
画面幅に応じたレスポンシブ対応も可能で、少ないカードは幅を広く、大量のカードも最大列数に制限して整然と表示できます。



