๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Site

[์‚ฌ์ดํŠธ ๋งŒ๋“ค๊ธฐ] ์นด๋“œ(8๊ฐœ) ์œ ํ˜• ์„น์…˜ ๋งŒ๋“ค๊ธฐ

by ์ฝ”๋”ฉ๊ณต์ฑ… 2022. 8. 9.
๋ฐ˜์‘ํ˜•

์‚ฌ์ดํŠธ ๋งŒ๋“ค๊ธฐ : ์นด๋“œ ์œ ํ˜• 02

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Figma์—์„œ ๋งŒ๋“  ์นด๋“œ ์œ ํ˜• ์„น์…˜์„ HTML๊ณผ CSS ์ฝ”๋“œ๋กœ ์˜ฎ๊ธฐ๋Š” ์ž‘์—…์„ ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
์ตœ๋Œ€ํ•œ ์›น ํ‘œ์ค€์„ ์ค€์ˆ˜ํ•˜๊ธฐ ์œ„ํ•ด ์‹œ๋งจํ‹ฑ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ด๋ฏธ์ง€ ์ถœ๋ ฅ ์‹œ figure ํƒœ๊ทธ๋กœ ๊ฐ์‹ธ๋ฉฐ, img ํƒœ๊ทธ์—์„œ alt(์„ค๋ช…)์นธ์— ๋ถ€์—ฐ ์„ค๋ช…์„ ๋„ฃ๋Š” ๋“ฑ์˜ ์ž‘์—…์„ ์žŠ์ง€ ๋ง๋„๋ก ํ•ฉ์‹œ๋‹ค!


Figma

๋จผ์ € ๋งŒ๋“ค๊ณ ์ž ํ•˜๋Š” ์›น ์‚ฌ์ดํŠธ์˜ ๋ชจ์–‘์„ Figma๋ผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ด์šฉํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์ด ๋งŒ๋“ค์–ด์ฃผ๋„๋ก ํ•˜์ž.
์ด๋ฒˆ์— ๋งŒ๋“ค ์›น ์‚ฌ์ดํŠธ์˜ ์œ ํ˜•์€ ์นด๋“œ(8๊ฐœ) ์œ ํ˜• ์„น์…˜์ด๋‹ค.

HTML ์†Œ์Šค

์›น ํ‘œ์ค€ ์ค€์ˆ˜๋ฅผ ์œ„ํ•ด ์‹œ๋งจํ‹ฑ ํƒœ๊ทธ๋ฅผ ์ ๊ทน ์‚ฌ์šฉํ•˜๊ณ  img ํƒœ๊ทธ์—์„œ์˜ alt ๊ธฐ๋Šฅ๋„ ์ ๊ทน ํ™œ์šฉํ•  ๊ฒƒ.
์ž์„ธํ•œ ์„ค๋ช…์€ ์•„๋ž˜ ์˜ˆ์‹œ ์ฝ”๋“œ์˜ ์ฃผ์„์ฒ˜๋ฆฌ ๋‚ด์šฉ์„ ์ฐธ์กฐํ•  ๊ฒƒ.

<body>
    <section id="cardType02" class="card__wrap gmarket section">
        <h2>ํฌํŠธํด๋ฆฌ์˜ค ๋งŒ๋“ค๊ธฐ</h2>
        <p>
            ์ทจ์—…์šฉ ํฌํŠธํด๋ฆฌ์˜ค, ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์ง€ ๊ณ ๋ฏผ๋˜์‹œ๋‚˜์š”? ๊ฑฑ์ •ํ•˜์ง€ ๋งˆ์„ธ์š”โ˜บ<br>
            ์ €ํฌ ํ•™์›์—์„œ ํฌํŠธํด๋ฆฌ์˜ค ์ œ์ž‘ ๊ณผ์ •์„ ๊ผผ๊ผผํ•˜๊ณ  ์ž์„ธํ•˜๊ฒŒ ๋‹ค ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค! 
        </p>
        <div class="card__inner container gray">
            <article class="card">
                <img src="img/card2_bg01.jpg" alt="์•„์ด๋””์–ด ์Šค์ผ€์น˜">
                <h3 class="title">์•„์ด๋””์–ด ์Šค์ผ€์น˜</h3>
                <p class="desc">
                    ๋ฌด(็„ก)์—์„œ ์œ (ๆœ‰)๋ฅผ ์ฐฝ์กฐํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋ฆฌ์„œ์น˜์™€ ์•„์ด๋””์–ด ์Šค์ผ€์น˜๋ฅผ ํ†ตํ•ด ํฌํŠธํด๋ฆฌ์˜ค๋ฅผ ๊ตฌ์„ฑํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
                </p>
                <a class="more" href="#"><span class="ir">๋” ๋ณด๊ธฐ</span></a>
            </article>
            <article class="card">
                <img src="img/card2_bg02.jpg" alt="ํŒ€ ๋งŒ๋“ค๊ธฐ">
                <h3 class="title">ํŒ€ ๋งŒ๋“ค๊ธฐ</h3>
                <p class="desc">
                    ์‹ค๋ฌด์—์„œ ํŒ€ ์›Œํฌ๋Š” ๋งค์šฐ ์ค‘์š”ํ•˜๋ฉฐ
                    ํŒ€์›๋ผ๋ฆฌ์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋Šฅ๋ ฅ๊ณผ ํ˜‘๋™๋ ฅ์ด ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค. ํŒ€ ๋งŒ๋“ค๊ธฐ๋ฅผโ€ฆ
                </p>
                <a class="more" href="#"><span class="ir">๋” ๋ณด๊ธฐ</span></a>
            </article>
            <article class="card">
                <img src="img/card2_bg03.jpg" alt="์„ค๋ฌธ ์กฐ์‚ฌ">
                <h3 class="title">์„ค๋ฌธ ์กฐ์‚ฌ</h3>
                <p class="desc">
                    ํŒ€์› ๊ตฌ์„ฑ์„ ๋งˆ์น˜๊ณ  ์ฃผ์ œ๋ฅผ ๋‹ค ์ •ํ–ˆ๋‹ค๋ฉด ๋ฐ”๊นฅ์œผ๋กœ ๋‚˜๊ฐ€ ์ง์ ‘ ์ฃผ์ œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ•œ ์„ค๋ฌธ ์กฐ์‚ฌ๋ฅผ ํ•˜๋„๋ก ํ•ฉโ€ฆ
                </p>
                <a class="more" href="#"><span class="ir">๋” ๋ณด๊ธฐ</span></a>
            </article>
            <article class="card">
                <img src="img/card2_bg04.jpg" alt="๋ฌธ์ œ ํ•ด๊ฒฐํ•˜๊ธฐ">
                <h3 class="title">๋ฌธ์ œ ํ•ด๊ฒฐํ•˜๊ธฐ</h3>
                <p class="desc">
                    ์„ค๋ฌธ ์กฐ์‚ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์‚ฌ๋žŒ๋“ค์ด ์ง๋ฉดํ•˜๋Š” ๋ฌธ์ œ์™€ ๋ถˆํŽธ ์‚ฌํ•ญ์„ ํ•ด๊ฒฐํ•  ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ํŒ€์›๋“ค๊ณผ ํ† ๋ก โ€ฆ
                </p>
                <a class="more" href="#"><span class="ir">๋” ๋ณด๊ธฐ</span></a>
            </article>
            <article class="card">
                <img src="img/card2_bg05.jpg" alt="์•„์ด๋””์–ด ๋„์ถœ">
                <h3 class="title">์•„์ด๋””์–ด ๋„์ถœ</h3>
                <p class="desc">
                    ํŒ€์›๋“ค๊ณผ์˜ ํ† ๋ก  ๋์— ์•„์ด๋””์–ด๋ฅผ ๋„์ถœํ•ด๋‚ด๋Š” ์‹œ๊ฐ„์„ ๊ฐ–์Šต๋‹ˆ๋‹ค. ํฌ์ŠคํŠธ์ž‡๋„ ๋ถ™์—ฌ๊ฐ€๋ฉด์„œ ์ฆ๊ฒ๊ฒŒ ๋ฌธ์ œโ€ฆ
                </p>
                <a class="more" href="#"><span class="ir">๋” ๋ณด๊ธฐ</span></a>
            </article>
            <article class="card">
                <img src="img/card2_bg06.jpg" alt="์™€์ด์–ดํ”„๋ ˆ์ž„ ๊ตฌ์ƒ">
                <h3 class="title">์™€์ด์–ดํ”„๋ ˆ์ž„ ๊ตฌ์ƒ</h3>
                <p class="desc">
                    ์ด์ œ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•๋„ ๋ฌด์‚ฌํžˆ ๋„์ถœํ•ด๋ƒˆ์œผ๋‹ˆ ์™€์ด์–ดํ”„๋ ˆ์ž„์„ ๊ตฌ์ƒํ•ด๋ณด๋„๋ก ํ•˜์ฃ . ์ด๋Ÿฐ ์‹์œผ๋กœ ์Šค๋งˆํŠธํฐโ€ฆ
                </p>
                <a class="more" href="#"><span class="ir">๋” ๋ณด๊ธฐ</span></a>
            </article>
            <article class="card">
                <img src="img/card2_bg07.jpg" alt="GUI ๊ตฌ์ƒ">
                <h3 class="title">GUI ๊ตฌ์ƒ</h3>
                <p class="desc">
                    Fimga๋‚˜ XD ๋“ฑ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์ด์šฉํ•˜์—ฌ GUI๋ฅผ ๊ตฌ์ƒํ•ด๋‚ด๋„๋ก ํ•ฉ์‹œ๋‹ค. ์œ„์™€ ๊ฐ™์ด ์Šค๋งˆํŠธํฐ์œผ๋กœ ํ…Œ์Šคโ€ฆ
                </p>
                <a class="more" href="#"><span class="ir">๋” ๋ณด๊ธฐ</span></a>
            </article>
            <article class="card">
                <img src="img/card2_bg08.jpg" alt="์ฝ”๋”ฉ ์ž‘์—…">
                <h3 class="title">์ฝ”๋”ฉ ์ž‘์—…</h3>
                <p class="desc">
                    ์ด์ œ ์ฝ”๋”ฉ์„ ํ†ตํ•ด ์•ฑ ์Šคํ† ์–ด์— ์ถœ์‹œ๋œ ์•ฑ๋“ค๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์„œ๋น„์Šค๋ฅผ ์‹ค์ฒดํ™”์‹œ์ผœ๋ณด๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ํŒ€์›๋“ค๊ณผโ€ฆ
                </p>
                <a class="more" href="#"><span class="ir">๋” ๋ณด๊ธฐ</span></a>
            </article>
        </div>
    </section>
</body>

CSS ์†Œ์Šค

reset์—์„œ margin๊ฐ’๊ณผ padding๊ฐ’์„ 0์œผ๋กœ ์ดˆ๊ธฐํ™” ์‹œํ‚ค๋Š” ์ž‘์—…๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.
์ž์„ธํ•œ ์„ค๋ช…์€ ์•„๋ž˜ ์˜ˆ์‹œ ์ฝ”๋“œ์˜ ์ฃผ์„์ฒ˜๋ฆฌ๋œ ๋‚ด์šฉ์„ ์ฐธ์กฐํ•  ๊ฒƒ.

<style>
    /* fonts */
    @import url('https://webfontworld.github.io/gmarket/GmarketSans.css');

    .gmarket {
        font-family: 'GmarketSans';
        font-weight: 500;
    }

    /* reset */
    * {
        margin: 0;
        padding: 0;
    }
    h1, h2, h3, h4, h5, h6 {
        font-weight: normal;
    }
    a {
        text-decoration: none;
        color: #000;
    }
    img {
        width: 100%;    /* ์ด๋ฏธ์ง€ ํŠ€์–ด๋‚˜์˜จ ๊ฑฐ ์ง‘์–ด๋„ฃ๊ธฐ */
    }

    /* common */
    .container {
        width: 1160px;
        padding: 0 20px;
        margin: 0 auto;
        min-width: 1160px;  /* ๋ฐ˜์‘ํ˜• ํ•  ๋•Œ ์—†์• ์ค„ ๊ฒƒ */
    }
    .section {
        padding: 120px 0;
    }
    .section > h2 {
        font-size: 50px;
        line-height: 1;
        text-align: center;
        margin-bottom: 20px;
    }
    .section > p {
        font-size: 22px;
        font-weight: 300;
        text-align: center;
        margin-bottom: 70px;
        color: #666;
    }
    /* .gray {
        background-color: #f5f5f5;
    } 
    ์นด๋“œ ์˜์—ญ์ด ์ž˜ ๋“ค์–ด์™”๋Š”์ง€ ํ…Œ์ŠคํŠธํ•˜๋Š” ์šฉ๋„. ํ…Œ์ŠคํŠธ ๋งˆ์น˜๋ฉด ์ฃผ์„์ฒ˜๋ฆฌํ•˜๊ธฐ
    */

    /* ir ํšจ๊ณผ (์ด๋ฏธ์ง€ ๋Œ€์ฒด ํšจ๊ณผ == alt) */
    /* ํ™”๋ฉด์ƒ์—์„œ๋Š” ์•ˆ๋‚˜์˜ค๊ฒŒ ํ•จ๊ณผ ๋™์‹œ์— ์Šคํฌ๋ฆฐ๋ฆฌ๋”๊ธฐ์—๋Š” ์ฝํžˆ๊ฒŒ ํ•˜๋Š” ์ž‘์—… */
    .ir {
        display: block;
        overflow: hidden;
        font-size: 0;
        line-height: 0;
        text-indent: -9999px;
    }

    /* cardType02 */
    .card__inner {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
    }
    .card__inner .card {
        width: 24%;
        position: relative;     /* .more ํฌ์ง€์…˜ ๊ธฐ์ค€์  */
    }
    .card__inner .card:first-child {
        margin-bottom: 50px;
    }
    .card__inner .card img {
        margin-bottom: 20px;
        border-radius: 10px;
    }
    .card__inner .card .title {
        font-size: 28px;
        margin-bottom: 10px;
        /* ํ•œ ์ค„ ํšจ๊ณผ */
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
        padding-right: 30px;    /* ์ œ๋ชฉ ๊ธธ์–ด์ ธ๋„ ํ•œ ์ค„ ์œ ์ง€ */
    }
    .card__inner .card .desc {
        font-size: 18px;
        font-weight: 300;
        line-height: 1.4;
        color: #666;
        /* 3์ค„ํšจ๊ณผ : ๊ธ€์ด ๋„˜์ณ๋„ 3์ค„์„ ๋„˜์ง€ ์•Š๋„๋ก ํ•ด์คŒ */
        overflow: hidden;
        text-overflow: ellipsis;
        display: -webkit-box;
        -webkit-line-clamp: 3; 
        -webkit-box-orient: vertical;
    }
    .card__inner .card .more {
        width: 24px;
        height: 24px;
        background-image: url(img/arrow.svg);
        display: block;     /* 24x24 ์‚ฌ์ด์ฆˆ ์žก๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ */
        position: absolute;
        right: 0;
        top: 230px;
        border-radius: 5px;
    }
</style>

์ตœ์ข… ๊ฒฐ๊ณผ

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€


Reference Book

JavaScript
HTML
CSS
๊ด‘๊ณ  ์ค€๋น„์ค‘์ž…๋‹ˆ๋‹ค.