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

๐Ÿ’ปWEB FrontEnd/CSS3

CSS๊ธฐ์ดˆ

<Do it! HTML5+CSS3>์„ ๊ธฐ๋ณธ์œผ๋กœ ๋ฐฐ์šด ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

 

๋ชฉ์ฐจ

1. ์Šคํƒ€์ผ๊ณผ ์Šคํƒ€์ผ ์‹œํŠธ

2. ์ฃผ์š” ์„ ํƒ์ž

3. CSS ์Šคํƒ€์ผ ์šฐ์„ ์ˆœ์œ„

 

 

<CSS๊ธฐ์ดˆ>

CSS(Cascading Style Sheets)๋Š” ํ…์ŠคํŠธ ์ƒ‰์ƒ์ด๋‚˜ ํฌ๊ธฐ, ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋‚˜ ์œ„์น˜, ํ‘œ ์ƒ‰์ƒ, ๋ฐฐ์น˜ ๋ฐฉ๋ฒ• ๋“ฑ ์›น ๋ฌธ์„œ์˜ ๋””์ž์ธ ์š”์†Œ๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค.

 

1. ์Šคํƒ€์ผ๊ณผ ์Šคํƒ€์ผ ์‹œํŠธ

1) ์Šคํƒ€์ผ

์›น ๋ฌธ์„œ์—์„œ ์Šคํƒ€์ผ์ด๋ž€ HTML๋ฌธ์„œ์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๊ธ€๊ผด์ด๋‚˜ ์ƒ‰์ƒ, ์ •๋ ฌ, ๊ฐ ์š”์†Œ๋“ค์˜ ๋ฐฐ์น˜ ๋ฐฉ๋ฒ• ๋“ฑ ๋ฌธ์„œ์˜ ๊ฒ‰๋ชจ์Šต์„ ๊ฒฐ์ •์ง“๋Š” ๋‚ด์šฉ๋“ค์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค.

 

- ํ˜•์‹

  • ์„ ํƒ์ž selector : ์•ž์œผ๋กœ ๋งŒ๋“ค ์Šคํƒ€์ผ ๊ทœ์น™์„ ์–ด๋””์— ์ ์šฉํ•  ๊ฒƒ์ธ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.
  • ์Šคํƒ€์ผ ์†์„ฑ๊ณผ ์†์„ฑ ๊ฐ’ : ์„ ํƒ์ž ๋‹ค์Œ์— ์ค‘๊ด„ํ˜ธ๊ฐ€ ์˜ค๊ณ  ๊ทธ ์‚ฌ์ด์— {์†์„ฑ: ์†์„ฑ ๊ฐ’}์„ ์ž‘์„ฑํ•ด ์†์„ฑ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

2) ์Šคํƒ€์ผ ์‹œํŠธ

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

 

- ๋‚ด๋ถ€ ์Šคํƒ€์ผ ์‹œํŠธ

์›น ๋ฌธ์„œ ์•ˆ์—์„œ ์‚ฌ์šฉํ•  ์Šคํƒ€์ผ์„ ๋ฌธ์„œ ์•ˆ์— ์ •๋ฆฌํ•œ ๊ฒƒ์„ ๋‚ด๋ถ€ ์Šคํƒ€์ผ ์‹œํŠธ๋ผ ํ•œ๋‹ค.

<head>
  </style>
    //๋‚ด๋ถ€ ์Šคํƒ€์ผ ์‹œํŠธ
    /*์Šคํƒ€์ผ ์ •๋ณด๋Š” ์›น ๋ฌธ์„œ๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๊ธฐ ์ „์— ๊ฒฐ์ •๋˜์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ถ€๋ถ„์— ์ž‘์„ฑํ•œ๋‹ค.*/
  </style>
</head>

 

- ์™ธ๋ถ€ ์Šคํƒ€์ผ ์‹œํŠธ

  • ์‚ฌ์ดํŠธ๋ฅผ ์ œ์ž‘ํ•  ๋•Œ, ์—ฌ๋Ÿฌ ์›น ๋ฌธ์„œ์—์„œ ์‚ฌ์šฉํ•  ์Šคํƒ€์ผ์„ ๋ณ„๋„ ํŒŒ์ผ๋กœ ์ €์žฅํ•ด ๋†“๊ณ  ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ํŒŒ์ผ์—์„œ ๊ฐ€์ ธ์™€ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ๋”ฐ๋กœ ์ €์žฅํ•ด ๋†“์€ ์Šคํƒ€์ผ ์ •๋ณด๋ฅผ ์™ธ๋ถ€ ์Šคํƒ€์ผ ์‹œํŠธ(CSSํŒŒ์ผ)๋ผ ํ•œ๋‹ค.
  • ์™ธ๋ถ€ ์Šคํƒ€์ผ ์‹œํŠธ๋ฅผ ์—ฐ๊ฒฐํ•  ๋•Œ๋Š” <style>ํƒœ๊ทธ ์—†์ด <link>ํƒœ๊ทธ๋งŒ ์‚ฌ์šฉํ•ด ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด ๋†“์€ ์™ธ๋ถ€ ์Šคํƒ€์ผ ์‹œํŠธ ํŒŒ์ผ์„ ์—ฐ๊ฒฐํ•œ๋‹ค.
<haed>
  <style>
    //๋‚ด๋ถ€ ์Šคํƒ€์ผ ์‹œํŠธ
  </style>
  <link rel="stylesheet" href="์™ธ๋ถ€ ์Šคํƒ€์ผ ํŒŒ์ผ ๊ฒฝ๋กœ"> //์™ธ๋ถ€ ์Šคํƒ€์ผ ์‹œํŠธ
</haed>

 

- ์ธ๋ผ์ธ ์Šคํƒ€์ผ

  • ๊ฐ„๋‹จํ•œ ์Šคํƒ€์ผ ์ •๋ณด๋Š” ์Šคํƒ€์ผ ์‹œํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์Šคํƒ€์ผ์„ ์ ์šฉํ•  ๋Œ€์ƒ์— ์ง์ ‘ ํ‘œ์‹œํ•œ๋‹ค.
  • ์Šคํƒ€์ผ์„ ์ ์šฉํ•˜๊ณ  ์‹ถ์€ ํƒœ๊ทธ์— style์†์„ฑ์„ ์‚ฌ์šฉํ•ด ์Šคํƒ€์ผ์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.
<p style="color:blue;">๊ฐ„๋‹จํ•œ ์Šคํƒ€์ผ</p>

 


2. ์ฃผ์š” ์„ ํƒ์ž

1) ์ฃผ์š” ์„ ํƒ์ž

์„ ํƒ์ž ์„ค๋ช…
* ๋ชจ๋“  ์š”์†Œ์— ์Šคํƒ€์ผ์„ ์ ์šฉํ•œ๋‹ค.
ํƒœ๊ทธ ํŠน์ • ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•œ ์š”์†Œ์— ์Šคํƒ€์ผ์„ ์ ์šฉํ•œ๋‹ค.
.ํด๋ž˜์Šค๋ช… - ํŠน์ • ๋ถ€๋ถ„์— ์Šคํƒ€์ผ์„ ์ ์šฉํ•œ๋‹ค.
- ํด๋ž˜์Šค ์ด๋ฆ„์€ ํƒœ๊ทธ ์ด๋ฆ„๊ณผ ๊ฒน์น˜์ง€ ์•Š๋Š” ์‰ฌ์šด ์ด๋ฆ„์„ ์ž„์‹œ๋กœ ์ •ํ•˜๋ฉด ๋œ๋‹ค.
- ex) ํ•˜๋Š˜์ƒ‰ ๊ธ€์ž๋กœ ์ง€์ •ํ•˜๊ณ  ์‹ถ์€ ๋ถ€๋ถ„์€ .blutext{ color:blue; }
#์•„์ด๋””๋ช… ํŠน์ • ๋ถ€๋ถ„์— ์Šคํƒ€์ผ์„ ์ ์šฉํ•œ๋‹ค.
ํƒœ๊ทธ1, ํƒœ๊ทธ2, ... ๋‘˜ ์ด์ƒ์˜ ์š”์†Œ์— ๊ฐ™์€ ์Šคํƒ€์ผ์„ ์ ์šฉํ•œ๋‹ค.

 

2) ํด๋ž˜์Šค ์„ ํƒ์ž - .ํด๋ž˜์Šค๋ช…

์ผ๋ถ€๋งŒ ํƒœ๊ทธ ์„ ํƒ์ž์˜ ์Šคํƒ€์ผ์ด ์•„๋‹Œ ๋‹ค๋ฅธ ์Šคํƒ€์ผ๋กœ ์ ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

<head>
    <title>์˜จ๋ผ์ธ ํ”„๋กœํ•„</title>
    <meta charset="utf-8">
    <style>
      .bluetext {
        color:blue;
      }
      h2.accent {
        background-color:#222;
        color:#fff;
        padding:5px;
      }
      .browntext {
        color:brown;
      }
      .boldtext {
        font-weight: bold;
      }
    </style>
</head>
<body>
  <h2 class="accent">accent</h2>
  <p>์ผ๋ฐ˜ ๊ธ€์”จ<span class="browntext boldtext">browntext boldtext</span></p>
  <h2 class="bluetext">h2์ธ๋ฐ bluetext</h2>
  <p>์ผ๋ฐ˜ ๊ธ€์”จ<span class="bluetext">ํŠน์ • ๋ถ€๋ถ„ : p์ธ๋ฐ bluetext</span></p>
  <p class="bluetext">p์ธ๋ฐ bluetext</p>
</body>

 


3. CSS ์Šคํƒ€์ผ ์šฐ์„ ์ˆœ์œ„

1) ์Šคํƒ€์ผ ์ ์šฉ ์šฐ์„ ์ˆœ์œ„ : ์บ์Šค์บ์ด๋”ฉ(Cascading)

์š”์†Œ๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ CSS ์„ ์–ธ์— ์˜ํ–ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ ์ถฉ๋Œ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด CSS ์ ์šฉ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ํ•„์š”ํ•œ๋ฐ ์ด๋ฅผ ์บ์Šค์บ์ด๋”ฉ(Cascading Order)์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

- ์บ์Šค์บ์ด๋”ฉ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ธ๊ฐ€์ง€ ๊ทœ์น™์ด ์žˆ๋‹ค.

๊ทœ์น™ ์„ค๋ช… ์šฐ์„ ์ˆœ์œ„
์ค‘์š”๋„ CSS๊ฐ€ ์–ด๋””์— ์„ ์–ธ ๋˜์—ˆ๋Š”์ง€์— ๋”ฐ๋ผ์„œ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค. 1. head ์š”์†Œ ๋‚ด์˜ style ์š”์†Œ
2. head ์š”์†Œ ๋‚ด์˜ style ์š”์†Œ ๋‚ด์˜ @import ๋ฌธ
3. <link> ๋กœ ์—ฐ๊ฒฐ๋œ CSS ํŒŒ์ผ
4. <link> ๋กœ ์—ฐ๊ฒฐ๋œ CSS ํŒŒ์ผ ๋‚ด์˜ @import ๋ฌธ
5. ๋ธŒ๋ผ์šฐ์ € ๋””ํดํŠธ ์Šคํƒ€์ผ์‹œํŠธ
๋ช…์‹œ๋„ ๋Œ€์ƒ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ํŠน์ •ํ• ์ˆ˜๋ก ๋ช…์‹œ๋„๊ฐ€ ๋†’์•„์ง€๊ณ  ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์•„์ง„๋‹ค. !important > ์ธ๋ผ์ธ ์Šคํƒ€์ผ > ์•„์ด๋”” ์„ ํƒ์ž
> ํด๋ž˜์Šค/์–ดํŠธ๋ฆฌ๋ทฐํŠธ/๊ฐ€์ƒ ์„ ํƒ์ž > ํƒœ๊ทธ ์„ ํƒ์ž
> ์ „์ฒด ์„ ํƒ์ž > ์ƒ์œ„ ์š”์†Œ์— ์˜ํ•ด ์ƒ์†๋œ ์†์„ฑ
์„ ์–ธ์ˆœ์„œ ์„ ์–ธ๋œ ์ˆœ์„œ์— ๋”ฐ๋ผ ์šฐ์„  ์ˆœ์œ„๊ฐ€ ์ ์šฉ๋œ๋‹ค. ์ฆ‰, ๋‚˜์ค‘์— ์„ ์–ธ๋œ ์Šคํƒ€์ผ์ด ์šฐ์„  ์ ์šฉ๋œ๋‹ค.  

 

- !important

  • ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ฌด์‹œํ•˜๊ณ , ๊ผญ ์ ์šฉ ์‹œํ‚ค๊ณ  ์‹ถ์€ ์†์„ฑ์ด ์žˆ๋‹ค๋ฉด, ์†์„ฑ ๊ฐ’ ๋’ค์— !important ๋ฅผ ๋ถ™์—ฌ์„œ ์ ์šฉ์‹œ์ผœ์ฃผ๋ฉด ๋œ๋‹ค.
  • !important ๋Š” ์šฐ์„ ์ˆœ์œ„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋””์ž์ด๋„ˆ-๊ฐœ๋ฐœ์ž๊ฐ„ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์‹œ ์ค‘์š”ํ•œ ์†์„ฑ์ž„์„ ์•Œ๋ฆฐ๋‹ค.
.compulsion{ color: black !important }

 

 

2) ์Šคํƒ€์ผ ์ƒ์†

  • ์Šคํƒ€์ผ ์‹œํŠธ์—์„œ๋Š” ์ž์‹ ์š”์†Œ์—์„œ ๋ณ„๋„๋กœ ์Šคํƒ€์ผ์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ถ€๋ชจ ์š”์†Œ์— ์žˆ๋Š” ์Šคํƒ€์ผ ์†์„ฑ๋“ค์ด ์ž์‹ ์š”์†Œ๋กœ ์ „๋‹ฌ๋œ๋‹ค. ๋‹ค๋งŒ, ๋ถ€๋ชจ ์š”์†Œ์˜ ๋ชจ๋“  ์Šคํƒ€์ผ์ด ์ƒ์†๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.
  • ์ƒ์†๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ, inherit ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…์‹œ์ ์œผ๋กœ ์ƒ์†๋ฐ›๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <style>
    .text-red {
      color: red;
      border: 1px solid #bcbcbc;
      padding: 10px;
    }
    .text-red button {
      color: inherit;   //์Šคํƒ€์ผ ์ƒ์†
    }
    .text-red p {
      border: inherit;   //์Šคํƒ€์ผ ์ƒ์†
      padding: inherit;   //์Šคํƒ€์ผ ์ƒ์†
    }
  </style>
</head>
<body>
  <div class="text-red">
    <h1>Heading</h1>
    <p>Paragraph<strong>strong</strong></p>
    <button>Button</button>
  </div>
</body>
</html>