728x90
반응형

CSS에는 적용하고자하는 스타일의 범위를 지정하는데 선택자(selector)를 이용한다. 하나하나 범위를 지정하기보다는 CSS에 내장된 고급 선택자들로 더 편하게 작업을 해보자.
해당 예제는 Do IT! HTML + CSS + JS 웹 표준의 정석에서 일부 발췌 & 변형하서 사용하였으며 필자가 전부 만든 것이 아님을 밝힙니다.
1. 하위 선택자
제일 많이 이용할 선택자들 중 하나이다. 어떤 선택자의 하위에 존재하는 모든 요소에 해당 스타일을 적용한다.
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>descendant</title> <style> section p { color: blue; } </style> </head> <body> <p> outside section </p> <section> <p> 아직 온라인 예약 신청이... (p inside section) </p> <div> <p> 가족실... (p inside div inside section) </p> </div> </section> </body> </html>

2. 자식 선택자
부모요소 바로 아래에 있는 자식 요소 에게만 스타일을 적용하는 태그이다. 위의 것과는 다르게 손자 이하부터는 적용하지 않는다는 의미이다.
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>childe</title> <style> section > p { color: blue; } </style> </head> <body> <p> outside section </p> <section> <p> 아직 온라인 예약 신청이... (p inside section) </p> <div> <p> 가족실... (p inside div inside section) </p> </div> </section> </body> </html>

여기서부터는 생소할 수 있다.
3. 인접 형제 선택자
같은 요소 안에 들어있는 가장 첫번째 해당 요소를 찾아서 스타일을 적용
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>childe</title> <style> h1 + p { color: white; background-color: #222; } </style> </head> <body> <h1>예약 방법 & 이용 요금</h1> <p>아직 온라인 예약....</p> <!-- h1요소의 형제 요소중 첫번째 형제인 p에만 적용 --> <p>가족실....</p> <p>도미토리....</p> </body> </html>

4. 형제 선택자
같이 붙어있는 모든 형제 선택자에 해당 스타일을 적용한다.
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>childe</title> <style> h1 ~ p { color: white; background-color: #222; } </style> </head> <body> <h1>예약 방법 & 이용 요금</h1> <p>아직 온라인 예약....</p> <p>가족실....</p> <p>도미토리....</p> </body> </html>

이것 말고도 더 많은 선택자들이 있는데, 다음 포스팅에서는 "속성 선택자"를 포스팅해보도록 해야겠다.
728x90
반응형
'프로그래밍 > CSS' 카테고리의 다른 글
[반응형] CSS 간단한 가변 요소 크기 단위 정리 (1) | 2023.12.28 |
---|---|
CSS margin padding 해도 안 사라지는 공백 (inline-block) (3) | 2023.12.21 |
CSS 고급 선택자 2 - 속성 선택자 (0) | 2023.08.13 |
CSS Flex 와 레이아웃 구조 쓰는 방법(23.08.30) 수정 (0) | 2023.05.31 |