HTML element 는 하나 이상의 스타일에 영향을 받을 수 있기 때문에, 어떤 스타일을 적용 받을지에 대한 우선순위가 결정되어야 한다. 이를 캐스캐이딩 이라고 하며 CSS의 정식 명칭은 Cascading Style Sheets인 만큼 중요하다는 것을 알 수 있다.
캐스캐이딩은 다음 3가지에 의해 결정된다.
!important는 거의 우선순위가 가장 높지만 남용해서는 안된다.
inline 역시 높은 우선순위를 갖지만, style이나 외부 CSS 파일로 빼는 것이 좋다.
<style>
p {
color: red;
}
p {
color:blue;
}
</style>
<div>
<p>Hello</p>
</div
--> 해당 Hello의 글자색은 blue이다.
<style>
div p {
color: red;
}
p {
color:blue;
}
</style>
<div>
<p>Hello</p>
</div>
해당 Hello의 글자색은 코드 순서로만 보면 파란색이 되어야 하는데 실제로 결과는 빨간색이다. 이유가 뭘까 ?
div,p 두 요소에 대해 스타일을 적용시키는 부분 2점 , p 요소에 대해서만 스타일 적용시키는 부분 1점으로 인해 점수가 더 높은 첫 CSS 적용 부분이 최종 적용 부분이 되는 것이다.
ID > CLASS > ELEMENT
ID
: ID SelectorsCLASS
: Class, Attribute, & pseudo-class selectorELEMENT
: element and pseudo-element Selectorshttps://specificity.keegan.st/ (speciticity calculator 사이트)