오답노트
[CSS] CSS Selector 본문
CSS Selector
HTML태그 3.텍스트 ~ 6.테이블관련 까지만 읽어도 해당 포스트를 이해하는데 문제는 없다.
시작 태그에는
id, class, attr가 존재하거나 태그명만 있는 경우가 있다.
위 4개 항목을 통해 Element를 선택할 수 있다.
기존 css에서 엘리먼트를 선택하는 방법은 아래와 같다.
- tag이름 : span
- id : #id
- class : .class
- attr : [value="val"]
HTML로 살펴보자
<style>
span{color : blue}
#id{color : green}
.class{color : red}
[value="val"]{color : brown}
</style>
<span> span </span>
<p id="id"> p_id </p>
<p class="class"> p_class </p>
<p value="val"> p_val </p>
style 태그 내부에 사용한 것이 CSS Selector 이다.

n번째 선택
위 css selector 뒤에 :nth-child(n) 이 붙는다. n은 n번째를 의미한다.
주의해야할 점은 css selector로 선택한 element중에서 n번째가 아닌,
n번째 element중에서 css selector로 선택한 element 이다.
<style>
.cl:nth-child(2){color : red}
</style>
<div>
<p class="cl"> p_class1</p>
<p class="cl"> p_class2</p>
<p class="cl"> p_class3</p>
</div>
<div>
<p class="cl"> p_class5</p>
<p> p </p>
<p class="cl"> p_class6</p>
<p class="cl"> p_class7</p>
</div>
위 코드에서 p_class2는 색이 변했지만, p_class6은 변하지 않았다.
p_class2 는 첫번째 div 태그 내에서 두번째 element지만, p_class6는 두번째 div 태그 내에서 세번재 element이기 때문이다.

계층적 선택
태그 계층적으로 선택할 수 있다.
.cl > p : cl class 바로 아래 계증에 있는 p 태그 선택
.cl p : cl class 아래 포함된 모든 p 태그 선택
<style>
.cl > p {color : red}
.cl2 p {color : red}
</style>
<div class="cl">
<p> p_class1</p>
<div>
<p> p_class2</p>
</div>
</div>
<div class="cl2">
<p> p_class1</p>
<div>
<p> p_class2</p>
</div>
</div>

여러 개 선택
여러 개를 선택하는 데에는 두 가지가 있다.
전체 중에서 일부를 제외하는 방법과 직접 여러 개를 선택하는 방법이다.
전체중에서 일부를 제외하는 방법은 아래와 같다.
:not(.class)
직접 여러 개를 선택하는 방법은 아래와 같다.
.cl1, .cl2
<style>
.cl:not(.cl1) {color : red}
#id1, #id3 {color : red}
</style>
<p class="cl cl1">class1<p>
<p class="cl cl2">class2<p>
<p class="cl cl3">class3<p>
<p class="cl cl4">class4<p>
<p id="id1">id1<p>
<p id="id2">id2<p>
<p id="id3">id3<p>
<p id="id4">id4<p>

'Python > Web Crawling' 카테고리의 다른 글
[selenium] 정적 페이지와 정적 페이지 웹 크롤링 (0) | 2022.08.05 |
---|---|
[selenium] selenium 간단 사용법 (0) | 2022.08.05 |
[BeautifulSoup] 정적 페이지와 정적 페이지 웹 크롤링 (0) | 2022.08.05 |
[requests] 동적 페이지와 동적 페이지에 대한 웹 크롤링 (0) | 2022.08.05 |
[requests] Python requests 패키지 설명과 GET, POST (0) | 2022.08.05 |