CSS

CSS의 선택자 알아보기

진블로그 2023. 2. 26. 14:50
다른 명언

728x90
반응형

HTML문서에 CSS로 스타일을 주기 위해서는 선택자를 통해서 해당 요소를 선택한 뒤 해당 스타일을 줘야 합니다.

CSS 에서, 선택자는 스타일을 지정할 웹 페이지의 HTML 요소를 대상으로 하는 데 사용됩니다. 사용 가능한 다양한 CSS 선택자가 있으며, 스타일을 지정할 요소를 선택할 때 세밀한 정밀도를 허용합니다.

 

1. type선택자

지정된 태그명을 가지는 요소를 선택합니다.

type선택자를 사용하면 특정 태그로 마크업된 모든 요소(element)를 선택할 수 있습니다.

웹페이지 상의 모든 <p> 요소의 글꼴 색을 파란색으로 스타일하기 위한 CSS 코드는 다음과 같습니다.

 p { color: blue; }

 

2. id 선택자

html 문서의 요소 중 같은 요소라도 각기 다른 이름을 지정하여 따로 속성을 부여할 수 있습니다.

html 요소에 id로 이름을 붙일 때는 유일한 이름을 부여해야 하며, 다른 요소에 같은  id명을 주어서는 안됩니다. 

css에서는 id선택자 앞에 '#'을 붙여야 합니다. 

다음과 같이 cute 아이디에 대한 스타일을 선언하는 예시는 다음과 같습니다.   #cute{ color: blue; }

<h1 id="cute">제목</h1>  

 

3. class 선택자 

html 요소에 같은 이름을 부여할 떄에는 class로 이름을 붙입니다. 즉 여러 개의 요소에 같은 class명을 부여할 수 있습니다. css에서는 class선택자 앞에 '.'을 붙여야 합니다. 

.atxt { font-weight: bold; }    // 클래스 명이 atxt인 p요소의 글자를 굵게 표시

<p class="atxt">안녕</p> 

4. 전체 선택자

전체 선택자는 페이지의 모든 요소를 가리키는 선택자로서 '*'로 표시 합니다. 

*{ color: red; } 는 페이지 내의 모든 요소들을 빨간색으로 표시하도록 속성을 부여합니다.

 

5. 하위 선택자

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

하위 선택자는 스타일을 적용하고자 할 때 부모에게 포함된 모든 요소에 스타일을 적용하는 것입니다. 

abox 클래스 내부의 있는 모든 p태그들의 문자를 파란색으로 표시하도록 속성을 부여하고 싶은 경우.abox p {color : blue}; 로 작성할 수 있습니다.

 

6. 자식 선택자 

자식 선택자는 ">" 기호를 사용하여 표시합니다. 예를 들어, "ul > li"는 ul 요소의 직계 자식인 li 요소를 선택합니다. 이것은 ul 요소 내부에 있는 모든 li 요소를 선택하는 것이 아니라, ul 요소의 직계 자식인 li 요소만을 선택합니다.

ul > li { color: red; }

만약 ul 요소의 자손인 모든 li 요소의 글씨 색상을 변경하려면, 자식 선택자 대신 후손 선택자인 "ul li"를 사용해야 합니다.

 

7.인접 선택자

인접 선택자는 "+" 기호를 사용하여 표시합니다. 예를 들어, "h1 + p"는 h1 요소 다음에 오는 첫 번째 p 요소를 선택합니다. 이것은 h1 요소와 직접적으로 연결된 첫 번째 p 요소만을 선택합니다.

h1 + p { color: blue; }

이 예시에서는 h1 요소 다음에 오는 첫 번째 p 요소의 글씨 색상을 파란색으로 지정합니다. 이와 같이 인접 선택자는 특정 요소의 바로 다음 형제 요소를 선택하는 데 유용합니다.

 

8. 형제 선택자

형제 선택자는 현재 요소와 같은 계층에 있는 요소만을 선택할 수 있으며 '~'로 구분합니다.

형제 선택자는 "~" 기호를 사용하여 표시합니다. 예를 들어, "p ~ span"은 p 요소와 같은 계층 구조에 있는 모든 span 요소를 선택합니다. 이것은 p 요소 이후에 나오는 모든 span 요소를 선택합니다.

p ~ span { font-weight: bold; }

이 예시에서는 p 요소 이후에 나오는 모든 span 요소의 글씨체를 굵게(bold) 지정합니다. 이와 같이 형제 선택자는 특정 요소와 같은 계층 구조에 있는 다른 요소들 중에서 선택할 때 유용합니다.

 

9. 그룹 선택자

그룹 선택자는 쉼표(,)를 사용하여 표시합니다. 예를 들어, "h1, h2, h3"은 h1, h2, h3 요소들을 모두 선택합니다.

h1, h2, h3 { font-family: Arial, sans-serif; color: #333; }

이 예시에서는 h1, h2, h3 요소들의 글씨체를 Arial, sans-serif로, 글씨 색상을 #333으로 지정합니다. 이와 같이 그룹 선택자는 여러 개의 요소를 선택하여 동일한 스타일을 적용할 때 유용합니다.

 

10. 속성 선택자

html 요소의 속성 유무 또는 속성값을 중괄호 [] 안에 넣어 선택자로 사용할 수 있습니다. 예를 들어, "a[target]"는 target 속성을 가진 모든 a 요소를 선택합니다.

속성 선택자는 속성 값을 함께 지정하여 사용할 수도 있습니다. 예를 들어, "a[target='_blank']"는 target 속성 값이 "_blank"인 모든 a 요소를 선택합니다.

a[target] { color: blue; }

a[target='_blank'] { text-decoration: none; }

이 예시에서는 target 속성을 가진 모든 a 요소의 글씨 색상을 파란색으로 지정합니다. 또한, target 속성 값이 "_blank"인 모든 a 요소의 밑줄을 제거합니다. 이와 같이 속성 선택자는 특정 HTML 속성을 가진 요소를 선택하여 스타일을 지정하는 데 유용합니다.

 

11. 가상 클래스 선택자

가상 클래스 선택자란 링크가 걸린 문자에 스타일을 부여하는 것입니다.

가상 클래스 선택자는 콜론(:)을 사용하여 표시합니다. 예를 들어, "a:hover"은 마우스 커서가 a 요소 위에 있을 때의 상태를 선택합니다.

 

가상 클래스 선택자 중 일부는 다음과 같습니다.

  • a:hover  마우스 커서가 요소 위에 있을 때
  • a:active  마우스 클릭 시 요소가 활성화되었을 때
  • a:focus  요소가 포커스를 받았을 때
  • a:active  링크 걸린 글자가 활성화되었을 경우 속성을 부여하는 선택자
  • a:visited  링크를 클릭하여 해당 페이지에 갔다가 돌아온 경우의 속성을 부여하는 선택자

12. 가상요소 선택자 

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

가상요소 선택자는 콜론(:)을 사용하여 표시합니다. 예를 들어, ":before"은 요소의 시작 부분에 콘텐츠를 추가하고 이를 스타일링할 때 사용됩니다.

가상요소 선택자 중 일부는 다음과 같습니다.

  • :before 요소의 시작 부분에 콘텐츠를 추가할 때
  • :after 요소의 끝 부분에 콘텐츠를 추가할 때
  • :first-letter 요소의 첫 글자에 스타일을 지정할 때
  • :first-line 요소의 첫 번째 줄에 스타일을 지정할 때
  • :nth-child(n) 같은 요소 중 n번째 요소
  • :first-child 같은 요소 중 첫 번째 요소
  • :last-child 같은 요소 중 마지막 요소

13. 종속 선택자

종속 선택자는 요소 간의 계층 구조를 활용하여 특정 요소를 선택할 때 사용됩니다.

종속 선택자는 type 선택자와 id선택자, class 선택자가 결합한 형태입니다.

<p id="axtx">선택자의 다양한 표현</p>

마크업이 위와 같을 때 #atxt 와 p#atxt 는 같은 선택자입니다. 다만 둘의 우선순위는 p#atxt가 #atxt보다 높은 우선순위를 갖게 됩니다.

 

14. 선택자의 우선순위

CSS 스타일 시트에서 스타일을 지정하는 선택자들은 우선순위가 존재합니다. 스타일 우선순위는 다음의 규칙에 따라 결정됩니다.

  1. 인라인 스타일(inline style) : style 속성을 통해 직접 지정한 스타일은 다른 선택자보다 우선순위가 가장 높습니다.
  2. ID 선택자 : id 선택자를 통해 스타일을 지정한 것이 다른 선택자보다 우선순위가 높습니다.
  3. 클래스 선택자, 가상 클래스 선택자, 속성 선택자 : 클래스 선택자, 가상 클래스 선택자, 속성 선택자로 스타일을 지정한 것이 다른 선택자보다 우선순위가 높습니다.
  4. 요소 선택자, 가상 요소 선택자 : 요소 선택자, 가상 요소 선택자로 스타일을 지정한 것이 다른 선택자보다 우선순위가 낮습니다.
  5. 전체 선택자 : 전체 선택자(*)는 어떤 선택자보다도 우선순위가 가장 낮습니다.

전체 순위는 다음과 같습니다

Type 선택자 < class 선택자, 가상 선택자 < id 선택자 < 인라인 스타일 < !important

 

또한, 스타일 우선순위가 동일한 경우 나중에 선언된 스타일이 우선순위가 더 높습니다. 이러한 스타일 우선순위 규칙을 이해하면 원하는 스타일이 적용되도록 적절한 선택자를 사용할 수 있습니다.

 

 

728x90