1. 속성 선택자(attribute selectors)

  - 특정 속성이나 특정 속성값을 가지고 있는 HTML 요소를 선택한다.

 

2. 기본 속성 선택자

  • [속성이름] 선택자
  • [속성이름="속성값"] 선택자

2-1 [속성이름]

<style>
    [title] {
        color: red;
    }
    [href] {
        color: gray
    }
</style>
<body>
    <h2>[속성이름] 선택자</h2>
    <p title="first-p">first</p>
    <a href="http://naver.com">네이버</a>
</body>

  - 특정 속성을 가지고 있는 요소를 모두 선택한다.

 

2-2 [속성이름="속성값"] 선택자

<style>
    [title="first"] {color: red;}
</style>
<body>
    <h2>[속성이름*="속성값"] 선택자</h2>
    <p title="first">first</p>
    <p title="first-1">first-1</p>
    <p title="1-first">1-first</p>
    <p title="first_">first_</p>
    <p title="_first">_frist</p>
    <p title=" first">[공백]first</p>
    <p title="first ">first[공백]</p>
    <p title="firstsecond">firstsecond</p>
    <p title="secondfirst">secondfirst</p>
</body>

  - 특정 속성을 가지고 있으며, 해당 속성의 속성값까지 일치하는 요소를 모두 선택한다.

  - 하이픈(-)이 있으면 선택되지 않는다

  - 언더바(_)가 있으면 선택되지 않는다.

  - 공백이 있으면 선택되지 않는다.

  - 합성어가 있으면 선택되지 않는다.

 

3. 문자열 속성 선택자

  • [속성이름~="속성값"] 선택자
  • [속성이름|="속성값"] 선택자
  • [속성이름^="속성값"] 선택자
  • [속성이름$="속성값"] 선택자
  • [속성이름*="속성값"] 선택자

 

3-1 [속성이름~="속성값"] 선택자

<style>
    [title~="first"] {color: red;}
</style>
<body>
    <h2>[속성이름~="속성값"] 선택자</h2>
    <p title="first-1">first-1</p>
    <p title="1-first">1-first</p>
    <p title="first_">first_</p>
    <p title="_first">_frist</p>
    <p title=" first">[공백]first</p>
    <p title="first ">first[공백]</p>
    <p title="firstsecond">firstsecond</p>
    <p title="secondfirst">secondfirst</p>
</body>

  - 특정 속성의 속성값에 특정 문자열로 이루어진 하나의 단어를 포함하는 요소를 모두 선택한다.

  - 하이픈(-)이 있으면 선택되지 않는다

  - 언더바(_)가 있으면 선택되지 않는다.

  - 공백이 있어도 선택된다.

  - 합성어가 있으면 선택되지 않는다.

 

3-2 [속성이름|="속성값"] 선택자

<style>
    [title|="first"] {color: red;}
</style>
<body>
    <h2>[속성이름|="속성값"] 선택자</h2>
    <p title="first-1">first-1</p>
    <p title="1-first">1-first</p>
    <p title="first_">first_</p>
    <p title="_first">_frist</p>
    <p title=" first">[공백]first</p>
    <p title="first ">first[공백]</p>
    <p title="firstsecond">firstsecond</p>
    <p title="secondfirst">secondfirst</p>
</body>

  - 특정 속성의 속성값이 특정 문자열로 이루어진 하나의 단어로 시작하는 요소를 모두 선택한다.

  - "first" 뒤에 하이픈(-)이 있어도 선택된다.

  - 언더바(_)가 있으면 선택되지 않는다.

  - 공백이 있으면 선택되지 않는다.

  - 합성어가 있으면 선택되지 않는다.

 

3-3 [속성이름^="속성값"] 선택자

<style>
    [title^="first"] {color: red;}
</style>
<body>
    <h2>[속성이름^="속성값"] 선택자</h2>
    <p title="first-1">first-1</p>
    <p title="1-first">1-first</p>
    <p title="first_">first_</p>
    <p title="_first">_frist</p>
    <p title=" first">[공백]first</p>
    <p title="first ">first[공백]</p>
    <p title="firstsecond">firstsecond</p>
    <p title="secondfirst">secondfirst</p>
</body>

  - 특정 속성의 속성값이 특정 문자열로 시작하는 요소를 모두 선택한다.

  - "first" 뒤에 하이픈(-)이 있어도 선택된다.

  - "first" 뒤에 언더바(_)가 있어도 선택된다.

  - "first" 뒤에 공백이 있어도 선택된다.

  - "first"로 시작하는 합성어도 선택된다.

 

3-4 [속성이름$="속성값"] 선택자

<style>
    [title$="first"] {color: red;}
</style>
<body>
    <h2>[속성이름$="속성값"] 선택자</h2>
    <p title="first-1">first-1</p>
    <p title="1-first">1-first</p>
    <p title="first_">first_</p>
    <p title="_first">_frist</p>
    <p title=" first">[공백]first</p>
    <p title="first ">first[공백]</p>
    <p title="firstsecond">firstsecond</p>
    <p title="secondfirst">secondfirst</p>
</body>

  - 특정 속성의 속성값이 특정 문자열로 끝나는 요소를 모두 선택한다.

  - "first" 앞에 하이픈(-)이 있어도 선택된다.

  - "first" 앞에 언더바(_)가 있어도 선택된다.

  - "first" 앞에 공백이 있어도 선택된다.

  - "first"로 끝나는 합성어도 선택된다.

 

3-5 [속성이름*="속성값"] 선택자

<style>
    [title*="first"] {color: red;}
</style>
<body>
    <h2>[속성이름*="속성값"] 선택자</h2>
    <p title="first-1">first-1</p>
    <p title="1-first">1-first</p>
    <p title="first_">first_</p>
    <p title="_first">_frist</p>
    <p title=" first">[공백]first</p>
    <p title="first ">first[공백]</p>
    <p title="firstsecond">firstsecond</p>
    <p title="secondfirst">secondfirst</p>
</body>

  - 특정 속성의 속성값에 특정 문자열을 포함하는 요소를 모두 선택한다.

  - 앞뒤 공백, 하이픈(-), 언더바(_), 합성어 모두 선택된다.

 

4. 정리

선택자 하이픈(-) 언더바(_) 공백 합성어
[속성이름="속성값"] X X X X
[속성이름~="속성값"] X X O X
[속성이름|="속성값"] O X X X
[속성이름^="속성값"] O O O O
[속성이름$="속성값"] O O O O
[속성이름*="속성값"] O O O O

 

 

'FrontEnd > Css' 카테고리의 다른 글

[CSS] 의사 요소(pseudo-element)  (0) 2021.07.31
[CSS] 구조 의사 클래스(structural pseudo-class)  (0) 2021.07.30
[CSS] float  (0) 2021.07.30
[CSS] position, z-index  (0) 2021.07.29
[CSS] display, visibility, opacity  (0) 2021.07.27