CodeGym /Java Course /Frontend SELF KO /๋ฏธ๋””์–ด ์ฟผ๋ฆฌ์—์„œ ๋ณ€์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ

๋ฏธ๋””์–ด ์ฟผ๋ฆฌ์—์„œ ๋ณ€์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ

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

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

CSS-๋ณ€์ˆ˜์™€ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋Š” ๋ฐ˜์‘ํ˜• ์›น ๋””์ž์ธ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ๋“ค์„ ์ œ๊ณตํ•˜๊ณ , ์ด๋Š” ์ž๋™์œผ๋กœ ๋‹ค์–‘ํ•œ ํ™”๋ฉด ํฌ๊ธฐ์™€ ๋””๋ฐ”์ด์Šค์— ๋งž์ถฐ ์กฐ์ •๋œ๋‹ค. ๋ณ€์ˆ˜๋Š” ์Šคํƒ€์ผ์„ ์ค‘์•™์—์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๊ณ , ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋Š” ํ™”๋ฉด ๋„ˆ๋น„์™€ ๊ฐ™์€ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ด๋Ÿฌํ•œ ์Šคํƒ€์ผ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

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

  • CSS-๋ณ€์ˆ˜: CSS ์ฝ”๋“œ ์ „์ฒด์— ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. ์ด๋Š” ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์ปจํ…์ŠคํŠธ์—์„œ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์–ด, ๋ฐ˜์‘ํ˜• ๋””์ž์ธ์— ํŠนํžˆ ์œ ์šฉํ•˜๋‹ค.
  • ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ: CSS ์Šคํƒ€์ผ์„ ๋””๋ฐ”์ด์Šค์˜ ํŠน์„ฑ(์˜ˆ: ํ™”๋ฉด ๋„ˆ๋น„๋‚˜ ๋†’์ด)์— ๋”ฐ๋ผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. ์ด๋Š” ์›น ํŽ˜์ด์ง€์˜ ์™ธํ˜•๊ณผ ๋™์ž‘์„ ๋‹ค์–‘ํ•œ ๋””๋ฐ”์ด์Šค์— ๋งž์ถฐ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

๋ฏธ๋””์–ด ์ฟผ๋ฆฌ์—์„œ ๋ณ€์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ

CSS-๋ณ€์ˆ˜๋Š” ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ ์•ˆ์—์„œ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์Šคํƒ€์ผ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ๋” ์œ ์—ฐํ•˜๊ณ  ์‰ฝ๊ฒŒ ์œ ์ง€๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ˜์‘ํ˜• ๋””์ž์ธ์„ ๋งŒ๋“œ๋Š” ๋ฐ ๋„์›€์„ ์ค€๋‹ค.

๋ฏธ๋””์–ด ์ฟผ๋ฆฌ์—์„œ ๋ณ€์ˆ˜ ์‚ฌ์šฉ ์˜ˆ์ œ:

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);
      }

      @media (max-width: 600px) {
        :root {
          --main-bg-color: #e0e0e0;
          --font-size: 14px;
        }
      }

      @media (min-width: 601px) and (max-width: 1200px) {
        :root {
          --main-bg-color: #d0d0d0;
          --font-size: 15px;
        }
      }

      @media (min-width: 1201px) {
        :root {
          --main-bg-color: #f0f0f0;
          --font-size: 16px;
        }
      }
    
  
HTML
    
      <body>
        <p>This is a paragraph with a link to <a href="#">Example.com</a>.</p>
      </body>
    
  

์„ค๋ช…:

์ด ์˜ˆ์ œ์—์„œ๋Š” ํ™”๋ฉด ๋„ˆ๋น„์— ๋”ฐ๋ผ ๋ณ€์ˆ˜ ๊ฐ’์ด ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค:

  • ํ™”๋ฉด ๋„ˆ๋น„๊ฐ€ 600px ์ดํ•˜์ธ ๊ฒฝ์šฐ, ๋ฐฐ๊ฒฝ์ด ๋” ์–ด๋‘์šด ์ƒ‰์กฐ๋กœ ๋ณ€๊ฒฝ๋˜๊ณ  ๊ธ€๊ผด ํฌ๊ธฐ๊ฐ€ ์ž‘์•„์ง‘๋‹ˆ๋‹ค.
  • ํ™”๋ฉด ๋„ˆ๋น„๊ฐ€ 601px ์ด์ƒ 1200px ์ดํ•˜์ธ ๊ฒฝ์šฐ, ๋ฐฐ๊ฒฝ์ด ์ค‘๊ฐ„ ์ƒ‰์กฐ๋กœ ๋ณ€๊ฒฝ๋˜๊ณ  ๊ธ€๊ผด ํฌ๊ธฐ๊ฐ€ ์•ฝ๊ฐ„ ์ปค์ง‘๋‹ˆ๋‹ค.
  • ํ™”๋ฉด ๋„ˆ๋น„๊ฐ€ 1200px ์ด์ƒ์ธ ๊ฒฝ์šฐ, ๊ธฐ๋ณธ ๋ณ€์ˆ˜ ๊ฐ’์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

4.2 ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ์—์„œ ๋ณ€์ˆ˜ ์‚ฌ์šฉ ์˜ˆ์ œ

์˜ˆ์ œ 1: ๋ฐ˜์‘ํ˜• ํŒจ๋”ฉ ๋ฐ ๊ธ€๊ผด ํฌ๊ธฐ

CSS
    
      :root {
        --padding: 20px;
        --font-size: 16px;
      }

      .container {
        padding: var(--padding);
        font-size: var(--font-size);
      }

      @media (max-width: 600px) {
        :root {
          --padding: 10px;
          --font-size: 14px;
        }
      }

      @media (min-width: 601px) and (max-width: 1200px) {
        :root {
          --padding: 15px;
          --font-size: 15px;
        }
      }

      @media (min-width: 1201px) {
        :root {
          --padding: 20px;
          --font-size: 16px;
        }
      }
    
  
HTML
    
      <div class="container">
        <p>This is a responsive container with adaptive padding and font size.</p>
      </div>
    
  

์„ค๋ช…:

  • ์ด ์˜ˆ์ œ์—์„œ๋Š” .container๊ฐ€ ํ™”๋ฉด ๋„ˆ๋น„์— ๋”ฐ๋ผ ํŒจ๋”ฉ๊ณผ ๊ธ€๊ผด ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ 2: ๋ณ€์ˆ˜์™€ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ ์‚ฌ์ดํŠธ ํ…Œ๋งˆํ™”

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

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

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

      @media (prefers-color-scheme: dark) {
        :root {
          --bg-color: #000000;
          --text-color: #ffffff;
          --link-color: #9b59b6;
        }
      }
    
  
HTML
    
      <body>
        <p>This text and link will adapt to the user's preferred color scheme. Visit <a href="#">Example.com</a>.</p>
      </body>
    
  

์„ค๋ช…:

  • ์ด ์˜ˆ์ œ์—์„œ๋Š” ์‚ฌ์šฉ์ž์˜ ์„ ํ˜ธ ์ปฌ๋Ÿฌ ํ…Œ๋งˆ(prefers-color-scheme: dark)์— ๋”ฐ๋ผ ์‚ฌ์ดํŠธ์˜ ์ƒ‰์ƒ ํ…Œ๋งˆ๊ฐ€ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. ๋ฐฐ๊ฒฝ์ƒ‰, ํ…์ŠคํŠธ ์ƒ‰์ƒ ๋ฐ ๋งํฌ ์ƒ‰์ƒ์ด ๋ฐ์€ ํ…Œ๋งˆ์™€ ์–ด๋‘์šด ํ…Œ๋งˆ ๊ฐ„ ์ „ํ™˜ ์‹œ ์ž๋™์œผ๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

4.3 ๋ฐ˜์‘ํ˜• ๊ทธ๋ฆฌ๋“œ

๋ฏธ๋””์–ด ์ฟผ๋ฆฌ์™€ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ๋ฐ˜์‘ํ˜• ๊ทธ๋ฆฌ๋“œ ์˜ˆ์ œ:

CSS
    
      :root {
        --columns: 1fr;
        --gap: 10px;
      }

      .grid-container {
        display: grid;
        grid-template-columns: var(--columns);
        gap: var(--gap);
      }

      @media (min-width: 600px) {
        :root {
          --columns: 1fr 1fr;
        }
      }

      @media (min-width: 900px) {
        :root {
          --columns: 1fr 1fr 1fr;
        }
      }
    
  
HTML
    
      <div class="grid-container">
        <div>Item 1</div>
        <div>Item 2</div>
        <div>Item 3</div>
        <div>Item 4</div>
      </div>
    
  

์„ค๋ช…:

  • ์ด ์˜ˆ์ œ๋Š” ํ™”๋ฉด ๋„ˆ๋น„์— ๋”ฐ๋ผ ์—ด ์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐ˜์‘ํ˜• ๊ทธ๋ฆฌ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ข์€ ํ™”๋ฉด(600px ์ดํ•˜)์—์„œ๋Š” ํ•˜๋‚˜์˜ ์—ด, ์ค‘๊ฐ„ ํ™”๋ฉด(600px ์ด์ƒ 900px ์ดํ•˜)์—์„œ๋Š” ๋‘ ์—ด, ๋„“์€ ํ™”๋ฉด(900px ์ด์ƒ)์—์„œ๋Š” ์„ธ ์—ด์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION