코딩/CSS

CSS 선택자(Selector) (1)

moodyblues 2021. 12. 8. 16:10

CSS 선택자(Selector)

선택자란: 어떤 요소에 style을 적용할 것인가, 스타일을 적용할 요소에 대한 정보.
css 기본 문법, 즉 선택자{ 속성명: 속성값; }, 즉 중괄호 안에 그 정보를 표시한다.

선택자의 종류

  • 기본 선택자: 단순 선택자(simple selectors = 이름, 아이디, 클래스 기반)
  • 그룹 선택자
  • 특성 선택자
  • 결합 선택자
  • 의사 클래스
  • 의사 요소

1. 기본 선택자

1) 전체 선택자(universal selector)

전체 선택자는 html 웹 문서를 구성하고 있는 모든 요소를 선택한다.
기호 애스터리스크(* 기호)는  css에서 문서 안의 모든 요소를 지시하는 css 기호이다.

* {
  text-align: center;
  color: green;
}
전체 선택자(universal selector)

전체 선택자(universal selector)
전체 선택자(universal selector)

2) 태그 선택자(element selector)

주어진 이름(태그 이름)을 가진 요소를 선택한다. 주어진 이름이란 태그 이름을 의미한다.  '유형 선택자'라고도 한다. 
주어진 (태그) 이름을 가진 요소가 다수일 경우에는 해당 요소들을 모두 선택한다. 즉 p라는 이름을 가진 요소를 모두 선택한다.

p {
  text-align: center;
  color: red;
}
태그 선택자(element selector)

태그 선택자(element selector)
태그 선택자(element selector)

3) 클래스 선택자

속성 클래스는 전역 속성이다.  전역 속성이란 html 모든 요소에 지정할 수 있는 속성이다.
클래스 선택자는 주어진 클래스 속성 값을 가진 요소를 모두 선택한다. 태그 선택자와 마찬가지로 그 클래스를 가진 요소가 다수일 경우에는 해당 요소 모두를 선택한다. 클래스 선택자에는 기호 점(.)이 사용된다.

<style>
.bb {
  text-align: center;
  color: red;
}
</style>
</head>
<body>
<h1>Hello Selector</h1>
<p>선택자</p>
<p id="aa">Hello id 선택자!</p>
<p class="bb">Hello 클래스 선택자!</p>
클래스 선택자

클래스 선택자
클래스 선택자

4) id 선택자

속성 id는 클래스와 마찬가지로 전역 속성이다.
id 선택자에는 샾(#) 기호를 사용한다.

클래스 선택자와의 차이점

클래스는 동일한 클래스 속성 값을 가진 주소가 여러 개 있을 수 있다. 그러나 id는 문서 내에서 고유한 값을 가지므로 id 선택자는 기본적으로 단 하나의 요소를 선택하고 싶을 때 사용한다.

<style>
#aa {
  text-align: center;
  color: red;
}
</style>
</head>
<body>
<h1>Hello Selector</h1>
<p>선택자</p>
<p id="aa">Hello id 선택자!</p>
<p class="bb">Hello 클래스 선택자!</p>
id 선택자

id 선택자
id 선택자

2. 그룹 선택자

다양한 유형의 요소를 한꺼번에 선택할 때 사용한다. 각 요소들을 구분해 주는 쉼표를 구분자로 사용한다. 
선택자가 겹치는 경우가 발생하기도 하는데, 선택자가 겹치는 경우 나중에 작성된 스타일이 적용된다.

선택자 유형은 다르면서 요소는 같은 것을 선택하는 경우에는 선택자 우선순위에 의한다.

<style>
h1, p, ul {
  text-align: center;
  color: red;
}
</style>
</head>
<body>
<h1>Hello Selector</h1>
<p>선택자</p>
<p id="aa">Hello id 선택자!</p>
<p class="bb">Hello 클래스 선택자!</p>
<ul>
    <li>1</li>
    <li>2</li>
</ul>
그룹 선택자

그룹 선택자
그룹 선택자

1) 선택자 우선순위

id 선택자> 클래스 선택자> 태그 선택자

.bb {
  text-align: center;
  color: blue;
}
p{
text-align: center;
color: red;
}
</style>
</head>
<body>
<h1>Hello Selector</h1>
<p>선택자</p>
<p id="aa">Hello id 선택자!</p>
<p class="bb">Hello 클래스 선택자!</p>
<ul>
    <li>1</li>
    <li>2</li>
</ul>
선택자 우선 순위

 


선택자 우선 순위에서 클래스 선택자가 태그 선택자보다 앞선다
선택자 우선 순위에서 클래스 선택자가 태그 선택자보다 앞선다

위의 예시에서 선택자가 겹치는 경우 나중에 작성된 스타일이 적용되지만, 클래스 선택자가 태그 선택자보다 우선순위이므로 선택자 우선순위에 의해 blue색은 표시된다.