CSS 선택자

2024. 4. 11. 23:23·CSS

기본 선택자

* (전체 선택자)

모든 요소를 선택

* {
	color: red;
}

ABC (태그 선택자)

태그 이름이 ABC인 요소 선택

li {
	color: red;
}

.ABC (클래스 선택자)

HTML class 속성의 값이 ABC인 요소 선택

.orange {
	color: red;
}

#ABC (아이디 선택자)

HTML id 속성의 값이 ABC인 요소 선택

#orange {
	color: red;
}

 

복합 선택자

ABCXYZ (일치 선택자)

선택자 ABC와 XYZ를 동시에 만족하는 요소 선택

  • 태그 선택자를 먼저 적는 것이 좋음
span.orange {
	color: red;
}

ABC > XYZ (자식 선택자)

선택자 ABC의 자식 요소 XYZ 선택

ul > .oragne {
	color: red;
}

ABC XYZ (하위 선택자)

선택자 ABC의 하위 요소 XYZ 선택

  • 띄어쓰기가 선택자의 기호
  • 자식 선택자보다 더 넓은 범위(후손 요소 포함)
div .orange {
	color: red;
}

ABC + XYZ (인접 형제 선택자)

선택자 ABC의 다음 형제 요소 XYZ 하나를 선택

.orange + li {
	color: red;
}

ABC ~ XYZ (일반 형제 선택자)

선택자 ABC의 다음 형제 요소 XYZ 모두를 선택

.orange ~ li {
	color: red;
}

 

가상 클래스 선택자

1. 동작을 나타내는 가상 클래스 선택자

ABC:hover

선택자 ABC 요소에 마우스 커서가 올라가 있는 동안 선택

a:hover {
	color: red;
}

ABC:active

선택자 ABC 요소가 마우스를 클릭하는 있는 동안 선택

a:active {
	color: red;
}

ABC:focus

선택자 ABC 요소가 포커스 되면 선택

  • focus가 될 수 있는 요소는 HTML 대화형 콘텐츠 해당
    • input, button, label, select 등의 요소
input:focus {
	background-color: orange;
}
  • tabindex 속성을 사용한 요소도 focus 가능
<div class="box" **tabindex="-1"**></div>
.box:focus {
	background-color: blue;
}

2. 특정한 요소를 선택하는 가상 클래스 선택자

ABC:first-child

선택자 ABC가 형제 요소 중 첫째라면 선택

  • class가 fruits인 하위 span 선택자 중 첫 번째 태그
.fruits span:first-child {
	color: red;
}

ABC:last-child

선택자 ABC가 형제 요소 중 막내라면 선택

  • class가 fruits인 하위 h3 선택자 중 마지막 번째 태그
.fruits h3:first-child {
	color: red;
}

ABC:nth-childe(n)

선택자 ABC가 형제 요소 중 (n)째라면 선택

  • class가 fruits인 모든 하위 선택자 중 2번째 태그
.fruits *:nth-child(2) {
	color: red;
}
  • class가 fruits인 모든 하위 선택자 중 2의 배수(짝수) 번째 태그
    • n은 0부터 시작(Zero-Based Numbering)
    • 단 0번째 태그는 없음
.fruits *:nth-child(2n) {
	color: red;
}
  • class가 fruits인 모든 하위 선택자 중 홀수 번째 태그
.fruits *:nth-child(2n+1) {
	color: red;
}

ABC:not(XYZ)

선택자 XYZ가 아닌 ABC 요소 선택

  • class가 fruits인 모든 하위 선택자 중 span 태그가 아닌 요소들 선택
.fruits *:not(span) {
	color: red;
}

 

가상 요소 선택자

  • 인라인 요소
  • content 속성과 세트

ABC::before

선택자 ABC 요소의 내부 앞에 내용을 삽입

.box::before {
	content: "앞!";
}
<div class="box">
	Content!
</div>

➡️ 출력: 앞! Content!

ABC::after

선택자 ABC 요소의 내부 뒤에 내용을 삽입

.box::after {
	content: "뒤!";
}
<div class="box">
	Content!
</div>

➡️ 출력: Content! 뒤!

 

속성 선택자

  • 특수 기호 대괄호 [ ] 사용
  • 유니크한 속성에 대해서 찾기 유용

[ABC]

속성 ABC을 포함한 요소 선택

[disabled] {
	color: red;
}

[ABC=”XYZ”]

속성 ABC을 포함하고 값이 XYZ인 요소 선택

[type="password"] {
	color: red;
}

 

선택자 우선순위

1. 점수가 높은 선언이 우선

  1. !importnat - 999999999점
  2. 인라인 선언 - 1000점
  3. id 선택자 - 100점
  4. class 선택자 - 10점
  5. 태그 선택자 - 1점
  6. 전체 선택자 - 0점
  7. 상속 - 점수 X

2. 점수가 같으면, 가장 마지막에 해석된 선언이 우선

ex) 

<div 
	id="color_yellow"
	class="color_green"
	style="color: orange;"> - 1000점
	Hello word!
</div>
div { color: red !important;} - 999999999점
#color_yellow { color: yellow; } - 100점
.color_green { color: green; } - 10점
div { color: blue; } - 1점
* { color: darkblue; } - 0점
body { color: violet; } - X

 

 


※ 패스트캠퍼스 FE 프로젝트십 과정 중 강의를 듣고 정리한 내용입니다.

728x90
반응형

'CSS' 카테고리의 다른 글

CSS 속성(Properties) - 배치  (2) 2024.04.11
CSS 속성(Properties) - 배경  (0) 2024.04.11
CSS 속성(Properties) - 글꼴, 문자  (0) 2024.04.11
CSS 속성(Properties) - 박스 모델  (1) 2024.04.11
CSS 기초  (1) 2024.04.11
'CSS' 카테고리의 다른 글
  • CSS 속성(Properties) - 배경
  • CSS 속성(Properties) - 글꼴, 문자
  • CSS 속성(Properties) - 박스 모델
  • CSS 기초
nueos
nueos
  • nueos
    nueos 공부 기록
    nueos
  • 전체
    오늘
    어제
    • 분류 전체보기 (193)
      • 해커톤 (1)
      • 네이버 BoostCamp (6)
      • LG 유플러스 유레카 SW (5)
        • React (21)
        • TypeScript (2)
        • JavaScript (2)
        • HTML+CSS (5)
        • Spring (7)
        • Java (6)
        • SQL (2)
        • Algorithm (8)
        • CX (6)
        • Git (2)
        • 프로젝트 (2)
        • 스터디 (9)
        • 과제 (8)
        • 특강 (1)
      • React (3)
      • Next (0)
      • Javascript (2)
      • HTML (2)
      • CSS (9)
      • Algorithm (6)
      • Database (0)
      • OS (13)
      • C++ (24)
      • Python (1)
      • jQuery (1)
      • Django (1)
      • Git (1)
      • 개발 지식 (3)
      • 정보 보안 (22)
      • 포렌식 (1)
      • 암호 (2)
      • 기타 (4)
      • 패스트캠퍼스 FE 프로젝트십 (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    힙
    제주지역혁신플랫폼지능형서비스사업단
    제주해커톤
    디지랩챌린지
    완전 탐색
    큐
    스택
    heap
    디지털혁신
    exhaustive search
    Queue
    Stack
    기술로바꾸는세상
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
nueos
CSS 선택자
상단으로

티스토리툴바