忍者CODE

ログイン

5
カード要素を並べてみよう

PHPの問題

HTML_CSS

完了にする!
問題
ブログなどの一覧画面でよく使うカード要素の並び替えを作成してみよう。
カードの中身は、タイトル/img/本文で構成しよう。
横に3つのカードを配置していきます。

HTML/CSSファイルに追記してください
カードの左右の幅は8pxで、上下は16px空けてみましょう
また、見本のようにカードが8つだった際に左詰にしていきましょう。
自分の環境に書くコード
              <section>
    <ul class="card-wrap">
        <li class="card">
            <h2 class="card__title">カードのタイトル</h2>
            <div class="card__img"></div>
            <div class="card__text">
                <p>カードのテキストが入ります</p>
                <p>カードのテキストが入ります</p>
                <p>カードのテキストが入ります</p>
                <p>カードのテキストが入ります</p>
            </div>
        </li>
        <li class="card">
            <h2 class="card__title">カードのタイトル</h2>
            <div class="card__img"></div>
            <div class="card__text">
                <p>カードのテキストが入ります</p>
                <p>カードのテキストが入ります</p>
                <p>カードのテキストが入ります</p>
                <p>カードのテキストが入ります</p>
            </div>
        </li>
        <li class="card">
            <h2 class="card__title">カードのタイトル</h2>
            <div class="card__img"></div>
            <div class="card__text">
                <p>カードのテキストが入ります</p>
                <p>カードのテキストが入ります</p>
                <p>カードのテキストが入ります</p>
                <p>カードのテキストが入ります</p>
            </div>
        </li>
        <li class="card">
            <h2 class="card__title">カードのタイトル</h2>
            <div class="card__img"></div>
            <div class="card__text">
                <p>カードのテキストが入ります</p>
                <p>カードのテキストが入ります</p>
                <p>カードのテキストが入ります</p>
                <p>カードのテキストが入ります</p>
            </div>
        </li>
        <li class="card">
            <h2 class="card__title">カードのタイトル</h2>
            <div class="card__img"></div>
            <div class="card__text">
                <p>カードのテキストが入ります</p>
                <p>カードのテキストが入ります</p>
                <p>カードのテキストが入ります</p>
                <p>カードのテキストが入ります</p>
            </div>
        </li>
        <li class="card">
            <h2 class="card__title">カードのタイトル</h2>
            <div class="card__img"></div>
            <div class="card__text">
                <p>カードのテキストが入ります</p>
                <p>カードのテキストが入ります</p>
                <p>カードのテキストが入ります</p>
                <p>カードのテキストが入ります</p>
            </div>
        </li>
        <li class="card">
            <h2 class="card__title">カードのタイトル</h2>
            <div class="card__img"></div>
            <div class="card__text">
                <p>カードのテキストが入ります</p>
                <p>カードのテキストが入ります</p>
                <p>カードのテキストが入ります</p>
                <p>カードのテキストが入ります</p>
            </div>
        </li>
        <li class="card">
            <h2 class="card__title">カードのタイトル</h2>
            <div class="card__img"></div>
            <div class="card__text">
                <p>カードのテキストが入ります</p>
                <p>カードのテキストが入ります</p>
                <p>カードのテキストが入ります</p>
                <p>カードのテキストが入ります</p>
            </div>
        </li>
    </ul>
</section>
¥HTML¥
            
              .card {
    border: 1px solid;
}
.card__title {
    font-weight: bold;
    padding: 8px;
}
.card__text {
    padding: 10px;
}
.card__img {
    width: 100%;
    height: 100px;
    background-color: #0e6edf;
}
¥CSS¥
            
期待する画面
ログインして解答を見る
コードのアイコン

解答ソースコード

              <section>
        <ul class="card-wrap">
            <li class="card">
                <h2 class="card__title">カードのタイトル</h2>
                <div class="card__img"></div>
                <div class="card__text">
                    <p>カードのテキストが入ります</p>
                    <p>カードのテキストが入ります</p>
                    <p>カードのテキストが入ります</p>
                    <p>カードのテキストが入ります</p>
                </div>
            </li>
            <li class="card">
                <h2 class="card__title">カードのタイトル</h2>
                <div class="card__img"></div>
                <div class="card__text">
                    <p>カードのテキストが入ります</p>
                    <p>カードのテキストが入ります</p>
                    <p>カードのテキストが入ります</p>
                    <p>カードのテキストが入ります</p>
                </div>
            </li>
            <li class="card">
                <h2 class="card__title">カードのタイトル</h2>
                <div class="card__img"></div>
                <div class="card__text">
                    <p>カードのテキストが入ります</p>
                    <p>カードのテキストが入ります</p>
                    <p>カードのテキストが入ります</p>
                    <p>カードのテキストが入ります</p>
                </div>
            </li>
            <li class="card">
                <h2 class="card__title">カードのタイトル</h2>
                <div class="card__img"></div>
                <div class="card__text">
                    <p>カードのテキストが入ります</p>
                    <p>カードのテキストが入ります</p>
                    <p>カードのテキストが入ります</p>
                    <p>カードのテキストが入ります</p>
                </div>
            </li>
            <li class="card">
                <h2 class="card__title">カードのタイトル</h2>
                <div class="card__img"></div>
                <div class="card__text">
                    <p>カードのテキストが入ります</p>
                    <p>カードのテキストが入ります</p>
                    <p>カードのテキストが入ります</p>
                    <p>カードのテキストが入ります</p>
                </div>
            </li>
            <li class="card">
                <h2 class="card__title">カードのタイトル</h2>
                <div class="card__img"></div>
                <div class="card__text">
                    <p>カードのテキストが入ります</p>
                    <p>カードのテキストが入ります</p>
                    <p>カードのテキストが入ります</p>
                    <p>カードのテキストが入ります</p>
                </div>
            </li>
            <li class="card">
                <h2 class="card__title">カードのタイトル</h2>
                <div class="card__img"></div>
                <div class="card__text">
                    <p>カードのテキストが入ります</p>
                    <p>カードのテキストが入ります</p>
                    <p>カードのテキストが入ります</p>
                    <p>カードのテキストが入ります</p>
                </div>
            </li>
            <li class="card">
                <h2 class="card__title">カードのタイトル</h2>
                <div class="card__img"></div>
                <div class="card__text">
                    <p>カードのテキストが入ります</p>
                    <p>カードのテキストが入ります</p>
                    <p>カードのテキストが入ります</p>
                    <p>カードのテキストが入ります</p>
                </div>
            </li>
            <li class="card dammy"></li>
            <li class="card dammy"></li>
            <li class="card dammy"></li>
        </ul>
    </section>
¥HTML¥
            
              ul,li {
  list-style: none;
}
.card-wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}
.card {
    border: 1px solid;
    margin-right: 8px;
    margin-bottom: 16px;
    width: calc((100% / 3) - 8px);
}
.card.dammy {
    border: none;
}
.card:nth-child(3n) {
    margin-right: 0;
}
.card__title {
    font-weight: bold;
    font-size: 16px;
    padding: 8px;
}
.card__text {
    padding: 8px;
    font-size: 12px;
}
.card__img {
    width: 100%;
    height: 100px;
    background-color: #0e6edf;
}
¥CSS¥
            
答えのアイコン

解説

カード配列の際も中級2の技術をそのまま持ってきて大丈夫です。
カードを囲っているliに対して幅を決めていきましょう。

そして、しっかりとcalcを使ってカードの幅を最適化して並べていきましょう。
また、最後の列を左詰にするのはjustify-content: center;を使用していると、最後のカードが中央寄りになってしまうため、空タブを使用していきましょう。

今回は3列のカードで配置されていますので、カードの3の倍数に対してmarginを0にしてあげます。
そうすることで左右の隙間が飽きます。指定の仕方はnth-child(3n)

liの最後に<li class="card dammy"><li> を3つ記述してください。
そして、この.dammyに対してボーダーを削除してあげると左詰になります。wordpressなどのCMSが絡むとカードの個数が未知数になりますがこの方法で左詰めが実現できます。
twitterのアイコン
活動記録をTweetする
1.HTMLの宣言をしてみよう
続きの動画を見たい方は公式LINEから「HTML」と送信すると動画が見れます。

甲賀

なら実務レベルで使えるスキルを
体系的に学ぶことが可能です

Web制作学習は、決して楽ではありませんが
「正しい方向で」「コツコツ」と続ければ、
必ずスキルアップする事が可能です。

甲賀では、挫折せずに学習を継続するための
カリキュラム・サポート体制をご用意しています。

↓↓↓↓

ステップバイステップで
着実にスキルが身につくカリキュラム

  • step 01
    初心者でもよく分かる!
    Web制作の基礎の基礎
    • 1.知っておこうWeb制作に関する基礎知識の話

    • 2.HTMLの書き方や役割を基礎から学ぶマークアップ入門

    • 3.CSSで挫折しない為の基礎学習【超重要プロパティ】

    • 4.基礎を終えたらHTMLコーディングを鍛えよう(デザインから)

    • 5.初心者向けHTMLコーディング完全解説(STEP1総まとめ)

  • step 02
    真似して覚えるWeb制作
    (デザイン〜プログラミングまで)
    • 1.属性ってなに?などなどHTML,CSSの深堀り編

    • 2.デザイナーから直接学ぶ猫ちゃんサイトのデザイン解説

    • 3.鎧模写-YOROIMOSYA【銅の鎧】

    • 4.JavaScriptで学ぶプログラミングの基本のきほん【16項目】

  • step 03
    動きをつけたり、効率化!
    脱初心者を目指すためのスキルを学ぼう
    • 1.jQueryの基本的な使い方から応用まで【プラグイン解説あり】

    • 2.Web制作でCSSを簡単に書くためのSASS入門【小技あり】

    • 3.現場で使うCSS設計の考え方参考サイトを元に解説

    • 4.生のJavaScriptだけで英単語アプリを作ろう(音声読み上げ付き)

  • step 04
    ここまでくれば中級者!
    ちょこっと応用編のWeb制作
    • 1.JavaScriptの屋敷【鳳凰の間】

    • 2.JavaScriptで作るLINE風チャットボット

    • 3.コマンドラインとアプリ操作を同時に学べるGit【15選】

    • 4.EJSを使いコーディング力を中級者まで引き上げる

  • step 05
    実務で必須の制作スキル
    WordPressについて学ぶ
    • 1.鎧模写-YOROIMOSYA【銀の鎧】

    • 2.PHPを基礎から学びたい人向け14項目から学ぶ【入門】

    • 3.PHPで簡易的な掲示板を作ってみよう【コーディングあり】

    • 4.甘えを吹き飛ばす!WordPress開発

    • 5.WordPressで¥400,000の案件を徹底解説!

    • 6.WordPress有料テーマSnow Monkeyの解体書

甲賀を詳しく見る

プログラミングスキルが
一気に上がる!
有料級の解説動画19本
を今なら無料でGETできる!

忍者CODEの公式LINE登録後
LINE内にあるURLよりご覧になれます

  • プログラミング本気で学習してる方
  • もちろん完全無料で且つ手続き不要
  • 将来プログラミングで稼ぎたい方
  • 動画解説で真剣に学びたい方
スキルアップ動画をGET