TIL

[CSS] CSS 선택자 : 연결 선택자, 속성 선택자

온풀 2020. 11. 25. 17:15

연결 선택자

1. 하위 선택자 : 지정한 모든 하위 요소에 스타일 적용하기

section p { color: blue; }
  • section 요소 안에 있는 모든 p 요소의 글자 색을 파란색으로 지정함

2. 자식 선택자 : 자식 요소에만 스타일 적용하기

section > p {color: blue; }
  • section 요소 안에 포함된 p 요소 중 자식 p 요소에만 파란(blue) 글자 색을 적용함
  • 하위 선택자와 달리 손자 요소에는 스타일이 적용되지 않음

3. 인접 형제 선택자 : 가장 가까운 형제 요소에 스타일 적용하기

h1 + p { text-decoration: underline; }
  • 문서 구조상 같은 부모를 가진 형제 요소 중 첫 번째 동생 요소에만 스타일이 적용됨

4. 형제 선택자 : 형제 요소에 스타일 적용하기

h1 ~ p { text-decoration: underline; }
  • 형제 요소들에 스타일을 정의함
  • 인접 형제 선택자와 달리 모든 형제 요소에 적용됨

속성 선택자

1. [속성] 선택자 : 지정한 속성에 스타일 적용하기

<style>
    a[href] {
      background: yellow;
    }
</style>
  • <a> 태그 중 href라는 속성이 있는 요소를 찾아내 배경색 지정

2. [속성=값] 선택자 : 특정 값을 갖는 속성에 스타일 적용하기

<style>
    a[target="_blank"] {
      background: yellow;
    }
</style>
  • target 속성의 값이 _blank인 링크를 찾아 배경색 지정

3. [속성~=값] 선택자 : 여러 값 중 특정 값이 포함된 속성에 스타일 적용하기

<style>
    a[class ~= "button"] {
      border: 2px solid black;
    }
</style>
  • class 속성에서 "button"이라는 값이 포함된 요소의 스타일 정의함
  • class="button"처럼 값이 정확히 일치하거나 class="flat button"처럼 두 개 이상의 속성 값중에 "button" 값이 포함되어 있을 때 적용됨
  • 이때 선택된 값은 일부만 일치하는 것이 아니라 한 단어로 일치해야 함
  • 예를 들어 class="flat-button"처럼 하이픈으로 연결되어 있거나 class="buttons"처럼 요소의 값이 일부만 일치할 때는 적용되지 않음

4. [속성|=값] 선택자 : 특정 값이 포함된 속성에 스타일 적용하기

<style>
    a[title |= "us"] {
      border: 2px solid black;
    }
</style>
  • 속성 값이 "us"이거나 "us-"로 시작하는 요소를 찾는 선택자
  • [속성~=값] 선택자는 하이픈(-)으로 연결한 단어에 스타일을 적용하지 않음
  • [속성|=값] 선택자는 하이픈(-)으로 연결한 단어가 있더라도 스타일을 적용

5. [속성^=값] 선택자 : 특정 값으로 시작하는 속성에 스타일 적용하기

<style>
    a[title ^= "eng"] {
      border: 2px solid black;
    }
</style>
  • {속성=값} 선택자에 '캐럿(^)'이 붙으면 지정한 문자로 시작하는 속성 값에 대해서만 스타일을 적용함

6. [속성$=값] 선택자 : 특정 값으로 끝나는 속성에 스타일 적용하기

<style>
    a[href $= "hwp"] {
      background: url(images/hwp_icon.gif) center right no-repeat;
    }
</style>
  • 지정한 값으로 끝나는 요소를 찾아 스타일을 적용함
  • href에 링크된 파일의 확장자, 즉 파일 이름의 마지막 값을 체크하면 그 파일에 맞는 아이콘을 파일 이름 옆에 표시할 수 있음

7. [속성*=값] 선택자 : 값의 일부가 일치하는 속성에 스타일 적용하기

<style>
    [href *= "w3"] {
      background: blue;
    }
</style>
  • href 속성에 w3라는 값이 포함되면 스타일 적용
기본형 스타일 적용 경우 예시 - 선택자 예시 - 적용되는 요소
[속성] 지정한 '속성'일 때 [href] <a href="#">메뉴 1</a>
[속성 = 값] '값'에 일치할 때 [target = "_blank"] <a href="......" target="_blank">html</a>
[속성 ~= 값] 여러 값들 중 특정 '값'이 포함되어 있을 때 (단어별) [class ~= "button"] <a href="#" class="flat button">메뉴4</a>
[속성 |= 값] '값'이 포함되어 있을 때
(하이픈 포함 단어별)
[class |= "us"] <a href="#" title="us">영어</a>
<a href="#" title="us-english">영어</a>
[속성 ^= 값] '값'으로 시작할 때 [title ^= "eng"] <a href="#" title="english">영어</a>
[속성 $= 값] '값'으로 끝날 때 [href $= "xls"] <a href="intro.xls">엑셀 파일</a>
[속성 *= 값] '값'이 속성 값의 일부일 때 [href *= "w3"] <a href="http://www.w3c.org/TR/html">HTML 사이트</a>