들어가기 전에
CSS에서 상속은 우리가 기본적으로 알고 있는 부모가 가진 특성을 자식이 물려받는 개념과 같습니다.
어떤 스타일 규칙이 특정 요소뿐만 아니라 그 자손 요소까지 적용되는 것을 말합니다.
상속은 구체성과 더불어 스타일 규칙들이 문서에 어떻게 적용되는지 이해하기 위한 또 다른 중요한 핵심 개념입니다.
상속 관계를 잘 활용하여 CSS의 생산성을 높일 수 있습니다.
핵심키워드
- 상속
- 구체성
학습하기
들어가기 전에
CSS에서 상속은 우리가 기본적으로 알고 있는 부모가 가진 특성을 자식이 물려받는 개념과 같습니다.
어떤 스타일 규칙이 특정 요소뿐만 아니라 그 자손 요소까지 적용되는 것을 말합니다.
상속은 구체성과 더불어 스타일 규칙들이 문서에 어떻게 적용되는지 이해하기 위한 또 다른 중요한 핵심 개념입니다.
상속 관계를 잘 활용하여 CSS의 생산성을 높일 수 있습니다.
핵심키워드
학습하기
상속되는 속성
h1 { color: gray; }
<h1>Hello, <em>CSS</em></h1>
위 코드에서 <em>은 부모인 <h1>의 color: gray를 상속받습니다.
상속은 자연스러운 현상처럼 보이지만, 모든 속성이 다 상속되는 것은 아닙니다.
아직 속성에 대해 다 배우지는 않았지만, margin, padding, background, border 등 박스 모델 속성들은 상속되지 않는다는 것을 알고 계시면 됩니다.
상속되는 속성들은 보통 상식적으로 구분될만한 속성들이며, 후에 속성들에 대해 배우게 되면 자연스럽게 이해할 수 있습니다.
상속되는 속성의 구체성
* { color: red; }
h1#page { color: gray; }
<h1 id="page">Hello, <em>CSS</em></h1>
위 코드에서는 전체 선택자를 이용해 color: red를 적용하고 id 선택자를 이용해 color: gray를 선언했습니다.
전체 선택자의 구체성은 0, 0, 0, 0 이며 id 선택자의 구체성은 0,1,0,1 입니다.
그렇다면 <em>에는 어떤 color가 적용될까요?
color: red가 적용되는데 그 이유는 바로 상속된 속성은 아무런 구체성을 가지지 못하기 때문입니다.
참고자료
https://developer.mozilla.org
comment
상속된 속성은 아무런 구체성을 가지지 못하기 때문입니다.
상속은 부모가 가진 특성을 물려받는데
에서도 부모인 h1#page 의 특성을 자손인 em이 물려받아 회색글씨가 되어야 하는것 아닌가요?
상속의 속성은 구체성을 가지지 못한다.
inherit: 상속. 박스 모델 관련 속성들은 상속되지 않는다.
margin, padding,background,border...
상속된 CSS는 구체성을 가지지 못하기 때문에 구체성을 가진 전체 선택자의 스타일이 적용이된다
머리에 쏙쏙!!