CodeGym /ํ–‰๋™ /Frontend SELF KO /์˜์‚ฌ ํด๋ž˜์Šค ๊ฒฐํ•ฉ

์˜์‚ฌ ํด๋ž˜์Šค ๊ฒฐํ•ฉ

Frontend SELF KO
๋ ˆ๋ฒจ 30 , ๋ ˆ์Šจ 3
์‚ฌ์šฉ ๊ฐ€๋Šฅ

8.1 ๊ธฐ๋ณธ ๊ฐœ๋…

CSS์—์„œ ์˜์‚ฌ ํด๋ž˜์Šค์™€ ์˜์‚ฌ ์š”์†Œ๋ฅผ ๊ฒฐํ•ฉํ•˜๋ฉด ์š”์†Œ์˜ ์ƒํƒœ, ๊ตฌ์กฐ ๋ฐ ๋‚ด์šฉ์— ๋”ฐ๋ผ ์Šคํƒ€์ผ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•˜๊ณ  ์œ ์—ฐํ•œ ์„ ํƒ์ž๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด. ๋•๋ถ„์— ๋ณต์žกํ•˜๊ณ  ์—ญ๋™์ ์ธ ์Šคํƒ€์ผ์„ ์ƒ์„ฑํ•˜๊ฒŒ ๋˜๊ณ , ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ž‘ ์›น ํŽ˜์ด์ง€๋ž‘ ์ƒํ˜ธ์ž‘์šฉ ๊ฒฝํ—˜์„ ํ–ฅ์ƒ์‹œ์ผœ์ค˜.

๊ฒฐํ•ฉ์˜ ๊ธฐ์ดˆ

์˜์‚ฌ ํด๋ž˜์Šค

์˜์‚ฌ ํด๋ž˜์Šค๋Š” ์ฝœ๋ก  ํ•˜๋‚˜๋กœ ํ‘œ์‹œ๋˜๊ณ (:), ์š”์†Œ์˜ ์ƒํƒœ๋‚˜ ์œ„์น˜์— ๋”ฐ๋ผ ์ ์šฉ๋ผ. ์˜ˆ๋ฅผ ๋“ค๋ฉด:

  • :hover โ€” ์š”์†Œ์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ ธ์„ ๋•Œ ์ ์šฉ๋จ
  • :first-child โ€” ๋ถ€๋ชจ์˜ ์ฒซ ๋ฒˆ์งธ ์ž์‹์„ ์„ ํƒํ•จ

์˜์‚ฌ ์š”์†Œ

์˜์‚ฌ ์š”์†Œ๋Š” ๋‘ ๊ฐœ์˜ ์ฝœ๋ก (::)์œผ๋กœ ํ‘œ์‹œ๋˜๊ณ , ์š”์†Œ์˜ ์ผ๋ถ€๋ถ„์„ ์Šคํƒ€์ผ๋งํ•˜๊ฑฐ๋‚˜ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ผ. ์˜ˆ๋ฅผ ๋“ค๋ฉด:

  • ::before โ€” ์š”์†Œ ์•ž์— ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•จ
  • ::first-letter โ€” ์š”์†Œ์˜ ์ฒซ ๊ธ€์ž๋ฅผ ์Šคํƒ€์ผ๋งํ•จ

๊ฒฐํ•ฉํ•˜๊ธฐ

์˜์‚ฌ ํด๋ž˜์Šค์™€ ์˜์‚ฌ ์š”์†Œ๋Š” ๊ฒฐํ•ฉํ•ด์„œ ์ƒํƒœ์™€ ๊ตฌ์กฐ์— ๋”ฐ๋ผ ์Šคํƒ€์ผ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ณต์žกํ•œ ์„ ํƒ์ž๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด.

๋ฌธ๋ฒ•:

    
      ์„ ํƒ์ž:์˜์‚ฌํด๋ž˜์Šค::์˜์‚ฌ์š”์†Œ {
        ์†์„ฑ: ๊ฐ’;
      }
    
  

8.2 ์ƒํ˜ธ์ž‘์šฉ์„ ์œ„ํ•œ ๊ฒฐํ•ฉ

์˜ˆ์ œ 1: ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ ธ์„ ๋•Œ ์ฒซ ๊ธ€์ž ์Šคํƒ€์ผ๋งํ•˜๊ธฐ

์ด ์˜ˆ์ œ์—์„œ๋Š” ๋ฌธ๋‹จ์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ฆฌ๋ฉด ์ฒซ ๊ธ€์ž๊ฐ€ ์ปค์ง€๊ณ  ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ๋ณ€ํ•ด:

CSS
    
      /* ๋ฌธ๋‹จ์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ฆด ๋•Œ ์ฒซ ๋ฒˆ์งธ ๊ธ€์ž ์Šคํƒ€์ผ๋ง */

      p:hover::first-letter {
        font-size: 2em;
        color: #e74c3c;
      }
    
  
HTML
    
      <p>Hover over this paragraph to see the first letter change.</p>
    
  

์˜ˆ์ œ 2: ํฌ์ปค์Šค๊ฐ€ ์žˆ์„ ๋•Œ ๋งํฌ ์•ž์— ๋‚ด์šฉ ์ถ”๊ฐ€ํ•˜๊ธฐ

์ด ์˜ˆ์ œ์—์„œ๋Š” ๋งํฌ์— ํฌ์ปค์Šค๊ฐ€ ์žˆ์„ ๋•Œ ๋งํฌ ์•ž์— ์•„์ด์ฝ˜์„ ์ถ”๊ฐ€ํ•˜๊ณ  ํŒŒ๋ž€์ƒ‰์œผ๋กœ ๋ณ€ํ•ด:

CSS
    
      /* ํฌ์ปค์Šค๊ฐ€ ์žˆ์„ ๋•Œ ๋งํฌ ์•ž์— ์•„์ด์ฝ˜ ์ถ”๊ฐ€ */

      a:focus::before {
        content: "๐Ÿ”— ";
        color: #3498db;
      }
    
  

8.3 ๊ตฌ์กฐ ์Šคํƒ€์ผ๋ง์„ ์œ„ํ•œ ๊ฒฐํ•ฉ

์˜ˆ์ œ 3: div ์•ˆ์˜ ์ฒซ ๋ฒˆ์งธ ๋ฌธ๋‹จ์— ๋‚ด์šฉ ์ถ”๊ฐ€ํ•˜๊ธฐ

์ด ์˜ˆ์ œ์—์„œ๋Š” div ์•ˆ์˜ ์ฒซ ๋ฒˆ์งธ ๋ฌธ๋‹จ์˜ ์ฒซ ์ค„์„ ๊ตต๊ฒŒ ํ•˜๊ณ  ๋…น์ƒ‰์œผ๋กœ ๋ณ€ํ•ด:

CSS
    
      /* div ์•ˆ์˜ ์ฒซ ๋ฒˆ์งธ ๋ฌธ๋‹จ์˜ ์ฒซ ์ค„ ์Šคํƒ€์ผ๋ง */

      div p:first-child::first-line {
        font-weight: bold;
        color: #2ecc71;
      }
    
  

์˜ˆ์ œ 4: ๋ฆฌ์ŠคํŠธ์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ ๋’ค์— ์žฅ์‹ ์š”์†Œ ์ถ”๊ฐ€ํ•˜๊ธฐ

์ด ์˜ˆ์ œ์—์„œ๋Š” ๋ฆฌ์ŠคํŠธ์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ ๋’ค์— ์žฅ์‹ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ๋ณ€ํ•ด:

CSS
    
      /* ๋ฆฌ์ŠคํŠธ์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ ๋’ค์— ์žฅ์‹ ์š”์†Œ ์ถ”๊ฐ€ */

      ul li:last-child::after {
        content: "โฆ";
        display: inline-block;
        margin-left: 10px;
        color: #e74c3c;
      }
    
  

8.4 ๋ณต์žกํ•œ ์กฐ๊ฑด์„ ์œ„ํ•œ ๊ฒฐํ•ฉ

์˜ˆ์ œ 5: ์ง์ˆ˜ ๋ฆฌ์ŠคํŠธ ์š”์†Œ์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ ธ์„ ๋•Œ ์Šคํƒ€์ผ๋งํ•˜๊ธฐ

์ด ์˜ˆ์ œ์—์„œ๋Š” ์ง์ˆ˜ ๋ฆฌ์ŠคํŠธ ์š”์†Œ์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ฆฌ๋ฉด ๋ฐ์€ ํšŒ์ƒ‰ ๋ฐฐ๊ฒฝ๊ณผ ํŒŒ๋ž€์ƒ‰ ํ…์ŠคํŠธ๊ฐ€ ์ ์šฉ๋ผ:

CSS
    
      /* ์ง์ˆ˜ ๋ฆฌ์ŠคํŠธ ์š”์†Œ์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ ธ์„ ๋•Œ ์Šคํƒ€์ผ๋ง */

      ul li:nth-child(even):hover {
        background-color: #f0f0f0;
        color: #3498db;
      }
    
  

์˜ˆ์ œ 6: ๋ฐฉ๋ฌธํ•œ ์ƒํƒœ์˜ ํ™œ์„ฑ ๋งํฌ ์Šคํƒ€์ผ๋งํ•˜๊ธฐ

์ด ์˜ˆ์ œ์—์„œ๋Š” ๋ฐฉ๋ฌธํ•œ ํ›„ ํ™œ์„ฑ ์ƒํƒœ์ธ ๋งํฌ๋ฅผ ์ฃผํ™ฉ์ƒ‰์œผ๋กœ ๋ณ€ํ•˜๊ณ  ๋ฐ‘์ค„์„ ์ถ”๊ฐ€ํ•ด:

CSS
    
      /* ๋ฐฉ๋ฌธํ•œ ์ƒํƒœ์˜ ํ™œ์„ฑ ๋งํฌ ์Šคํƒ€์ผ๋ง */

      a:visited:active {
        color: #e67e22;
        text-decoration: underline;
      }
    
  

8.5 ์ „์ฒด ๊ตฌํ˜„ ์˜ˆ์ œ

CSS
    
      /* div ์•ˆ์˜ ์ฒซ ๋ฒˆ์งธ ๋ฌธ๋‹จ์˜ ์ฒซ ์ค„ ์Šคํƒ€์ผ๋ง */

      div p:first-child::first-line {
        font-weight: bold;
        color: #2ecc71;
      }

      /* ๋ฆฌ์ŠคํŠธ์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ ๋’ค์— ์žฅ์‹ ์š”์†Œ ์ถ”๊ฐ€ */

      ul li:last-child::after {
        content: "โฆ";
        display: inline-block;
        margin-left: 10px;
        color: #e74c3c;
      }

      /* ์ง์ˆ˜ ๋ฆฌ์ŠคํŠธ ์š”์†Œ์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ ธ์„ ๋•Œ ์Šคํƒ€์ผ๋ง */

      ul li:nth-child(even):hover {
        background-color: #f0f0f0;
        color: #3498db;
      }

      /* ํฌ์ปค์Šค๊ฐ€ ์žˆ์„ ๋•Œ ๋งํฌ ์•ž์— ์•„์ด์ฝ˜ ์ถ”๊ฐ€ */

      a:focus::before {
        content: "๐Ÿ”— ";
        color: #3498db;
      }

      /* ๋ฌธ๋‹จ์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ฆด ๋•Œ ์ฒซ ๋ฒˆ์งธ ๊ธ€์ž ์Šคํƒ€์ผ๋ง */

      p:hover::first-letter {
        font-size: 2em;
        color: #e74c3c;
      }
    
  
HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>์˜์‚ฌ ํด๋ž˜์Šค ๋ฐ ์˜์‚ฌ ์š”์†Œ ๊ฒฐํ•ฉ ์˜ˆ์ œ</title>
          <link rel="stylesheet" href="styles.css">
        </head>
        <body>
          <div>
            <p>์ด๊ฒƒ์€ div ์•ˆ์˜ ์ฒซ ๋ฒˆ์งธ ๋ฌธ๋‹จ์ž…๋‹ˆ๋‹ค.</p>
            <p>์ด๊ฒƒ์€ div ์•ˆ์˜ ๋‘ ๋ฒˆ์งธ ๋ฌธ๋‹จ์ž…๋‹ˆ๋‹ค.</p>
          </div>
          <ul>
            <li>๋ฆฌ์ŠคํŠธ ์š”์†Œ 1</li>
            <li>๋ฆฌ์ŠคํŠธ ์š”์†Œ 2</li>
            <li>๋ฆฌ์ŠคํŠธ ์š”์†Œ 3</li>
            <li>๋ฆฌ์ŠคํŠธ ์š”์†Œ 4</li>
          </ul>
          <a href="#">ํฌ์ปค์Šค๊ฐ€ ์žˆ์„ ๋•Œ ์•„์ด์ฝ˜์ด ์žˆ๋Š” ๋งํฌ</a>
          <p>์ฒซ ๊ธ€์ž๊ฐ€ ๋ณ€ํ•˜๋Š” ํšจ๊ณผ๋ฅผ ๋ณด๋ ค๋ฉด ์ด ๋ฌธ๋‹จ ์œ„๋กœ ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ ค๋ณด์„ธ์š”.</p>
        </body>
      </html>
    
  
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION