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

[์‚ฌ์ดํŠธ ๋งŒ๋“ค๊ธฐ] ํ…์ŠคํŠธ ์œ ํ˜• 01

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

์‚ฌ์ดํŠธ ๋งŒ๋“ค๊ธฐ : ํ…์ŠคํŠธ ์œ ํ˜• STUDY 01

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Figma์—์„œ ๋งŒ๋“  ํ…์ŠคํŠธ ์œ ํ˜• ์„น์…˜์„ HTML๊ณผ CSS ์ฝ”๋“œ๋กœ ์˜ฎ๊ธฐ๋Š” ์ž‘์—…์„ ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
์•„์ด์ฝ˜ ์ถœ๋ ฅ์€ ์•„์ด์ฝ˜์ด ๋“ค์–ด๊ฐˆ ์›์„ ๋จผ์ € ์ฝ”๋”ฉ์œผ๋กœ ๋งŒ๋“ค์–ด ๋‚ธ ํ›„, ์•„์ด์ฝ˜์„ ์ด๋ฏธ์ง€ ์Šคํ”„๋ผ์ดํŠธ ๊ธฐ๋ฒ•์œผ๋กœ ์› ์•ˆ์— ๋„ฃ๋Š” ์‹์œผ๋กœ ์ฝ”๋”ฉ์„ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.


Figma

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

HTML ์†Œ์Šค

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

<body>
    <section id="cardType01" class="card__wrap nexon section">
        <p>ํ…์ŠคํŠธ ์œ ํ˜• 01</p>
        <h2>์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•ด ๋ถ„์„ํ•˜์ž</h2>
        <div class="card__inner container">
            <article class="card">
                <div class="card__body">
                    <span id="card__icon" class="icon__logo1" aria-hidden="๋ถ„์„ํ•˜๊ธฐ">
                        <a href="#" class="link1"><span class="ir">๋ถ„์„ํ•˜๊ธฐ</span></a>
                    </span>
                    <h3 class="title">๋ถ„์„ํ•˜๊ธฐ</h3>
                    <p class="desc">
                        ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ธฐ๋ณธ ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์–ด์ฉŒ๊ตฌ์ €์ฉŒ๊ตฌ ์ƒฌ๋žด์ƒฌ๋ผ ์ƒฌ๋žด์ƒฌ๋ผ์ƒฌ๋žด์ƒฌ๋ผ ์ƒฌ๋žด์ƒฌ๋ผ ์ƒฌ๋žด์ƒฌ๋ผ์ƒฌ๋žด์ƒฌ๋ผ ์ƒฌ๋žด์ƒฌ๋ผ ๋ถ„์„ํ•ฉ์‹œ๋‹ค.
                    </p>
                    <a href="#" class="more">
                        ๋” ๋ณด๊ธฐ
                    </a>
                </div>
            </article>
            <article class="card">
                <div class="card__body">
                    <span id="card__icon" class="icon__logo2" aria-hidden="๋ถ„์„ํ•˜๊ธฐ">
                        <a href="#" class="link2"><span class="ir">๋ถ„์„ํ•˜๊ธฐ</span></a>
                    </span>
                    <h3 class="title">๋ฆฌ์„œ์น˜ํ•˜๊ธฐ</h3>
                    <p class="desc">
                        ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ธฐ๋ณธ ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์–ด์ฉŒ๊ตฌ์ €์ฉŒ๊ตฌ ์ƒฌ๋žด์ƒฌ๋ผ ์ƒฌ๋žด์ƒฌ๋ผ์ƒฌ๋žด์ƒฌ๋ผ ์ƒฌ๋žด์ƒฌ๋ผ ์ƒฌ๋žด์ƒฌ๋ผ์ƒฌ๋žด์ƒฌ๋ผ ์ƒฌ๋žด์ƒฌ๋ผ ๋ถ„์„ํ•ฉ์‹œ๋‹ค.
                    </p>
                    <a href="#" class="more">
                        ๋” ๋ณด๊ธฐ
                    </a>
                </div>
            </article>
            <article class="card">
                <div class="card__body">
                    <span id="card__icon" class="icon__logo3" aria-hidden="๋ถ„์„ํ•˜๊ธฐ">
                        <a href="#" class="link3"><span class="ir">๋ถ„์„ํ•˜๊ธฐ</span></a>
                    </span>
                    <h3 class="title">์กฐ์‚ฌํ•˜๊ธฐ</h3>
                    <p class="desc">
                        ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ธฐ๋ณธ ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์–ด์ฉŒ๊ตฌ์ €์ฉŒ๊ตฌ ์ƒฌ๋žด์ƒฌ๋ผ ์ƒฌ๋žด์ƒฌ๋ผ์ƒฌ๋žด์ƒฌ๋ผ ์ƒฌ๋žด์ƒฌ๋ผ ์ƒฌ๋žด์ƒฌ๋ผ์ƒฌ๋žด์ƒฌ๋ผ ์ƒฌ๋žด์ƒฌ๋ผ ๋ถ„์„ํ•ฉ์‹œ๋‹ค.
                    </p>
                    <a href="#" class="more">
                        ๋” ๋ณด๊ธฐ
                    </a>
                </div>
            </article>
        </div>
        <div class="card__inner container">
            <article class="card">
                <div class="card__body">
                    <span id="card__icon" class="icon__logo4" aria-hidden="๋ถ„์„ํ•˜๊ธฐ">
                        <a href="#" class="link4"><span class="ir">๋ถ„์„ํ•˜๊ธฐ</span></a>
                    </span>
                    <h3 class="title">๋ฆฌ์„œ์น˜ํ•˜๊ธฐ</h3>
                    <p class="desc">
                        ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ธฐ๋ณธ ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์–ด์ฉŒ๊ตฌ์ €์ฉŒ๊ตฌ ์ƒฌ๋žด์ƒฌ๋ผ ์ƒฌ๋žด์ƒฌ๋ผ์ƒฌ๋žด์ƒฌ๋ผ ์ƒฌ๋žด์ƒฌ๋ผ ์ƒฌ๋žด์ƒฌ๋ผ์ƒฌ๋žด์ƒฌ๋ผ ์ƒฌ๋žด์ƒฌ๋ผ ๋ถ„์„ํ•ฉ์‹œ๋‹ค.
                    </p>
                    <a href="#" class="more">
                        ๋” ๋ณด๊ธฐ
                    </a>
                </div>
            </article>
            <article class="card">
                <div class="card__body">
                    <span id="card__icon" class="icon__logo5" aria-hidden="๋ถ„์„ํ•˜๊ธฐ">
                        <a href="#" class="link5"><span class="ir">๋ถ„์„ํ•˜๊ธฐ</span></a>
                    </span>
                    <h3 class="title">๋ถ„์„ํ•˜๊ธฐ</h3>
                    <p class="desc">
                        ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ธฐ๋ณธ ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์–ด์ฉŒ๊ตฌ์ €์ฉŒ๊ตฌ ์ƒฌ๋žด์ƒฌ๋ผ ์ƒฌ๋žด์ƒฌ๋ผ์ƒฌ๋žด์ƒฌ๋ผ ์ƒฌ๋žด์ƒฌ๋ผ ์ƒฌ๋žด์ƒฌ๋ผ์ƒฌ๋žด์ƒฌ๋ผ ์ƒฌ๋žด์ƒฌ๋ผ ๋ถ„์„ํ•ฉ์‹œ๋‹ค.
                    </p>
                    <a href="#" class="more">
                        ๋” ๋ณด๊ธฐ
                    </a>
                </div>
            </article>
            <article class="card">
                <div class="card__body">
                    <span id="card__icon" class="icon__logo6" aria-hidden="๋ถ„์„ํ•˜๊ธฐ">
                        <a href="#" class="link6"><span class="ir">๋ถ„์„ํ•˜๊ธฐ</span></a>
                    </span>
                    <h3 class="title">์ œ์ž‘ํ•˜๊ธฐ</h3>
                    <p class="desc">
                        ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ธฐ๋ณธ ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์–ด์ฉŒ๊ตฌ์ €์ฉŒ๊ตฌ ์ƒฌ๋žด์ƒฌ๋ผ ์ƒฌ๋žด์ƒฌ๋ผ์ƒฌ๋žด์ƒฌ๋ผ ์ƒฌ๋žด์ƒฌ๋ผ ์ƒฌ๋žด์ƒฌ๋ผ์ƒฌ๋žด์ƒฌ๋ผ ์ƒฌ๋žด์ƒฌ๋ผ ๋ถ„์„ํ•ฉ์‹œ๋‹ค.
                    </p>
                    <a href="#" class="more">
                        ๋” ๋ณด๊ธฐ
                    </a>
                </div>
            </article>
        </div>
    </section>
</body>

CSS ์†Œ์Šค

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

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

    .nexon {
        font-family: 'NexonLv1Gothic';
        font-weight: 400;
    }

    /* 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: 20px auto;
        min-width: 1160px;  /* ๋ฐ˜์‘ํ˜• ํ•  ๋•Œ ์—†์• ์ค„ ๊ฒƒ */
    }
    .section {
        padding: 120px 0;
    }
    .section > h2 {
        font-size: 50px;
        line-height: 1;
        text-align: center;
        margin-bottom: 70px;
    }
    .section > p {
        font-size: 16px;
        text-align: center;
        margin-bottom: 10px;
    }

    /* cardType */
    .card__inner {
        display: flex;
        justify-content: space-between;     /* ๊ฐ„๊ฒฉ ๋–จ์–ด๋œจ๋ฆฌ๊ธฐ */
    }
    .card {
        width: 32%;
        background: #f5f5f5;
    }
    #card__icon {
        width: 60px;
        height: 60px;
        display: block;
        border-radius: 100%;
        margin-bottom: 10px;
    }
    /* ์•„์ด์ฝ˜ ํ•˜๋‚˜ํ•˜๋‚˜์— ์ƒ‰๊น” ๋„ฃ์–ด์ฃผ๊ธฐ */
    .icon__logo1 {
        background-color: #ff8383;
    }
    .icon__logo2 {
        background-color: #ffbe83;
    }
    .icon__logo3 {
        background-color: #b2e295;
    }
    .icon__logo4 {
        background-color: #83b4ff;
    }
    .icon__logo5 {
        background-color: #d083ff;
    }
    .icon__logo6 {
        background-color: #83d7cd;
    }

    .card__body {
        padding: 20px;
    }
    .card__body .title {
        font-size: 24px;
        margin-bottom: 10px;
        font-weight: 500;
        /* ํ•œ ์ค„ ํšจ๊ณผ */
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
        padding-right: 30px;    /* ์ œ๋ชฉ ๊ธธ์–ด์ ธ๋„ ํ•œ ์ค„ ์œ ์ง€ */
    }
    .card__body .desc {
        font-size: 18px;
        font-weight: 300;
        line-height: 1.4;
        padding-bottom: 20px;
        color: #666;
        margin-bottom: 20px;
        /* 4์ค„ํšจ๊ณผ : ๊ธ€์ด ๋„˜์ณ๋„ 4์ค„์„ ๋„˜์ง€ ์•Š๋„๋ก ํ•ด์คŒ */
        overflow: hidden;
        text-overflow: ellipsis;
        display: -webkit-box;
        -webkit-line-clamp: 4;  /* 4์ค„๊นŒ์ง€ ์ œํ•œ */
        -webkit-box-orient: vertical;
    }
    .card__body .more {
        font-size: 18px;
        font-weight: 300;
        color: #666;
        margin-bottom: 20px;
        text-decoration: underline;
    }

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

    /* ์ด๋ฏธ์ง€ ์Šคํ”„๋ผ์ดํŠธ */
    /* ์•„์ด์ฝ˜ ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ์ด์–ด ๋งŒ๋“  ํ”„๋ ˆ์ž„์„ SVG๋กœ ์ถ”์ถœํ•˜์—ฌ ๊ทธ ์ขŒํ‘œ๊ฐ’์„ ์•„๋ž˜์™€ ๊ฐ™์ด
        ์˜ฎ๊ฒจ๊ฐ€๋ฉฐ ์•„์ด์ฝ˜ ํ•˜๋‚˜์”ฉ ๋ณด์ด๋„๋ก ํ•˜๋Š” ๊ธฐ๋ฒ• */
    #card__icon a {
        width: 30px;
        height: 30px;
        display: block;
        background: url(img/textType_icon01.svg);   /*๋งŒ๋“ค์–ด๋†“์€ ์ด๋ฏธ์ง€์Šคํ”„๋ผ์ดํŠธ์šฉ svg ๋ถˆ๋Ÿฌ์˜ค๊ธฐ*/
        padding: 15px;
    }
    /* nth-child๊ฐ€ ๋จนํžˆ์ง€ ์•Š์œผ๋‹ˆ a์˜ ํด๋ž˜์Šค๊ฐ’์„ link1, link2... ์ด๋Ÿฐ์‹์œผ๋กœ ๋ฐ”๊พธ์ž */
    #card__icon a.link1 {
        background-position: 0px 0;
    }
    #card__icon a.link2 {
        background-position: -80px 0;
    }
    #card__icon a.link3 {
        background-position: -160px 0;
    }
    #card__icon a.link4 {
        background-position: -240px 0;
    }
    #card__icon a.link5 {
        background-position: -320px 0;
    }
    #card__icon a.link6 {
        background-position: -400px 0;
    }
</style>

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

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€


Reference Book

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