정규직 전환이 되기 전, 인턴초반에 문제가 생길때마다 팀장님한테 많이 여쭤보았었다. (지금은 이직하신..)
그때 팀장님께서 알려주신 것 중에 cascading이 있다.
당연하다고 생각했지만 명확하게 알지 못하면 관련해서 문제가 생겼을때 원인 파악이 어려울수도 있는 내용이었다.
위와 같이 wrapper에서 color를 지정하면 button에서 당연히 color가 캐스캐이딩 될 것이라 생각했다.
그런데 그렇지 않았다!
처음에는 다른 엘리먼트에 의해 막힌줄 알고 개발자도구를 살펴보았다.
하지만 아무 이유 없이 color:white 가 취소된 상태였다.
혹시 몰라 button태그를 div태그로 바꾸니 cascading이 잘 되었다.
이번 상황을 통해 전혀 몰랐던 것을 알게 되었다.
모든 속성을 부모 엘리먼트로부터 상속 받을 수 있는 것이 아니라는 것이다!
떠올려보니 당연하게도 display속성은 상속받지 않고 각 엘리먼트에서 매번 새롭게 지정해주었었다.
어떤 속성이 상속되고 상속되지 않는지는 이 페이지에 잘 나와 있다.
아래 사진은 나의 경우와 일치하는 상황이다.
이때 color 속성을 부모요소로부터 상속받고 싶다면, inherit을 이용하면 된다.
color:inherit
color 속성에 inherit을 넣어주니 부모요소의 color : white가 잘 캐스캐이딩 되어 화면에 나타난다.
더불어 <a /> 와 <button />은 디폴트로 cascading이 되지 않는다고 한다.
(참고
참고자료
https://poiemaweb.com/css3-inheritance-cascading
CSS3 Inheritance & Cascading | PoiemaWeb
상속이란 상위(부모, 조상) 요소에 적용된 프로퍼티를 하위(자식, 자손) 요소가 물려 받는 것을 의미한다. 상속 기능이 없다면 각 요소의 Rule set에 프로퍼티를 매번 각각 지정해야 한다. 하지만
poiemaweb.com
https://jigeumblog.tistory.com/35
HTML/CSS] CSS에도 상속이 있나요?
상속이란 부모(상위)요소에 적용된 값을 자식(하위)요소가 물려받는 것을 의미합니다. 상속이라는 개념이 없다면, 우리는 부모 밑에 딸린 자식들에게도 같은 매번 속성을 적용해야하는 번거로
jigeumblog.tistory.com
'개발 > CSS' 카테고리의 다른 글
애니메이션 최적화 : transform, opacity (0) | 2023.05.19 |
---|---|
border color에 gradient 넣으면서 가운데 공간을 투명하게 하는 법 (0) | 2022.12.09 |
fit-content와 100%차이 (0) | 2022.11.02 |
CSS-masking image : 이미지에 마스크 씌우기 (1) | 2022.10.23 |
display: inline-block, block, inline (0) | 2022.10.22 |