연결 선택자
- 둘 이상의 선택자를 연결하여, 스타일이 적용될 요소가 어디 부분인지 지정
- 조합 선택자, 콤비네이션 선택자, 콤비네이션 셀렉터 등으로 불림
1. 하위 요소에 스타일 적용하는 하위 선택자 / 자식 선택자
- 하위 요소란, 특정 요소를 기준으로 그 안에 포함된 요소
- 자식 요소란, 현재 요소를 기준으로 바로 한 단계 아래에있는 요소를 뜻함
- 상위 요소와 하위 요소는 공백으로 구분한다.
(상위 요소) (하위 요소) { ... }
//예시 selection p { ... }
- 자식요소는 '>' 기호를 사용하여 구분한다.
- 해당 기호는 자식 요소에만 스타일을 적용한다
부모요소 > 자식요소
//예시 selection > div {...}
2. 형제 요소에 스타일을 적용하는 인접 형제 선택자 / 형제 선택자
- 부모 요소가 같은 경우, 형제관계라고 하며, 이 때 먼저 나오는 요소를 형 요소, 나중에 나오면 동생 요소라 한다.
- 인접 형제 선택자의 경우 형 요소에서 첫 번째 동생 요소만 선택하는 것을 뜻함
형제 + 동생 {...}
//예시 h1 + p {...}
- 이 때 모든 형제 요소를 선택하려면, ' + ' 가 아닌 ' ~ ' 기호를 이용하면 된다.
//모든 형제 요소를 선택
//예시 h1 ~ p { ... }
속성 선택자
- 태그 안에서 사용하는 속성 값에 따라 요소를 선택하는 역할
1. 특정 속성이 있는 요소를 선택하는 속성 선택자
- 태그 안에 특정 속성을 사용한 요소만 선택할 때 사용한다.
//특정 속성 예시 (a태그 내에 href 속성을 사용한 것들만 적용하는 방법)
a[href] {...}
2. 특정 속성 값이 있는 요소를 선택하는 속성 = 속성값 선택자
- 태그 안에서 주어진 속성과 속성값이 일치하는 경우만 찾아 스타일을 지정하는 방법
//속성 = 속성값 지정
a[target = _blank] {...}
3. 여러 값 중 특정 속성 값이 포함된 속성요소를 선택하는 속성 ~= 값 선택자
- 여러 속성값 중에서 해당 속성값이 포함된 요소를 선택하는 방법
//특정 속성값 포함된 요소 선택하기
[class ~= button] { ... }
- 이 때, buttons 나 flat-button 등 다른 글자가 포함되어 있으면 선택하지 않음
- flat button / button은 가능, flat-button / buttons는 불가능
4. 특정 속성값이 포함된 속성 요소를 선택하는 속성 |= 값 선 택자
- ~= 선택자와는 다르게 하이픈 등으로 연결한 단어에도 스타일을 적용함
- 해당 값으로 연결되거나, 해당 값이 있는 요소를 찾아 스타일을 적용
//us이거나 us-로 연결된 속성값 찾음
a[title |= us] {...}
5. 특정 속성값으로 시작하는 속성 요소를 선택, 속성 ^= 값
- 속성값으로 시작하는 요소를 찾는 방법
//속성 값이 eng으로 시작하는 요소를 모두 찾음
a[title ^= eng] {...}
6. 특정 속성값으로 끝나는 속성 요소를 선택, 속성 $= 값
- 속성값으로 끝나는 요소를 찾는 방법
//xls로 끝나는 요소를 모두 찾음
[href $= xls] {...}
7. 일부 속성값이 일치하는 요소를 선택하는 속성 *= 값 선택자
- 속성값 위치에 관계없이, 포함되어 있다면 해당 요소 선택
//w3가 포함된 모든 요소 선택
[href *= w3] {...}
가상 클래스와 가상 요소
- 사용자 동작에 반응하는 가상 클래스로, 특정 동작을 수행시 스타일이 바뀌는 것을 만들고 싶을 때 사용
- :를 붙여 사용하는 가상 클래스, ::를 붙여 사용하는 가상 요소가 있음
| 종류 | 설명 |
| :link | 아직 사용자가 방문하지 않은 링크에 스타일 적용, 기본적으로 파란색 글자와 밑줄로 표시 |
| :visited | 사용자가 한 번 이상 방문한 링크에 스타일을 적용, 보라색이 기본 값 |
| :hover | 웹 요소 위로 마우스를 올려놓을 때 스타일을 적용 |
| :active | 웹 요소를 활성화 했을 경우(링크나 이미지를 클릭) 발생하는 스타일을 지정 |
| :focus | 텍스트 필드에 마우스를 올려놓거나, 웹에서 Tab을 입력하여 입력 커서를 이동한 경우 스타일 지정 |
// 다음과 같은 순서를 맞추어야함 ( LoVe HAte )
:link -> :visited -> :hover -> :active
//해당 순서로 입력하지 않으면, 스타일 정의시에도 효과가 나오지 않음
1. 요소 상태에 따른 가상 클래스
| 종류 | 설명 |
| :target | 앵커 대상에 스타일을 적용, 앵커의 목적지 되는 부분에 스타일을 적용할 수 있음 (블로그에서 목차를 누르면 이동할 때 처럼...) |
| :enabled, :disabled | 요소가 사용할 수 있는 상태일때나 없는 상태일 때 스타일을 지정하는 경우 텍스트 필드에서 회원 약관등을 수정을 못하게 할 때 등등.. |
| :checked | checked 속성이 있는 요소의 스타일을 지정하는 경우 사용(radio, checkbox 등) 버튼 클릭 시 레이블을 바꿀 경우 input + label (둘은 형제관계이므로) 선택자를 사용 |
| :not | 특정 요소를 제외하고 스타일을 적용, 괄호 안에 있는 요소를 제외함 예시 -> :not([type=....]) |
2. 구조 가상 클래스
- 웹 문서의 구조를 기준으로, 특정 위치에 있는 요소를 찾아 스타일을 적용할 때 사용하는 가상 클래스 선택자
특정 위치의 자식 요소 선택하는 법
| 종류 | 설명 |
| :only-child | 부모 안에 자식 요소가 하나뿐일 때 자식요소 선택 |
| A:only-type-of | 부모 안에 A 요소가 하나 뿐인경우 선택 |
| :first-child | 부모 안에 있는 요소중 첫 번째 자식 요소를 선택 |
| :last-child | 부모 안에 있는 요소 중 마지막 자식 요소를 선택 |
| A:first-of-type | 부모 안에 있는 A요소 중 첫 번째 요소를 선택 |
| A:last-of-type | 부모 안에 있는 A요소 중 마지막 요소를 선택 |
| :nth-child(n) | 부모 안에 있는 모든 요소 중 n 번째 자식 요소 선택 |
| :nth-last-child(n) | 부모 안에 있는 모든 요소 중 끝에서 n 번째 자식 요소 선택 |
| A:nth-of-type(n) | 부모 안에 있는 A요소 중에서 n 번째 요소를 선택 |
| A:nth-last-of-type(n) | 부모 안에 있는 A요소 중에서 끝에서 n번째 요소를 선택 |
- 이 때 n을 odd나 even, 또는 2n + 1 처럼 수식을 지정해서 이용할 수 있음
3. 가상 요소
- 문서 안의 특정 부분에 스타일을 지정하기 위해 가상으로 요소를 만들어 추가
- ::를 넣어서 구분
| 종류 | 설명 |
| ::first-line | 지정 요소의 첫 번째 줄에 스타일을 적용 |
| ::first-letter | 지정 요소의 첫 번째 글자에 스타일을 적용, 이 때 해당 요소는반드시 첫 번째 줄에 있어야함 |
| ::before | 지정 요소의 앞에 스타일을 넣을 수 있음 |
| ::after | 지정 요소의 뒤에 스타일을 넣을 수 있음 |
'HTML, CSS, JavaScript' 카테고리의 다른 글
| [CSS] 이미지 & 그라데이션으로 배경 꾸미기 (0) | 2025.02.24 |
|---|---|
| [CSS] 레이아웃 구성 CSS 박스 모델 (0) | 2025.02.23 |
| [CSS] 텍스트 관련 스타일 (2) | 2025.01.20 |
| [CSS] CSS - 글꼴 설정하기 (2) | 2025.01.16 |
| [CSS] CSS의 기본 (5) | 2025.01.14 |