Quantcast
Channel: CSSタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8766

3カラム横並びカードレイアウトのコーディング

$
0
0

はじめに

スクリーンショット 2020-09-22 23.10.01.png

WEB制作をしていると、こんな感じのカードレイアウトを作成することがあるので、コピペできるようにメモしておきます。

なるべく使い回しができるようにしていきますが、もっと汎用性高くできるわ!って人はお声掛けください。

まずはカード本体を作る

HTML

<divclass="card"><divclass="card__wrapper"><divclass="card__img-box"><imgsrc="https://cdn.pixabay.com/photo/2020/08/27/10/24/water-5521696_960_720.jpg"alt=""class="card__img-item"/></div><divclass="card__content"><h3class="card__ttl">ダミーテキスト</h3><pclass="card__txt">ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストが入ります。
        </p><pclass="card__txt">ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストが入ります。
        </p></div></div></div>

CSS(SCSS)

.card{&__wrapper{background-color:#fff;box-shadow:5px5px5px#999;}&__img-box{position:relative;width:100%;padding-top:55%;overflow:hidden;}&__img-item{width:100%;position:absolute;top:50%;transform:translate(0,-50%);}&__content{padding:20px;>*:last-child{margin-bottom:0;}}&__ttl{font-size:20px;margin-bottom:15px;font-weight:700;}&__txt{font-size:16px;}}

まずはカード本体を作成します。
「> *:last-child」の部分で何をしているかというと、仮にダミーテキストがなくなってタイトルだけになった場合にmargin-bottomを消してくれるようにしています。

こういうレイアウトのときに画像を背景でよく置くのですが、今回はコンテンツとして表示するという意識をもってあえてimgタグで置いています。
この方が背景よりも若干SEO的に有利になります。

また、背景でおくとCMS導入の際にHTMLにCSSで「background-image」を指定することになるのが自分的にあまり好きじゃないです…

横並びにする

<divclass="cards cards--col3">  ~繰り返す~
    <divclass="card"><divclass="card__wrapper"><divclass="card__img-box"><imgsrc="https://cdn.pixabay.com/photo/2020/08/27/10/24/water-5521696_960_720.jpg"alt=""class="card__img-item"/></div><divclass="card__content"><h3class="card__ttl">ダミーテキスト</h3><pclass="card__txt">ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストが入ります。
          </p><pclass="card__txt">ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストが入ります。
          </p></div></div>  ~ここまで繰り返す~
    </div></div>

.cardのスタイルはそのままで、プラスして

CSS(SCSS)

.cards{display:flex;flex-wrap:wrap;align-items:center;margin:0-15px-30px;}.cards>.card{padding:015px;margin-bottom:30px;}.cards--col3>.card{width:33.33333%;}

こんな感じです。
.cardsの部分で、ネガティブマージンを指定しているのはカード間にできるガターを打ち消すためです。
.card自体にはwidthは決めずに、親要素直下のcardに指定することで4カラムになった時でも、2カラムでもその都度対応できるかと思います。

まとめ

こんな感じで、コーディングに時間をかけて行きたくないので、ちょっとずつ貯めていきたいです。


Viewing all articles
Browse latest Browse all 8766

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>