아래 예시는 HTML p element의 글자색을 red로 설정하라는 CSS 문법이다. 이처럼 CSS에서는 선택자를 설정하고, 선언문을 통해 속성과 속성값을 선언함으로써 특정 HTML element에 스타일을 적용할 수 있다.
p { color: red; }
// 선택자 { 속성: 속성값; }
선택자를 설정하는 것은 곧, 많은 HTML element 중에서 어떤 element에 스타일을 적용할지 결정하는 것이다.
선택자는 한 HTML 문서의 전체 element를 선택하는 전체 선택자부터, 특정 ID를 속성값으로 가진 element만을 선택하는 ID 선택자까지, 스타일을 적용하고자 하는 조건에 따라 추상적으로 선택하는 방법과 구체적으로 선택하는 방법이 그 정도에 따라 다양하게 존재한다.
또, '버튼이 클릭 되었을 때', '마우스를 버튼 위에 올렸을 때' 등 상태에 따른 선택자도 있으며, 이처럼 넓은 범위의 선택폭은 인터렉티브 한 웹 어플리케이션에 다채로운 스타일을 적용할 수 있게 한다.
본 글에서는 CSS 선택자 중에서도 가장 기본이 되는 선택자를 추상적인 선택자에서 더 구체적인 선택자 순으로 알아본다.
1. 전체 선택자 (*)
HTML element 전체를 선택하는 선택자이며, 가장 추상적인 선택자이다.
* {
color: red;
}
위 예시 코드의 경우 문서 내 모든 HTML 태그에 color: red; 스타일이 적용된다.
2. 유형 선택자 (element-name)
HTML element의 유형을 선택자로 하여, 문서 내 해당 element 전부에 스타일을 적용하는 선택자이다.
li {
color: red;
}
위와 같이 코드를 작성하면 li element의 글자색을 red로 설정하라는 선언문에 따라 HTML 문서 내 모든 li element 원소의 색이 red로 설정된다.
3. 클래스 선택자 (.class-name)
클래스 이름을 선택자로 하여, 해당 클래스를 갖고 있는 모든 element에 스타일을 적용한다.
li {
color: red;
}
.list-item {
color: blue;
}
li element에 기본적으로 color: red;를 적용하고, li element 중 list-item이라는 클래스를 가진 element의 color를 blue로 설정하면, 모든 li element의 color값은 red이지만 해당 클래스를 가진 li element만 color값이 blue가 된다.
4. ID 선택자 (#ID-name)
ID를 선택자로 하여, 해당 ID 값을 갖고 있는 element의 스타일을 변경하며, 본 글에서 다룬 선택자 중 가장 구체적이다.
HTML 문서에서 한 element가 공백으로 구분된 여러 개의 클래스를 가질 수 있는 것과 달리 한 element는 하나의 ID만을 가질 수 있고, 한 ID는 문서 내 고유한 값이어야 하기에, ID 선택자를 활용하면 한 element를 특정지어 스타일을 적용할 수 있다.
li {
color: red;
}
.list-item {
color: blue;
}
#specific-list-item {
color: yellow;
}
만약 문서 내 모든 li의 color값이 red, list-item 클래스를 가진 li의 color값이 blue로 적용되어 있다고 가정하면,
ID 선택자를 활용하면 list-item 클래스가 적용된 li element 중에서도 특정 ID(예시의 경우 specific-list-item)를 가진 li element만을 선택하여 스타일을 변경할 수 있다.
선택자 우선순위
전체 선택자에서 ID 선택자까지 살펴보며, 더 구체적인 선택자로 적용한 스타일이 추상적인 선택자로 적용한 스타일을 덮어쓴다는 것을 확인했다. 그렇다면 더 구체적인 선택자가 우선적으로 선택되는 원리는 무엇일까?
바로 선택자 우선순위 규칙에 의해서이다.
본 글에서 다룬 선택자로만 한정 지어 우선순위의 대소관계를 정리하면 다음과 같다.
ID 선택자 > 클래스 선택자 > 유형 선택자 > 전체 선택자
ID 선택자 한 개 당 100점의 우선순위 점수 부여
클래스 선택자 한 개 당 10점의 우선순위 점수 부여
유형 선택자 한 개 당 1점의 우선순위 점수 부여
전체 선택자는 0점의 우선순위 점수 부여
그리고 이와 같은 규칙에 따라 더욱 구체적인 선택자로 적용된 스타일이 추상적인 선택자로 적용된 스타일보다 우선적으로 적용된다.
참고자료
CSS 선택자 - CSS: Cascading Style Sheets | MDN
CSS 선택자는 CSS 규칙을 적용할 요소를 정의합니다.CSS 선택자는 CSS 규칙을 적용할 요소를 정의합니다.
developer.mozilla.org
https://developer.mozilla.org/ko/docs/Web/HTML/Global_attributes/id
id - HTML: Hypertext Markup Language | MDN
id 전역 특성은 문서 전체에서 유일한 고유식별자(ID)를 정의합니다.
developer.mozilla.org
https://developer.mozilla.org/ko/docs/Web/HTML/Global_attributes#attr-class
전역 특성 - HTML: Hypertext Markup Language | MDN
전역 특성(Global attributes)은 모든 HTML에서 공통으로 사용할 수 있는 특성입니다. 그러나 일부 요소에는 아무런 효과도 없을 수 있습니다.
developer.mozilla.org
선택자(Selector)의 우선 순위::CSS 레퍼런스
Draft 선택자(Selector)의 우선 순위 적용 순서에 따른 우선 순위 규칙 같거나 서로 다른 선택자 방식으로 동일 요소에게 동일 속성을 뒤쪽에서 다른 값으로 재정의할 수 있다.서로 나누어진 CSS 코드
www.devdic.com
'SW > CSS' 카테고리의 다른 글
CSS Box Model과 box-sizing (0) | 2022.07.04 |
---|
댓글