본문 바로가기
Web Programming/HTML CSS JAVASCRIPT

[CSS] 캐스케이딩

캐스케이딩





캐스케이드는 폭포라는 의미가 있다. 처음 html이 등장 했을 때는 CSS가 없었다. 웹의 사용자들은 곧 디자인을 요구하기 시작하고 웹의 고안자들은 html을 꾸며주는 언어의 필요성에 공감하였고, 그렇게 해서 등장한 것이 CSS이다.


CSS는 Cascading Style Sheet의 약자이다. CSS의 첫번째 글자로 등장 할 만큼 가장 중요한 기능 다시 말해 철학이라는 의미가 있다.

Cascading을 사전에서 찾아보면 폭포라는 의미가 있다. 즉 웹페이지의 디자인이 웹브라우저의 기본 디자인과 브라우저 사용자의 디자인 그리고 웹페이지 저자의 다자인이 결합 될 수 있다는 점에 착안하고 있다고 할 수 있다.


웹브라우저는 기본적으로 html을 해석하는데 html에는 기본적으로 디자인이 되어있다. (h1, h2 같은 것들) 사용자나 웹페이지를 만드는 사람이 개입 할 여지가 별로 없었다. 사용자도 저자도 자기가 보고자 하는 웹페이지의 디자인의 결정권이 있어야 한다.

즉, 웹브라우저, 사용자, 컨텐츠 생성하는 저자가 서로 조화를 이루어서 웹을 만들어 간다는 철학이 들어 간 언어가 CSS이다. 

허나 조화를 이루기 위해서는 대가가 필요했으며 그 대가는 우선순위이다.


하나의 웹페이지에 웹브라우저, 사용자, 저자도 디자인을 적용한다면 웹페이지는 여러 디자인의 영향을 받을 수 밖에 없기에 우선순위를 적용 할 수 밖에 없다.


우선 순위 (하나의 태그에 대해 동시에 적용 했을 때)

웹브라우저 < 사용자 < 저자


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html>
<html>
  <head>
    <style>
      li{color:red;}
      #idsel{color:blue;}
      .classsel{color:green;}
    </style>
  </head>
  <body>
    <ul>
      <li>html</li>
      <li id="idsel" class="classsel" style="color:powderblue">css</li>
      <li>javascript</li>
    </ul>
  </body>
</html>
 
cs


웹 페이지에 표시된 CSS (13번째 줄)의 글자색이 powderblue가 된 것을 확인 할 수 있다.


하나의 태그에 중첩되서 CSS가 적용 되었을 때는 더 명시적인 것이 우선순위가 높다.

1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
  <body>
    우선순위 : 더 명시적인 것이 우선순위가 높다.
    <ol>
      <li>style attribute</li>
      <li>id selector</li>
      <li>class selector</li>
      <li>tag selector</li>
    </ol>
  </body>
</html>
cs

모든 우선 순위를 뛰어 넘을 수 있는 방법도 있다.
1
2
3
4
5
<style>
      li{color:red !important;}
      #idsel{color:blue;}
      .classsel{color:green;}
</style>
cs


'Web Programming > HTML CSS JAVASCRIPT' 카테고리의 다른 글

[CSS] 가상 클래스 선택자  (1) 2018.06.18
[CSS] 부모 자식 선택자  (0) 2018.05.09
[CSS] 선택자  (0) 2018.05.09
[JavaScript] 달력 만들기  (0) 2018.04.15
[JavaScript] 계산기  (0) 2018.04.15