Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 백준
- 리액트댓글기능
- 자바스크립트
- 리액트
- 몽고DB
- 프로그래머스JS
- 백준nodejs
- 알고리즘
- 리액트커뮤니티
- 백준구현
- HTML
- 백준js
- dp알고리즘
- HTML5
- 익스프레스
- 백준구현문제
- JS
- 프로그래머스
- 프로그래머스코테
- 포이마웹
- 백준알고리즘
- JS프로그래머스
- CSS
- css기초
- 백준골드
- 안드로이드 스튜디오
- 코딩테스트
- 다이나믹프로그래밍
- js코테
- 코테
Archives
- Today
- Total
개발새발 로그
CSS inheritance & Cascading(상속과 적용우선순위) 본문
1. 상속(Inheritance)
상속이란 상위(부모, 조상) 요소에 적용된 프로퍼티를 하위(자식, 자손) 요소가 물려 받는 것을 의미한다. 상속 기능이 없다면 각 요소의 Rule set에 프로퍼티를 매번 각각 지정해야 한다.
하지만 모든 프로퍼티가 상속되는 것은 아니다. 프로퍼티 중에는 상속이 되는 것과 되지 않는 것이 있다.
프로퍼티 | 상속 |
width/height | no |
margin | no |
padding | no |
border | no |
box-sizing | no |
display | no |
visibility | yes |
opacity | yes |
background | no |
font | yes |
color | yes |
line-height | yes |
text-align | yes |
vertical-align | no |
text-decoration | no |
white-space | yes |
position | no |
top/right/bottom/left | no |
z-index | no |
overflow | no |
float | no |
예를 들어 color는 상속되는 프로퍼티로서 자식 요소는 물론 자손 요소까지 적용된다.
하지만 button처럼 요소에 따라 상속 받지 않는 경우도 존재한다.
border, padding은 상속되지 않는 요소로 하위 요소에 적용되지 않는다.
W3C가 제공하는 Full property table의 Inherited?가 yes인 프로퍼티만 상속된다.
상속되지 않는 프로퍼티
상속되지 않는 경우(상속받지 않는 요소 또는 상속되지 않는 프로퍼티), inherit 키워드를 사용하여 명시적으로 상속받게 할 수 있다.
캐스캐이딩(Cascading)
요소는 하나 이상의 CSS 선언에 영향을 받을 수 있다.
이때 충돌을 피하기 위해 CSS 적용 우선순위가 필요한데 이를 캐스캐이딩(Cascading Order)이라고 한다.
캐스캐이딩에는 다음과 같이 세가지 규칙이 있다.
- 중요도
- CSS가 어디에 선언 되었는지에 따라서 우선순위가 달라진다.
- 명시도
- 대상을 명확하게 특정할수록 명시도가 높아지고 우선순위가 높아진다.
- 선언순서
- 선언된 순서에 따라 우선 순위가 적용된다. 즉, 나중에 선언된 스타일이 우선 적용된다.
중요도
CSS가 어디에 선언 되었는지에 따라서 우선순위가 달라진다.
- head 요소 내의 style 요소
- head 요소 내의 style 요소 내의 @import 문
- <link> 로 연결된 CSS 파일
- <link> 로 연결된 CSS 파일 내의 @import 문
- 브라우저 디폴트 스타일시트
명시도
대상을 명확하게 특정할수록 명시도가 높아지고 우선순위가 높아진다.
!important > 인라인 스타일 > 아이디 선택자 > 클래스/어트리뷰트/가상 선택자 > 태그 선택자 > 전체 선택자 > 상위 요소에 의해 상속된 속성
선언순서
선언된 순서에 따라 우선 순위가 적용된다. 즉, 나중에 선언된 스타일이 우선 적용된다.
728x90
반응형
LIST
'CSS' 카테고리의 다른 글
CSS Gradient(그레이디언트) (0) | 2023.06.13 |
---|---|
CSS Shadow(그림자) (0) | 2023.06.13 |
CSS float (0) | 2023.06.13 |
CSS - px, %, em, rem (0) | 2023.06.06 |
CSS Grid (0) | 2023.06.06 |