CSS에서 모든 Property가 상속되는 것은 아니다.
inherit
키워드를 이용하면 명시적으로 상속받게 할 수 있다.모든 요소도 상속 받는 것은 아니다.
.class1 {
color: blue;
}
<div class='class1'>
<p>Hello</p>
<p>World</p>
<p>!!!</p>
<button>click me</button>
</div>
.class1 > button {
color: inherit;
}
❓ 참조
* { color: red; } .class1 { color: blue; }
<h1 class='class1'>Hello, <strong>World</strong></h1>
Hello,와 World 둘다 색상이 blue
일거라 생각되지만World 색상은 Red
이다. 왜냐하면상속된 속성은 구체성을 가지지 못하기 때문에
우선순위에 밀리게 되어 전체 선택자의 속성을 가진다.
캐스캐이딩
이라고 한다.캐스캐이딩
은 크게 세 가지 규칙이 존재한다.1. 프로그래머 CSS
2. 사용자 CSS
3. 브라우저 CSS
명확하게 특정
할 수록 우선순위가 높아진다.
!important > 인라인 스타일 > 아이디 선택자 > 클래스/어트리뷰트/가상 선택자 > 태그 선택자 > 전체 선택자 > 상위 요소에 의해 상속된 속성
선언 순서
에 따라 우선순위가 다르다.나중에 선언된 스타일이 우선 적용
❓ 참조
Q."index 1"
의 폰트 색상은?<style> .box { color: red !important; } .index > .in_item { color: pink; } div ul .in_item { color: orange; } .in_item.in1 { color: black; } p + ul.index { color: yellow; } </style>
<div class="box" style="color: yellow"> <h1 class="title">title</h1> <p class="desc">description</p> <ul class="index" style="color: blue;"> <li class="in_item in1">index 1</li> <li class="in_item ">index 2</li> </ul> </div>
정답은 아래를 드래그 해주세요.
[black입니다] CSS 규칙에 따라 직접 대상 요소는 요소가 부모로부터 상속받는 규칙보다 항상 우선시 하기 때문에 아무리 important와 인라인으로 지정했더라도 li 대상 요소는 구체성이 높은 black으로 지정된다.