css 속성 선택자

홍진우·2020년 10월 15일

https://media.vlpt.us/images/ursr0706/post/07f2331c-d092-4514-9c3e-c591b0072676/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202020-07-31%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2012.40.50%20%E1%84%87%E1%85%A9%E1%86%A8%E1%84%89%E1%85%A1%E1%84%87%E1%85%A9%E1%86%AB.png

css 속성 선택자

속성 선택자(Attribute Selector): 특정한 속성(attribute)을 가지고 있는 특정 요소(element)를 개별적으로 선택할 수 있음

개별적인 요소를 선택해서 css작업을 하고싶을 때, 이 때마다 class나 id를 부여하기 보다는 해당 요소의 특정 속성과 값이 부여되어 있다면 속성 선택자를 쓰는것이 더 좋은 방법이다.

tag[ attribute ]

해당 속성을 가진 태그를 선택한다.

<a href="#">링크1</a><a href="#" target="_blank">링크2(새 창 열기)</a><a href="#" target="_self ">링크3</a>

위의 a요소 중 링크2와 링크3의 text를 빨간색으로 입히려 할 때.링크1에는 없고 링크2와 링크3에만 부여돼 있는 target속성을 선택하면 된다.

a[ target ] {
      color: red;
    }

https://media.vlpt.us/images/ursr0706/post/ec596e80-a128-44b5-bb0b-fb791bd47160/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202020-07-31%20%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB%2011.25.06.png

target속성을 가진 링크2와 링크3에만 텍스트가 빨갛게 표시됐다.

tag[ attribute = "value" ]

특정 속성을 가졌으며 값이 일치하는 태그를 선택한다.

<a href="#">링크1</a><a href="#" target="_blank">링크2(새 창 열기)</a><a href="#" target="_self ">링크3</a>

위의 a요소 중 링크2(새 창 열기) 텍스트만 파란색으로 입히려 할 때.속성 선택자로 링크3에 부여된 target속성과 값인"_seft"를 명시한다.

https://media.vlpt.us/images/ursr0706/post/954f3e52-a008-4c2c-9ec2-20e2d548f83f/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202020-07-31%20%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB%2011.31.02.png

링크2(새 창 열기)텍스트만 파란색으로 표시됐다.(주의_속성과 속성값이 정확히 일치하는 요소만 선택됨)

tag[ attribute ~= "value" ]

=기호 앞에 ~ 물결(틸드)표시가 있다."value"인 속성값이 할당된 속성을 가진 요소를 선택하는데,value값 앞뒤에 공백문자를 쓰고 다른 값이 있어도 선택된다.즉, "value"값을 포함한 속성값을 가진 요소가 선택되는 것으로 볼 수 있으며 반드시 앞 뒤에 공백문자 외에 다른 문자가 오면 안된다.

<a href="#" title="pig">pig</a><a href="#" title="piggy">piggy</a><a href="#" title="pig-dog">pig-dog</a><a href="#" title="pig-cat">pig-cat</a><a href="#" title="dog-pig">dog-pig</a><a href="#" title="dog pig">dog pig</a><a href="#" title="pig_dog">pig_dog</a><a href="#" title="pinkpigdog">pinkpigdog</a>

위의 a요소 중 title속성의 값에 'pig'가 포함된 텍스트에 빨간색을 입히려 한다.

a[ title ~= "pig" ] {
      color: red;
    }

https://media.vlpt.us/images/ursr0706/post/22612d26-43c3-4fda-9d77-4a0a4910b98f/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202020-07-31%20%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB%2011.46.09.png

'pig'와 'dog pig'인 값이 할당된 title속성을 가진 a태그가 선택되어 빨간색이 입혀졌다.(주의_ 'piggy'나 'dog-pig'와 같이 'pig'의 앞뒤에 문자가 있으면 선택되지 않음)

tag[ attribute |= "value" ]

=기호 앞에 |(버티컬바)표시가 있다."value"라는 속성값이 할당된 특정 속성을 가진 요소를 선택하는데, "value"로 시작하며 뒤에 -(하이픈)기호로 이어진 다른 문자가 따라오는 속성값이 할당된 요소 또한 포함한다.

<a href="#" title="pig">pig</a><a href="#" title="piggy">piggy</a><a href="#" title="pig-dog">pig-dog</a><a href="#" title="pig-cat">pig-cat</a><a href="#" title="dog-pig">dog-pig</a><a href="#" title="dog pig">dog pig</a><a href="#" title="pig_dog">pig_dog</a><a href="#" title="pinkpigdog">pinkpigdog</a>

위의 a요소 중 title속성에 'pig'라는 값과 'pig'로 시작해서 -(하이픈)기호로 이어진 값을 가진 요소의 텍스트에 빨간색을 입히려 한다.

a[ title |= "pig" ] {
      color: red;
    }

https://media.vlpt.us/images/ursr0706/post/16f6b194-2718-4b1c-ac2c-5749f8802e9f/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202020-07-31%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2012.18.30.png

title속성에 'pig'와 'pig'로 시작한 -(하이픈)기호로 이어진 값이 할당된 요소가 선택돼서 빨간색이 입혀졌다.(주의_ "value"와 -(하이픈)기호 사이에 공백문자가 들어가면 선택되지 않음)

tag[ attribute ^= "value" ]

=기호 앞에 ^(캐럿)표시가 있다."value"로 시작하는 값이 할당된 특정 속성을 가진 모든 요소를 선택한다.

<a href="#" title="pig">pig</a><a href="#" title="piggy">piggy</a><a href="#" title="pig-dog">pig-dog</a><a href="#" title="pig-cat">pig-cat</a><a href="#" title="dog-pig">dog-pig</a><a href="#" title="dog pig">dog pig</a><a href="#" title="pig_dog">pig_dog</a><a href="#" title="pinkpigdog">pinkpigdog</a>

위의 여러 a요소 중 title속성의 값이 'pig'로 시작하는 모든 요소의 텍스트에 빨간색을 입히려 한다.

a[ title ^= "pig" ] {
      color: red;
    }

https://media.vlpt.us/images/ursr0706/post/f2f1213a-0f0b-4d13-b39b-bb8096f2ac7e/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202020-07-31%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2012.31.34.png

title속성값이 'pig'로 시작하는 해당 요소가 모두 선택되어 빨간색이 입혀졌다.

tag[ attribute $= "value" ]

=기호 앞에 $(달러)표시가 있다."value"로 끝나는 값이 할당된 특정 속성을 가진 모든 요소를 선택한다.

<a href="#" title="pig">pig</a><a href="#" title="piggy">piggy</a><a href="#" title="pig-dog">pig-dog</a><a href="#" title="pig-cat">pig-cat</a><a href="#" title="dog-pig">dog-pig</a><a href="#" title="dog pig">dog pig</a><a href="#" title="pig_dog">pig_dog</a><a href="#" title="pinkpigdog">pinkpigdog</a>

위의 여러 a요소 중 title속성의 값이 'pig'로 끝나는 해당 요소의 텍스트에 빨간색을 입히려 한다.

a[ title $= "pig" ] {
      color: red;
    }

https://media.vlpt.us/images/ursr0706/post/39b92d65-5e75-4ea5-9efe-df523c6c61a7/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202020-07-31%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2012.40.50.png

'pig'로 끝나는 값이 할당된 title속성을 가진 a태그가 선택되어 빨간색이 입혀졌다.

tag[ attribute *= "value" ]

=기호 앞에 *(에스터리스크)표시가 있다."value"가 포함된 값이 할당된 특정 속성을 가진 해당 요소를 선택한다.앞뒤에 어떤 문자로 조합이 되어도 "value"가 들어간 속성값이 할당된 특정 속성의 요소라면 선택된다.

<a href="#" title="pig">pig</a><a href="#" title="piggy">piggy</a><a href="#" title="pig-dog">pig-dog</a><a href="#" title="pig-cat">pig-cat</a><a href="#" title="dog-pig">dog-pig</a><a href="#" title="dog pig">dog pig</a><a href="#" title="pig_dog">pig_dog</a><a href="#" title="pinkpigdog">pinkpigdog</a>

위의 여러 a요소 중 title속성의 값에 'pig'가 포함되는 해당 요소의 텍스트에 빨간색을 입히려 한다.

a[ title *= "pig" ] {
      color: red;
    }

https://media.vlpt.us/images/ursr0706/post/44b7814e-cd1a-45a4-ad76-934ff3ab568b/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202020-07-31%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2012.58.51.png

속성값에 'pig'가 포함된 title속성을 가진 a태그가 선택되어 빨간색이 입혀졌다.

이렇게 속성 선택자를 사용하면 class나 id를 추가하지 않으면서 특정 속성값의 공통된 부분을 이용하여 요소를 선택할 수 있다.

profile
나는 나

1개의 댓글

comment-user-thumbnail
2020년 10월 22일

안녕하세요. 원문 글쓴이 입니다 : )
우연히 저의 글이 그대로 올라와 있는걸 확인했습니다.
사진도 그대로 사용하시고 코드 예시부터 설명 글 모두 그대로 올리셨네요.
글 원문에 댓글을 남겨 주시고 해당 포스팅의 시작 부분에 원문에 대한 출처를 남겨주셔야 합니다.
또한 글 제목에 [스크랩]이라는 표기를 해주실 것을 부탁드립니다.

위의 사항들 모두 반영된 것이 확인되면 댓글은 삭제하겠습니다 : )

답글 달기