Bomb Kirby Running

CSS

CSS 선택자 알아보기

^. ̫ .^ 2023. 2. 26. 03:59

728x90

type선택자

CSS Type Selector는 HTML 요소의 태그 이름을 사용하여 스타일을 적용하는 선택자입니다.

예를 들어, 모든 p 요소에 스타일을 적용하려면 다음과 같이 작성할 수 있습니다.

p {
  color: blue;
}

위의 예제에서 "p"는 선택자이며, 이 선택자는 모든 "p" 요소를 선택합니다.

Type Selector는 다른 선택자와 함께 사용하여 더 정확한 선택을 할 수 있습니다. 예를 들어, 클래스 선택자와 Type Selector를 결합하여 클래스가 "my-class"이고 태그 이름이 "p"인 요소를 선택하려면 다음과 같이 작성할 수 있습니다.

p.my-class {
  color: red;
}

id 선택자 (ID Selector)

id 선택자는 HTML 요소의 id 속성을 사용하여 스타일을 적용합니다.

id 선택자는 해시 기호(#)로 시작합니다.

id로 이름을 유일한 이름을 부여해야합니다.

예를 들어, ID가 "my-id"인 요소에 스타일을 적용하려면 다음과 같이 작성할 수 있습니다.

#my-id {
  font-size: 20px;
}

클래스 선택자 (Class Selector)

클래스 선택자는 HTML 요소의 클래스 속성을 사용하여 스타일을 적용합니다.

클래스 선택자는 마침표(.)로 시작합니다.

여러 개의 요소에 같은 class요소를 부여할 수 있습니다.

하나의 클래스 요소에 여러개의 class명을 부여할  수 있습니다.

예를 들어, 클래스 이름이 "my-class"인 요소에 스타일을 적용하려면 다음과 같이 작성할 수 있습니다.

.my-class {
  color: red;
}

 


전체 선택자

전체 선택자는 모든 HTML 요소를 선택하여 스타일을 적용하는 선택자입니다.

전체 선택자는 별표(*)로 표시됩니다

이 선택자를 사용하면 HTML 문서의 모든 요소에 동일한 스타일이 적용됩니다.

특정 요소에 대한 세부적인 제어가 불가능하므로 가능한 경우에는 전체 선택자를 사용하지 않는 것이 좋습니다.

* {
  color: red;
}

위와 같이 작성하면  전체 요소의 색은 빨간 색이 됩니다.


하위 선택자

요소 내부에 있는 모든 해당 요소를 가리키며, 선택자 사이를 공백으로 분리합니다.

div p {
  color: blue;
}

ul li {
  color: green;
}

예제에서 첫 번째 CSS 규칙인 "div p"는 div 요소 안에 있는 모든 p 요소에 대해 글자 색상을 파란색으로 설정합니다.

두 번째 CSS 규칙인 "ul li"는 ul 요소 안에 있는 모든 li 요소에 대해 글자 색상을 초록색으로 설정합니다.

이와 같이 하위 선택자를 사용하면 HTML 문서의 구조를 이용하여 요소를 더욱 세부적으로 선택할 수 있습니다.


자식 선택자

요소 내부에  있는 해당 요소를 가르킵니다.

그러나 하위 요소의 하위요소는 가르키지 않습니다.

부모 요소와 하위 요소 사이에는 ">" 기호를 사용하여 표시합니다.

선택자를 사용하면 하위 요소 중에서도 직계 하위 요소에 대해서만 스타일을 적용할 수 있습니다.

ul > li {
  font-weight: bold;
}

ul > li > ul {
  list-style: none;
}

인접 선택자

특정 요소 바로 다음에 오는 형제 요소를 선택하는 선택자입니다.

인접 선택자는 두 개의 선택자로 이루어져 있으며, 첫 번째 선택자 다음에 "+" 기호를 사용하여 표시합니다.

이 선택자를 사용하면 첫 번째 요소의 바로 다음에 오는 형제 요소에 대해서만 스타일을 적용할 수 있습니다.

<p>Paragraph 1</p>
<h2>Heading 1</h2>
<p>Paragraph 2</p>
<h2>Heading 2</h2>
h2 + p {
  font-style: italic;
}

위의 예제에서 CSS 규칙인 "h2 + p"는 h2 요소 바로 다음에 오는 p 요소에 대해 글자를 이탤릭체로 설정합니다.

따라서 위의 예제에서 Paragraph 2 요소에 대해서만 이탤릭체 스타일이 적용됩니다.

이와 같이 인접 선택자를 사용하면 특정 요소의 바로 다음에 오는 요소에 대해 스타일을 적용할 수 있습니다.


형제 선택자

특정 요소 다음에 오는 모든 형제 요소를 선택하는 선택자입니다.

형제 선택자는 두 개의 선택자로 이루어져 있으며, 첫 번째 선택자 다음에 "~" 기호를 사용하여 표시합니다.

이 선택자를 사용하면 첫 번째 요소 다음에 오는 모든 형제 요소에 대해서 스타일을 적용할 수 있습니다.

<p>Paragraph 1</p>
<h2>Heading 1</h2>
<p>Paragraph 2</p>
<h3>Heading 2</h3>
<p>Paragraph 3</p>
h2 ~ p {
  color: blue;
}

그룹 선택자

CSS 그룹 선택자는 여러 개의 요소를 동시에 선택하여 스타일을 적용할 수 있는 선택자입니다.

그룹 선택자는 쉼표(,)로 구분된 여러 개의 선택자로 이루어져 있습니다.

이 선택자를 사용하면 선택된 모든 요소에 대해서 동일한 스타일을 적용할 수 있습니다.

<h1>Heading 1</h1>
<h2>Heading 2</h2>
<h3>Heading 3</h3>
h1, h2, h3 {
  text-align: center;
  font-weight: bold;
}

위의 예제에서 CSS 규칙인 "h1, h2, h3"는 h1, h2, h3 요소에 대해 글자 정렬을 중앙으로, 글꼴 두께를 굵게 설정합니다.

이와 같이 그룹 선택자를 사용하면 여러 요소에 대해 동일한 스타일을 한 번에 적용할 수 있습니다.


속성 선택자

 

속성 선택자는 HTML 요소의 특정 속성 값을 사용하여 스타일을 적용합니다.

속성 선택자는 대괄호([]) 안에 속성 이름과 선택자 값을 작성합니다.

예를 들어, "href" 속성 값이 "https://www.example.com"인 a 요소에 스타일을 적용하려면 다음과 같이 작성할 수 있습니다.

a[href="https://www.example.com"] {
  text-decoration: none;
}

가상 클래스 선택자

가상 클래스 선택자는 링크가 걸린 문자에 스타일을 적용합니다.

가상 클래스 선택자는 콜론(:)으로 시작합니다.

속성 값 설명
a:link 링크가 걸린 문자에 속성을 부여하는 선택자
a:visited 링크를 클릭하여 해당 페이지에 갔다가 들어온 경우의 속성을 부여하는 선택자
a:hover 링크가 걸린 문자에 마우스가 닿았을 경우 속성을 부여하는 선택자
a:active 링크 걸린 글자가 활성화 되었을 경우 속성을 부여하는 선택자
(클릭했다가 돌아왔거나 클릭하려다 만 경우)
a:focus 링크 걸린 글자에 포커스가 생길 경우 속성을 부여하는 선택자
(키보드의 [tab] 키 등으로 포커스가 나타날 경우)

예를 들어, 링크를 방문한 후에 적용되는 가상 클래스 선택자는 다음과 같습니다.

a:visited {
  color: purple;
}

가상요소 선택자

가상 요소 선택자는 요소에 id명이나 class명을 부여하지 않고도 위치를 찾아서 선택할 수 있는 선택자 입니다.

가상 요소 선택자는 콜론 두 개(::)로 시작합니다.

속성 값 설명
:first-letter 요소의 첫 글자
:first-line 요소의 첫 줄
:first-child 같은 요소 중 첫번째 요소
:last-child 같은 요소 중 마지막 요소
nth-child(n) 같은 요소 중 n번쨰 요소
:before 요소 안 맨 앞에 배치될 요소 (마크업에는 없는 가상요소)
:after 요소 안 맨 뒤에 배치될 요소(마크업에는 없는 가상요소)

예를 들어, 요소의 내용 앞에 새로운 콘텐츠를 추가하는 가상 요소 선택자는 다음과 같습니다.

p::before {
  content: ">";
}

 


종속 선택자 

종속 선택자는 한 요소의 하위 요소 중에서 특정한 요소를 선택하는 데 사용됩니다.

이 선택자는 공백 문자로 구분된 두 개의 선택자로 이루어져 있습니다.

왼쪽 선택자가 상위 요소를, 오른쪽 선택자가 하위 요소를 나타냅니다.

상위 요소에 대한 참조를 사용하여 하위 요소에 스타일을 적용할 수 있으므로 보다 복잡한 스타일을 적용할 수 있습니다.

<div class="parent">
  <p>첫 번째 단락</p>
  <p>두 번째 단락</p>
</div>
.parent p {
  color: blue;
}

 

".parent p"는 class가 "parent"인 div 요소의 하위 p 요소에 적용됩니다.

따라서 위의 CSS 규칙은 첫 번째 p 요소와 두 번째 p 요소 모두에 대해 글자 색상을 파란색으로 설정합니다.


선택자의 우선순위

같은 선택자가 여러 CSS명령을 중복으로 받을 때 우선으로 실행되는 순위가 있습니다.

Type 선택자<class 선택자, 가상 선택자<id 선택자<inline style<!important

부여한 속성이 적용되지 않는다면 이전에 작성한 css중 더 높은 순위를 갖는 선택자가 있었는지 의심해봐야 합니다.

선택자의 우선순위로 인해 많은 난관에 부딪히기도 하고, 반대로 잘 이용하면 어려운 문제의 해법이 되기도 하니

잘 숙지합시다!