Style Sheet/CSS

🎨 CSS 속성 상속 κ°œλ… & 적용 μš°μ„ μˆœμœ„

인파_ 2021. 9. 28. 16:41

css-μƒμ†κ°œλ…

CSS 속성 상속

CSS 속성은 μƒμ†ν•˜λŠ” 속성과 μƒμ†ν•˜μ§€ μ•ŠλŠ” 속성이 μžˆλ‹€.

  • β€‹μƒμ†ν•˜λŠ” 속성은 μžμ‹ μš”μ†Œμ— 영ν–₯을 λ―ΈμΉœλ‹€.
  • μƒμ†ν•˜μ§€ μ•ŠλŠ” 속성은 μžμ‹ μš”μ†Œμ— 영ν–₯을 λ―ΈμΉ˜μ§€ μ•ŠλŠ”λ‹€.
property 상속
width/height no
margin no
padding no
border no
box-sizing no
display no
visibility yes
opacity yes
background no
font yes
color yes
line-height yes
text-align yes
vertical-align no
text-decoration no
white-space yes
position no
top/right/bottom/left no
z-index no
overflow no
float no

​

μƒμ†ν•˜λŠ” 속성

예λ₯Ό λ“€μ–΄ colorλŠ” μƒμ†ν•˜λŠ” 속성이닀. λΆ€λͺ¨ μš”μ†Œμ—μ„œ μ •ν•œ 색이 μžμ‹ μš”μ†Œμ—λ„ μ μš©λœλ‹€.

<style>
  p { color: blue; }
</style>

<p>Lorem <em>Ipsum</em></p> 
<!-- Lorem 뿐만 μ•„λ‹ˆλΌ Ipsum의 색도 νŒŒλž€μƒ‰μ΄ λ©λ‹ˆλ‹€. -->

​

μƒμ†ν•˜μ§€ μ•ŠλŠ” 속성

예λ₯Ό λ“€μ–΄ padding은 μƒμ†ν•˜μ§€ μ•ŠλŠ” 속성이닀. λΆ€λͺ¨ μš”μ†Œμ—μ„œ padding을 μ •μ˜ν•΄λ„ μžμ‹ μš”μ†Œμ— μ μš©λ˜μ§€ μ•ŠλŠ”λ‹€.

<style>
  p { padding: 20px; }
</style>

<p>Lorem <em>Ipsum</em></p> 
<!-- p μš”μ†Œμ—λ§Œ μ•ˆμͺ½ 여백을 λ§Œλ“€κ³  em μš”μ†Œμ—λŠ” μ•ˆμͺ½ 여백을 λ§Œλ“€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. -->

CSS μΊμŠ€μΊμ΄λ”©(Cascading)

μš”μ†ŒλŠ” ν•˜λ‚˜ μ΄μƒμ˜ CSS 선언에 영ν–₯을 받을 수 μžˆλ‹€. μ΄λ•Œ μΆ©λŒμ„ ν”Όν•˜κΈ° μœ„ν•΄ CSS 적용 μš°μ„ μˆœμœ„κ°€ ν•„μš”ν•œλ° 이λ₯Ό μΊμŠ€μΊμ΄λ”©(Cascading Order)이라고 ν•œλ‹€.

β€‹μΊμŠ€μΊμ΄λ”©μ—λŠ” λ‹€μŒκ³Ό 같이 세가지 κ·œμΉ™μ΄ μžˆλ‹€.

  • μ€‘μš”λ„ : CSSκ°€ 어디에 μ„ μ–Έ λ˜μ—ˆλŠ”μ§€μ— λ”°λΌμ„œ μš°μ„ μˆœμœ„κ°€ 달라진닀.
  • λͺ…μ‹œλ„ : λŒ€μƒμ„ λͺ…ν™•ν•˜κ²Œ νŠΉμ •ν• μˆ˜λ‘ λͺ…μ‹œλ„κ°€ 높아지고 μš°μ„ μˆœμœ„κ°€ 높아진닀.
  • μ„ μ–Έμˆœμ„œ : μ„ μ–Έλœ μˆœμ„œμ— 따라 μš°μ„  μˆœμœ„κ°€ μ μš©λœλ‹€. 즉, λ‚˜μ€‘μ— μ„ μ–Έλœ μŠ€νƒ€μΌμ΄ μš°μ„  μ μš©λœλ‹€.

​

CSS μ€‘μš”λ„

CSSκ°€ 어디에 μ„ μ–Έ λ˜μ—ˆλŠ”μ§€μ— λ”°λΌμ„œ μš°μ„ μˆœμœ„κ°€ 달라진닀.

  1. head μš”μ†Œ λ‚΄μ˜ style μš”μ†Œ
  2. head μš”μ†Œ λ‚΄μ˜ style μš”μ†Œ λ‚΄μ˜ @import λ¬Έ
  3. <link> 둜 μ—°κ²°λœ CSS 파일
  4. <link> 둜 μ—°κ²°λœ CSS 파일 λ‚΄μ˜ @import λ¬Έ
  5. λΈŒλΌμš°μ € λ””ν΄νŠΈ μŠ€νƒ€μΌμ‹œνŠΈ

​

CSS λͺ…μ‹œλ„

λŒ€μƒμ„ λͺ…ν™•ν•˜κ²Œ νŠΉμ •ν• μˆ˜λ‘ λͺ…μ‹œλ„κ°€ 높아지고 μš°μ„ μˆœμœ„κ°€ 높아진닀.

  1. !important
  2. 인라인 μŠ€νƒ€μΌ
  3. 아이디 μ„ νƒμž
  4. 클래슀 / μ–΄νŠΈλ¦¬λ·°νŠΈ / 가상 μ„ νƒμž
  5. νƒœκ·Έ μ„ νƒμž
  6. 전체 μ„ νƒμž
  7. μƒμœ„ μš”μ†Œμ— μ˜ν•΄ μƒμ†λœ 속성
p        { color: red !important; } /* 1 */

#thing   { color: blue; }/* 2 */

div.food { color: chocolate; } /* 3 */

.food    { color: green; } /* 4 */

div      { color: orange; } /* 5 */

​

!important

CSSλŠ” 같은 속성을 μ—¬λŸ¬ 번 μ •μ˜ν–ˆμ„ λ•Œ, λ‚˜μ€‘μ— μ„€μ •ν•œ 값이 μ μš©λœλ‹€. λ§Œμ•½ λ‚˜μ€‘μ— μ„€μ •ν•œ 값이 μ μš©λ˜μ§€ μ•Šκ²Œ ν•˜λ €λ©΄ 속성값 뒀에 !importantλ₯Ό 뢙이면 무쑰건 이 뢀뢄이 μ μš©λœλ‹€. (거의 μΉ˜νŠΈκΈ‰)

color: red !important;

​

CSS μ„ μ–Έμˆœμ„œ

p { color: blue; } 
p { color: red; } /* μš°μ„  적용 */

.red { color: red; }
.blue { color: blue; } /* μš°μ„  적용 */
<body>
  <p>Will be RED.</p>
  <p class="blue red">Will be BLUE.</p>
</body>

μƒμ†κ°œλ…