# selector (선택자) 정리

# 유형 선택자

html에 div 또는 span으로 정의한 경우 해당 선택자를 css에 사용합니다.

div {
  width: 300px;
}

html로 코딩된 모든 div를 선택하기 때문에 header, nav, section, article로 나눈다

# 전체 선택자

* {}로 접근하여 전역으로 영향을 미칩니다.

# id 선택자

<div id="name">id selector</div>
<style>
  #id {
    width: 100px;
  }
</style>

# class 선택자

<div class="name name2">id selector</div>
<style>
  .name {
    width: 100px;
  }
  .name2 {
    height: 200px;
  }
</style>

# 자식 선택자

바로 아래 있는 요소만 선택됩니다.

즉 하나 아래 자식만 선택되고 한번더 nesting된 자식은 선택되지 않습니다.

<div class="div_box">
  <div>
    children
    <div>not selected</div>
  </div>
</div>
<style>
  div.div_box > div {
    background: orange;
  }
</style>

# 자손 선택자

하위 자손 모두 선택합니다.

1, 2, 2-1 모두 선택됩니다.

<section>
  <div>1</div>
  <div>
    2
    <div>2-1</div>
  </div>
</section>
<style>
  /* section안의 div를 모두 가져온다 */
  section div {
    background: orange;
  }
</style>

# 인접(형제) 선택자

+ 기호를 사용합니다.

앞의 요소 바로 다음 요소만 사용 가능합니다.

<div>
  <input type="checkbox" id="checkform" />
  <label for="checkform">
    <em></em>
  </label>
</div>

<style>
  input[id="checkform"] {
    display: none;
  }
  input[id="checkform"] + label em {
    padding: 10px;
  }
</style>

# 속성 선택자

# element[attr="value"]

attr는 기본요소에 추가적으로 들어오는 값

<!-- name이 attr -->
<input type="text" name="user-id" />

<style>
  input[name="user-id"] {
    background: red;
  }
</style>

# element[attr^="value"]

해당 속성을 가진 선택자를 모두 사용합니다.

<div>
  <a href="http://naver.com">네이버</a>
  <a href="http://google.com">구글</a>
  <!-- 요건 http가 없어서 css 안먹음 -->
  <a href="youtube.com">유튜브</a>
</div>

<style>
  a[href^="http"] {
    background: red;
  }
</style>

# element[attr$="value"]

value로 끝나는 속성을 가져옵니다

<div>
  <a href="/file/selector.pdf">네이버</a>
</div>

<style>
  a[href$=".pdf"] {
    background: red;
  }
</style>

# element[attr*="value"]

value를 포함한 요소를 가져옵니다

<div>
  <a href="http://naver.com">네이버</a>
  <a href="http://naverblog.com">블로그</a>
  <a href="http://news-naver.com">블로그</a>
</div>

<style>
  a[href*="naver"] {
    background: red;
  }
</style>

# 구조적 가상요소 선택자

# :first-child

첫번째 요소 가져옴

# :last-child

마지막 요소 가져옴

# :nth-child(n)

n번째 요소 가져옴

Last Updated: 3/24/2021, 8:55:12 PM