본문 바로가기
프로그래밍/CSS

CSS - Selector

by hustle-ing 2023. 4. 4.

기본 셀렉터

* { } // 전체 셀렉터 = 문서의 모든 요소 선택

h1 { }
div { }
section, h1 { } // 태그 셀렉터 = 같은 태그명을 가진 모든 요소 선택. 복수로도 선택 가능.

#only { } // ID 셀렉터 = #id로 입력하여 선택

.center { } // class 셀렉터 = .class로 입력하여 선택

a[href] { }
p[id="only] { }
p[class~="out"] { }
p[class|="out"] { }
section[id^="sect"] { }
div[class$="2"] { }
div[class*="w"] { } // attribute 셀렉터 = 같은 속성을 가진 요소를 선택(모두 암기할 필요 X)

 

자식 / 후손 / 형제 셀렉터

자식 셀렉터

자식 셀렉터는 첫 번째로 입력한 요소의 바로 아래 자식인 요소를 선택한다.

header > div {}

<header>
  <div> // 선택
    <p>
      <div></div>
    <p/>
  </div>
  <div> // 선택
    <p>
      <div></div>
    </p>
  </div>
</header>

 

후손 셀렉터

후손 셀렉터는 첫 번째로 입력한 요소의 후손을 선택합니다.

header div {}

<header>
  <div> // 선택(header의 자식이자 후손 셀렉터)
	<p>
      <div> // 선택(header의 후손 셀렉터)
	  </div>
	</p>
  </div>
  <div> // 선택(header의 자식이자 후손 셀렉터)
	<p>
	  <div> 
	  </div> // 선택(header의 후손 셀렉터)
	</p>
  </div>
</header>

 

 

형제 셀렉터

형제 셀렉터는 같은 부모 요소를 공유하면서, 첫 번째 입력한 요소 뒤에 오는 두 번째 입력한 요소를 모두 선택합니다.

section ~ p { }

<header>
	<section></section>
	<p></p> // 선택
    <p></p> // 선택
	<p></p> // 선택
</header>

 

 

인접 형제 셀렉터

인접 형제 셀렉터는 같은 부모 요소를 공유하면서, 첫 번째 입력한 요소 바로 뒤에 오는 두 번째 입력한 요소를 선택한다.

section + p { }

<header>
	<section></section>
	<p></p> // 선택
	<p></p>
	<p></p>
</header>

 

 

기타 셀렉터

가상 클래스 셀렉터

a:link { } /*사용자가 방문하지 않은 <a>요소를 선택합니다.*/
a:visited { } /*사용자가 방문한 <a>요소를 선택합니다. */
a:hover { } /* 마우스를 요소 위에 올렸을 때 선택합니다. */
a:active { } /* 활성화 된(클릭된) 상태일 때 선택합니다. */
a:focus { } /* 포커스가 들어와 있을 때 선택합니다. */
UI 요소 상태 셀렉터

input:checked + span { } /*체크 상태일 때 선택합니다. */
input:enabled + span { } /*사용 가능한 상태일 때 선택합니다. */
input:disabled + span { } /*사용 불가능한 상태일 때 선택합니다. */
구조 가상 클래스 셀렉터

p:first-child { }
ul > li:last-child { }
ul > li:nth-child(2n) { }
section > p:nth-child(2n+1) { }
ul > li:first-child { }
li:last-child { }
div > div:nth-child(4) { }
div:nth-last-child(2) { }
section > p:nth-last-child(2n + 1) { }
p:first-of-type { }
div:last-of-type { }
ul:nth-of-type(2) { }
p:nth-last-of-type(1) { }
부정 셀렉터

input:not([type="password"]) { }
div:not(:nth-of-type(2)) { }
정합성 확인 셀렉터

input[type="text"]:valid { }
input[type="text"]:invalid { }

'프로그래밍 > CSS' 카테고리의 다른 글

CSS - Flexbox로 레이아웃 잡기  (0) 2023.04.07
CSS - 박스모델  (0) 2023.04.04
CSS - 절대 단위와 상대 단위  (0) 2023.04.04
CSS - 기초  (0) 2023.04.02

댓글