CodeGym /ํ–‰๋™ /Frontend SELF KO /๊ทธ๋ผ๋””์–ธํŠธ

๊ทธ๋ผ๋””์–ธํŠธ

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

8.1 ์„ ํ˜• ๊ทธ๋ผ๋””์–ธํŠธ (linear-gradient)

CSS์—์„œ ๊ทธ๋ผ๋””์–ธํŠธ๋Š” ๋‘ ๊ฐœ ์ด์ƒ์˜ ์ƒ‰์ƒ ๊ฐ„์˜ ๋ถ€๋“œ๋Ÿฌ์šด ์ „ํ™˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด. ์ฃผ๋กœ ๋ฐฐ๊ฒฝ, ๋ฒ„ํŠผ ๋ฐ ๊ธฐํƒ€ ์š”์†Œ๋“ค์— ์‚ฌ์šฉํ•ด์„œ ์‹œ๊ฐ์  ๊นŠ์ด์™€ ๋งค๋ ฅ์„ ๋”ํ•ด์ฃผ์ง€. CSS์—์„œ ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ๊ทธ๋ผ๋””์–ธํŠธ ์ข…๋ฅ˜๊ฐ€ ์žˆ์–ด: ์„ ํ˜•(linear-gradient)๊ณผ ๋ฐฉ์‚ฌํ˜•(radial-gradient).

์„ ํ˜• ๊ทธ๋ผ๋””์–ธํŠธ๋Š” ์ƒ‰์ƒ๋“ค์ด ์ง์„ ์— ๋”ฐ๋ผ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์ „ํ™˜๋ผ. ๋ผ์ธ์˜ ๋ฐฉํ–ฅ๊ณผ ์ƒ‰์ƒ ์ „ํ™˜์€ ์ •ํ™•ํ•˜๊ฒŒ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์ง€.

๋ฌธ๋ฒ•:

    
      background: linear-gradient(direction, color-stop1, color-stop2, ...);
    
  

์—ฌ๊ธฐ์„œ:

  • direction: ๊ทธ๋ผ๋””์–ธํŠธ์˜ ๋ฐฉํ–ฅ. ๊ฐ๋„(45deg ๋“ฑ) ๋˜๋Š” ํ‚ค์›Œ๋“œ(to right, to bottom ๋“ฑ)๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์–ด.
  • color-stop: ๊ทธ๋ผ๋””์–ธํŠธ ๋‚ด ์ƒ‰์ƒ๊ณผ ์œ„์น˜๋ฅผ ์ •ํ•ด.

์˜ˆ์ œ 1: ๊ฐ„๋‹จํ•œ ์„ ํ˜• ๊ทธ๋ผ๋””์–ธํŠธ

์ด ์˜ˆ์ œ์—์„œ๋Š” ๋นจ๊ฐ„์ƒ‰์—์„œ ํŒŒ๋ž€์ƒ‰์œผ๋กœ ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ทธ๋ผ๋””์–ธํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ด:

HTML
    
      <div class="background"></div>
    
  
CSS
    
      .background {
        min-height: 200px;
        background: linear-gradient(to right, red, blue);
      }
    
  

์˜ˆ์ œ 2: ๊ฐ๋„๊ฐ€ ์žˆ๋Š” ์„ ํ˜• ๊ทธ๋ผ๋””์–ธํŠธ

์ด ์˜ˆ์ œ์—์„œ๋Š” 45๋„ ๊ฐ๋„๋กœ ๋…ธ๋ž€์ƒ‰์—์„œ ์ดˆ๋ก์ƒ‰์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ทธ๋ผ๋””์–ธํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ด:

HTML
    
      <div class="background"></div>
    
  
CSS
    
      .background {
        min-height: 200px;
        background: linear-gradient(45deg, yellow, green);
      }
    
  

์˜ˆ์ œ 3: ์—ฌ๋Ÿฌ ์ƒ‰์ƒ์˜ ์„ ํ˜• ๊ทธ๋ผ๋””์–ธํŠธ

์ด ์˜ˆ์ œ์—์„œ๋Š” ์œ„์—์„œ ์•„๋ž˜๋กœ, ๋นจ๊ฐ„์ƒ‰, ๋…ธ๋ž€์ƒ‰, ์ดˆ๋ก์ƒ‰, ํŒŒ๋ž€์ƒ‰์œผ๋กœ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์ „ํ™˜ํ•˜๋Š” ๊ทธ๋ผ๋””์–ธํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ด:

HTML
    
      <div class="background"></div>
    
  
CSS
    
      .background {
        min-height: 200px;
        background: linear-gradient(to bottom, red, yellow, green, blue);
      }
    
  

์˜ˆ์ œ 4: ์ƒ‰์ƒ ์ œ์–ด์ ์„ ์‚ฌ์šฉํ•˜๋Š” ์„ ํ˜• ๊ทธ๋ผ๋””์–ธํŠธ

์ด ์˜ˆ์ œ์—์„œ๋Š” ๊ทธ๋ผ๋””์–ธํŠธ ๋‚ด ๊ฐ ์ƒ‰์ƒ์˜ ์ •ํ™•ํ•œ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋Š” ์ œ์–ด์ ์„ ์‚ฌ์šฉํ•ด๋ด:

HTML
    
      <div class="background"></div>
    
  
CSS
    
      .background {
        min-height: 200px;
        background: linear-gradient(to right, red 0%, yellow 50%, green 100%);
      }
    
  

8.2 ๋ฐฉ์‚ฌํ˜• ๊ทธ๋ผ๋””์–ธํŠธ (radial-gradient)

๋ฐฉ์‚ฌํ˜• ๊ทธ๋ผ๋””์–ธํŠธ๋Š” ์ค‘์‹ฌ ๋˜๋Š” ์ง€์ •๋œ ์ ์—์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ์ƒ‰์ƒ์ด ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์ „ํ™˜๋ผ. ๊ทธ๋ผ๋””์–ธํŠธ๋Š” ์› ๋˜๋Š” ํƒ€์›์œผ๋กœ ํ™•์žฅ๋ผ.

๋ฌธ๋ฒ•:

    
      background: radial-gradient(shape size at position, color-stop1, color-stop2, ...);
    
  

์—ฌ๊ธฐ์„œ:

  • shape: ๊ทธ๋ผ๋””์–ธํŠธ์˜ ๋ชจ์–‘ (circle ๋˜๋Š” ellipse)
  • size: ๊ทธ๋ผ๋””์–ธํŠธ์˜ ํฌ๊ธฐ (closest-side, farthest-side, closest-corner, farthest-corner)
  • position: ๊ทธ๋ผ๋””์–ธํŠธ์˜ ์ค‘์‹ฌ ์œ„์น˜ (ํ”ฝ์…€, ํผ์„ผํŠธ ๋˜๋Š” center, top, left ๋“ฑ์˜ ํ‚ค์›Œ๋“œ๋กœ ์ง€์ • ๊ฐ€๋Šฅ)
  • color-stop: ๊ทธ๋ผ๋””์–ธํŠธ ๋‚ด ์ƒ‰์ƒ๊ณผ ์œ„์น˜๋ฅผ ์ •ํ•ด.

์˜ˆ์ œ 1: ๊ฐ„๋‹จํ•œ ๋ฐฉ์‚ฌํ˜• ๊ทธ๋ผ๋””์–ธํŠธ

์ด ์˜ˆ์ œ์—์„œ๋Š” ์›์˜ ์ค‘์‹ฌ์—์„œ ๋นจ๊ฐ„์ƒ‰์—์„œ ํŒŒ๋ž€์ƒ‰์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ๋ฐฉ์‚ฌํ˜• ๊ทธ๋ผ๋””์–ธํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ด:

HTML
    
      <div class="background"></div>
    
  
CSS
    
      .background {
        min-height: 200px;
        background: radial-gradient(circle, red, blue);
      }
    
  

์˜ˆ์ œ 2: ์œ„์น˜๊ฐ€ ๋‹ค๋ฅธ ๋ฐฉ์‚ฌํ˜• ๊ทธ๋ผ๋””์–ธํŠธ

์ด ์˜ˆ์ œ์—์„œ๋Š” ๋ฐฉ์‚ฌํ˜• ๊ทธ๋ผ๋””์–ธํŠธ์˜ ์ค‘์‹ฌ์„ ์™ผ์ชฝ ์ƒ๋‹จ ๋ชจ์„œ๋ฆฌ๋กœ ์ด๋™ํ•ด ๋…ธ๋ž€์ƒ‰์—์„œ ์ดˆ๋ก์ƒ‰์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ทธ๋ผ๋””์–ธํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ด:

HTML
    
      <div class="background"></div>
    
  
CSS
    
      .background {
        min-height: 200px;
        background: radial-gradient(circle at top left, yellow, green);
      }
    
  

์˜ˆ์ œ 3: ์—ฌ๋Ÿฌ ์ƒ‰์ƒ์˜ ๋ฐฉ์‚ฌํ˜• ๊ทธ๋ผ๋””์–ธํŠธ

์ด ์˜ˆ์ œ์—์„œ๋Š” ์›์˜ ์ค‘์‹ฌ์—์„œ ๋นจ๊ฐ„์ƒ‰, ๋…ธ๋ž€์ƒ‰, ์ดˆ๋ก์ƒ‰, ํŒŒ๋ž€์ƒ‰์œผ๋กœ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์ „ํ™˜ํ•˜๋Š” ๊ทธ๋ผ๋””์–ธํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ด:

HTML
    
      <div class="background"></div>
    
  
CSS
    
      .background {
        min-height: 200px;
        background: radial-gradient(circle, red, yellow, green, blue);
      }
    
  

์˜ˆ์ œ 4: ์ƒ‰์ƒ ์ œ์–ด์ ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‚ฌํ˜• ๊ทธ๋ผ๋””์–ธํŠธ

์ด ์˜ˆ์ œ์—์„œ๋Š” ๊ทธ๋ผ๋””์–ธํŠธ ๋‚ด ๊ฐ ์ƒ‰์ƒ์˜ ์ •ํ™•ํ•œ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋Š” ์ œ์–ด์ ์„ ์‚ฌ์šฉํ•ด๋ด:

HTML
    
      <div class="background"></div>
    
  
CSS
    
      .background {
        min-height: 200px;
        background: radial-gradient(circle at center, red 0%, yellow 25%, green 50%, blue 100%);
      }
    
  

8.3 ๋ณต์žกํ•œ ๊ทธ๋ผ๋””์–ธํŠธ ์˜ˆ์ œ

์˜ˆ์ œ 1: ํˆฌ๋ช…๋„๊ฐ€ ์žˆ๋Š” ์„ ํ˜• ๊ทธ๋ผ๋””์–ธํŠธ

์ด ์˜ˆ์ œ์—์„œ๋Š” ํˆฌ๋ช…๋„๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐ˜ํˆฌ๋ช…ํ•œ ๋นจ๊ฐ„์ƒ‰์—์„œ ๋ฐ˜ํˆฌ๋ช…ํ•œ ํŒŒ๋ž€์ƒ‰์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ทธ๋ผ๋””์–ธํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ด:

HTML
    
      <div class="background"></div>
    
  
CSS
    
      .background {
        min-height: 200px;
        background: linear-gradient(to right, rgba(255, 0, 0, 0.5), rgba(0, 0, 255, 0.5));
      }
    
  

์˜ˆ์ œ 2: ํฌ๊ธฐ๊ฐ€ ์žˆ๋Š” ๋ฐฉ์‚ฌํ˜• ๊ทธ๋ผ๋””์–ธํŠธ

์ด ์˜ˆ์ œ์—์„œ๋Š” ์š”์†Œ์˜ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ชฝ์„ ์ฑ„์šฐ๋Š” ํƒ€์›ํ˜• ๋ฐฉ์‚ฌํ˜• ๊ทธ๋ผ๋””์–ธํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ด:

HTML
    
      <div class="background"></div>
    
  
CSS
    
      .background {
        min-height: 200px;
        background: radial-gradient(ellipse closest-side, red, blue);
      }
    
  

์˜ˆ์ œ 3: ๋ฒ„ํŠผ์„ ์œ„ํ•œ ๊ทธ๋ผ๋””์–ธํŠธ ๋งŒ๋“ค๊ธฐ

๊ทธ๋ผ๋””์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฒ„ํŠผ์„ ๋” ๋งค๋ ฅ์ ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด. ์ด ์˜ˆ์ œ์˜ ๊ทธ๋ผ๋””์–ธํŠธ๋Š” ์œ„์—์„œ ์•„๋ž˜๋กœ, ์—ฐํ•œ ๋…น์ƒ‰์—์„œ ์ง™์€ ๋…น์ƒ‰์œผ๋กœ ์ „ํ™˜ํ•˜์—ฌ ๋ฒ„ํŠผ์— ๋ณผ๋ฅจ๊ณผ ๊นŠ์ด๋ฅผ ๋”ํ•ด์ค˜:

HTML
    
      <button type="button" class="button">Button</button>
    
  
CSS
    
      .button {
        background: linear-gradient(to bottom, #4caf50, #2e7d32);
        color: white;
        border: none;
        padding: 10px 20px;
        border-radius: 5px;
      }
    
  

๊ทธ๋ผ๋””์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์žฅ์ :

1. ์‹œ๊ฐ์  ๋งค๋ ฅ. ๊ทธ๋ผ๋””์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ƒ‰์ƒ ๊ฐ„์˜ ๋ถ€๋“œ๋Ÿฌ์šด ์ „ํ™˜์„ ๋งŒ๋“ค์–ด ๋””์ž์ธ ์š”์†Œ์— ์‹œ๊ฐ์  ๊นŠ์ด์™€ ๋งค๋ ฅ์„ ๋”ํ•  ์ˆ˜ ์žˆ์–ด.

2. ์œ ์—ฐ์„ฑ. ๊ทธ๋ผ๋””์–ธํŠธ๋ฅผ ์กฐ์ •ํ•˜์—ฌ ๊ฐ„๋‹จํ•œ ์ „ํ™˜๋ถ€ํ„ฐ ๋ณต์žกํ•œ ๋‹ค์ƒ‰ ๋ฐฐ๊ฒฝ๊นŒ์ง€ ๋‹ค์–‘ํ•œ ํšจ๊ณผ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด.

3. ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์ง€์›. ๊ทธ๋ผ๋””์–ธํŠธ๋Š” ๋‹ค์–‘ํ•œ ํ™”๋ฉด ํฌ๊ธฐ์™€ ํ•ด์ƒ๋„์— ์‰ฝ๊ฒŒ ์ ์‘ํ•ด์„œ ๋ฐ˜์‘ํ˜• ์›น ๋””์ž์ธ์„ ๋งŒ๋“ค ๋•Œ ์œ ์šฉํ•ด.

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