CodeGym /์ž๋ฐ” ์ฝ”์Šค /Frontend SELF KO /CSS ๋ณ€์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ

CSS ๋ณ€์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ

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

2.1 CSS ๋ณ€์ˆ˜ ์„ ์–ธํ•˜๊ธฐ

CSS ๋ณ€์ˆ˜๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ์†์„ฑ(Custom Properties)์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋ฉฐ, CSS ์ฝ”๋“œ์˜ ๋‹ค์–‘ํ•œ ๋ถ€๋ถ„์—์„œ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค˜. ์Šคํƒ€์ผ ๊ด€๋ฆฌ๋ฅผ ํฌ๊ฒŒ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ์œ ์—ฐ์„ฑ์„ ๋†’์—ฌ์ค˜.

CSS ๋ณ€์ˆ˜๋Š” ๋”๋ธ” ๋Œ€์‹œ(--)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ ์–ธ๋˜๋ฉฐ, ์–ด๋–ค ์„ ํƒ์ž์—์„œ๋„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด. ํ•˜์ง€๋งŒ ๋ฌธ์„œ ์ „์ฒด์—์„œ ๋ณ€์ˆ˜๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ์ข…์ข… ๋ฃจํŠธ ์„ ํƒ์ž :root์— ์ •์˜ํ•ด.

๋ฌธ๋ฒ•:

    
      ์„ ํƒ์ž {
        --๋ณ€์ˆ˜-์ด๋ฆ„: ๊ฐ’;
      }
    
  

์˜ˆ์ œ:

์ด ์˜ˆ์ œ์—์„œ๋Š” ๋„ค ๊ฐ€์ง€ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ–ˆ์–ด: --main-bg-color, --main-text-color, --primary-color, and --font-size.

CSS
    
      :root {
        --main-bg-color: #f0f0f0;
        --main-text-color: #333;
        --primary-color: #3498db;
        --font-size: 16px;
      }
    
  

CSS ๋ณ€์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ

๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด var() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ด ํ•จ์ˆ˜๋Š” ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ์ธ์ˆ˜๋กœ ๋ฐ›์•„.

๋ฌธ๋ฒ•:

    
      ์„ ํƒ์ž {
        ์†์„ฑ: var(--๋ณ€์ˆ˜-์ด๋ฆ„);
      }
    
  

์˜ˆ์ œ:

์ด ์˜ˆ์ œ์—์„œ๋Š” ๋ณ€์ˆ˜ ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ๊ฒฝ์ƒ‰, ํ…์ŠคํŠธ ์ƒ‰์ƒ, ํฐํŠธ ํฌ๊ธฐ, ๋งํฌ ์ƒ‰์ƒ์„ ์ง€์ •ํ•ด.

CSS
    
      body {
        background-color: var(--main-bg-color);
        color: var(--main-text-color);
        font-size: var(--font-size);
      }

      a {
        color: var(--primary-color);
      }
    
  

2.2 CSS ๋ณ€์ˆ˜ ์‚ฌ์šฉ ์˜ˆ์ œ

์˜ˆ์ œ 1: ๋ณ€์ˆ˜์˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ

CSS
    
      :root {
        --main-bg-color: #f0f0f0;
        --main-text-color: #333;
        --primary-color: #3498db;
        --font-size: 16px;
      }

      body {
        background-color: var(--main-bg-color);
        color: var(--main-text-color);
        font-size: var(--font-size);
      }

      a {
        color: var(--primary-color);
      }
    
  
HTML
    
      <body>
        <p>This is a paragraph with a link to <a href="#">Example.com</a>.</p>
      </body>
    
  

๊ฒฐ๊ณผ:

  • ํŽ˜์ด์ง€ ๋ฐฐ๊ฒฝ์€ ๋ฐ์€ ํšŒ์ƒ‰์ด ๋  ๊ฑฐ์•ผ
  • ํ…์ŠคํŠธ๋Š” ์–ด๋‘์šด ํšŒ์ƒ‰์ด ๋  ๊ฑฐ์•ผ
  • ํฐํŠธ ํฌ๊ธฐ๋Š” 16ํ”ฝ์…€์ด ๋  ๊ฑฐ์•ผ
  • ๋งํฌ๋Š” ํŒŒ๋ž€์ƒ‰์ด ๋  ๊ฑฐ์•ผ

์˜ˆ์ œ 2: ๊ฐœ๋ณ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ๋ณ€์ˆ˜ ์žฌ์ •์˜ํ•˜๊ธฐ

CSS ๋ณ€์ˆ˜๋Š” ๊ฐœ๋ณ„ ์š”์†Œ๋‚˜ ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•ด ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์–ด์„œ ์Šคํƒ€์ผ๋ง์— ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•ด:

CSS
    
      :root {
        --main-bg-color: #f0f0f0;
        --main-text-color: #333;
        --primary-color: #3498db;
      }

      .header {
        background-color: var(--primary-color);
        color: var(--main-bg-color);
      }

      .footer {
        --primary-color: #e74c3c; /* ๋ณ€์ˆ˜ ์žฌ์ •์˜ */
        background-color: var(--primary-color);
        color: var(--main-bg-color);
      }
    
  
HTML
    
      <div class="header">
        <p>This is the header.</p>
      </div>

      <div class="footer">
        <p>This is the footer.</p>
      </div>
    
  

๊ฒฐ๊ณผ:

  • ํ—ค๋”์˜ ๋ฐฐ๊ฒฝ์€ ํŒŒ๋ž€์ƒ‰์ด๊ณ , ํ…์ŠคํŠธ๋Š” ๋ฐ์€ ํšŒ์ƒ‰์ด ๋  ๊ฑฐ์•ผ
  • ํ‘ธํ„ฐ์˜ ๋ฐฐ๊ฒฝ์€ ๋นจ๊ฐ„์ƒ‰(์žฌ์ •์˜๋œ ๋ณ€์ˆ˜)์ด๊ณ , ํ…์ŠคํŠธ๋Š” ๋ฐ์€ ํšŒ์ƒ‰์ด ๋  ๊ฑฐ์•ผ

์˜ˆ์ œ 3: ๋‹ค๋ฅธ ๊ฐ’๋“ค๊ณผ ์กฐํ•ฉํ•˜์—ฌ ๋ณ€์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ

CSS ๋ณ€์ˆ˜๋Š” ๋‹ค๋ฅธ CSS ๊ฐ’ ๋ฐ ํ•จ์ˆ˜์™€ ์กฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด:

CSS
    
      :root {
        --padding: 10px;
        --margin: 20px;
      }

      .container {
        padding: var(--padding);
        margin: var(--margin) auto;
        border: 1px solid black;
      }
    
  
HTML
    
      <div class="container">
        <p>This is a container with padding and margin.</p>
      </div>
    
  

๊ฒฐ๊ณผ:

  • ์ปจํ…Œ์ด๋„ˆ๋Š” ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ •๋œ ํŒจ๋”ฉ๊ณผ ๋งˆ์ง„์„ ๊ฐ€์งˆ ๊ฑฐ์•ผ

2.3 JavaScript์—์„œ CSS ๋ณ€์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ

JavaScript์—์„œ CSS ๋ณ€์ˆ˜ ์‚ฌ์šฉ ์˜ˆ

CSS ๋ณ€์ˆ˜๋Š” JavaScript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์–ด, ์‹ค์‹œ๊ฐ„ ์Šคํƒ€์ผ ์ ์šฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด:

CSS
    
      :root {
        --bg-color: #ffffff;
        --text-color: #000000;
      }

      body {
        background-color: var(--bg-color);
        color: var(--text-color);
      }
    
  
HTML
    
      <button id="toggle-theme">Toggle Theme</button>
      <p>This is a paragraph.</p>
    
  
JavaScript
    
      document.getElementById('toggle-theme').addEventListener('click', () => {

        const root = document.documentElement;

        if (root.style.getPropertyValue('--bg-color') === '#ffffff') {
          root.style.setProperty('--bg-color', '#333333');
          root.style.setProperty('--text-color', '#ffffff');
        } else {
          root.style.setProperty('--bg-color', '#ffffff');
          root.style.setProperty('--text-color', '#000000');
        }
      });
    
  

์„ค๋ช…:

๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด --bg-color์™€ --text-color ๋ณ€์ˆ˜์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์–ด ํŽ˜์ด์ง€์˜ ๋ฐฐ๊ฒฝ์ƒ‰๊ณผ ํ…์ŠคํŠธ ์ƒ‰์ƒ์ด ๋ฐ”๋€Œ์–ด.

์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION