CSS 는 Cascading Style Sheet의 약자이며 Cascading은 위에서 아래로, 즉 상속이라는 뜻을 가지고 있음.
개발자 도구에서 확인해보면 위에있는 css규칙이 아래를 덮어쓴것을 확인할 수 있는데 이와 같이 같은 요소에 대해 여러개의 스타일이 중복될 경우 스타일 우선순위와 스타일 상속을 통해 어떤 스타일을 적용할지 결정하는 것이 Cascading이다.
: 중요도에 따른다는 것은 스타일이 선언된 위치에 따라 즉, styesheet 종류에 따라 우선순위가 매겨진다는 것
: styesheet는 작성자(author), 사용자(user), 사용자 도구(user agent)가 작성한 세 종류로 나뉘고, 작성자 styesheet > 사용자 styesheet > 사용자 도구 styesheet 와 같이 우선순위가 결정됨
💡 중요도 명시하기 (
!important
)
- 일반적인 순서는 위와 같지만 만약 의도적으로 중요도를 끌어올리고 싶다면 를 사용함
- 중요도를 끌어올리고자하는 속성 뒤에 를 붙여주는 방식으로 사용
- 하지만 스타일 디버깅을 복잡하게 하므로 가급적 사용하지 않는 것을 권장
ex) `속성: 속성값 !important;`
만약 작성자의 stylesheet와 사용자의 stylesheet에 모두 가 적용된다면 기본 우선순위를 따름. 즉 가 적용된 우선순위는 아래와 같음
!important 작성자 styesheet > !important 사용자 styesheet > 작성자 styesheet > 사용자 styesheet > 사용자 도구 styesheet
우선순위를 결정하는 두 번째 요소는 명시도로, 선택자의 복잡도에 따라 명시도가 다르고 명시도에 따라 우선순위가 다름. 즉, 셀렉터가 가리키는 것이 명확할수록 우선순위를 높게 준다는 것
명시도에 따른 우선순위는 인라인 > id > class > 태그 순서
태그의 속성으로 직접 style을 지정하는 인라인은 하나의 태그에서만 적용되므로 그 우선순위가 가장 높고, id는 문서 내에서 한 번만 등장하므로 비교적 좁은 범위를 가지게 됨. class는 여러 번 쓰이므로 넓은 범위를 갖고 태그는 문서 내 모든 태그를 지칭하므로 그 범위가 제일 넓음
스타일 상속은 태그들이 어떻게 포함되었는지에 따라서 스타일을 적용할 지 결정하는 원칙
스타일 상속에 따라 부모 요소의 스타일을 자식 요소가 따라가게 되기 때문에 부모 요소에만 style을 적용해도 자식요소에도 적용됨
: position 속성의 종류로는 static
, relative
, absolute
, fixed
, sticky
가 있음
top
, bottom
, left
, right
, z-index
속성이 적용되지 않음top
, bottom
, left
, right
속성을 이용해서 평소 위치로부터 지정된 값 만큼 이동 가능top
, bottom
, left
, right
속성을 이용해서 position이 static이 아닌 가장 가까운 조상 블록을 기준으로 위치 지정 가능top
, bottom
, left
, right
로 위치조정이 가능하고, 부모 요소안에 갇혀있기 때문에 화면 기준 지정된 위치에 닿았더라도 부모블록 경계에 갇혀 더 이상 화면에 고정되지 않고 움직이게 됨