CSS selector

Tasicยท2021๋…„ 4์›” 7์ผ
0

๐Ÿ’ก ์ด ๊ธ€์€ ์•„๋ž˜ ์‚ฌ์ดํŠธ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.
CSS selector - MDN Web Docs

CSS Selector?

์Šคํƒ€์ผ์„ ์ ์šฉํ•  ์š”์†Œ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค

๊ธฐ๋ณธ ์„ ํƒ์ž

Tag ์„ ํƒ์ž

ํ•ด๋‹น ๋˜๋Š” ๋ชจ๋“  tag์— ๋Œ€ํ•ด์„œ ์ ์šฉ

h2{color:red;}

Class ์„ ํƒ์ž

Class ์ด๋ฆ„์ด ํ•ด๋‹น๋˜๋Š” tag์— ๋Œ€ํ•ด์„œ ์ ์šฉ

.ํด๋ž˜์Šค๋ช… ์œผ๋กœ ์ ‘๊ทผ

.myclass {color:green;}

ID ์„ ํƒ์ž

Id๊ฐ€ ํ•ด๋‹น๋˜๋Š” tag์— ๋Œ€ํ•ด์„œ ์ ์šฉ

#id๋ช… ์œผ๋กœ ์ ‘๊ทผ

#myid {color:blue;}

์†์„ฑ ์„ ํƒ์ž(Attribute Selectors)

ํŠน์ • ์†์„ฑ(attribute)์„ ๊ฐ–๊ณ  ์žˆ๊ฑฐ๋‚˜ ํŠน์ • ์†์„ฑ์ด ํŠน์ • ๊ฐ’ ์„ ๋งŒ์กฑํ•˜๋Š” ์š”์†Œ(element)๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
[์†์„ฑ], [์†์„ฑ="๊ฐ’"] ์œผ๋กœ ์ ‘๊ทผ

๋™์‹œ ์„ ํƒ

๋™์ผํ•œ ์Šคํƒ€์ผ์„ ์ ์šฉํ•˜๋ ค๋ฉด ',' ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ž‘์„ฑ

/*
ul {color:blue;}
ol {color:blue;}
*/

/* ์ฃผ์„์˜ ๋‚ด์šฉ๊ณผ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ */
ul, ol {
	color:blue;
}

๊ฒฐํ•ฉ์ž(Combinators)

  1. ์กฐ์ƒ - ์ž์† ๊ฒฐํ•ฉ์ž
    • ์กฐ์ƒ์— ์†ํ•œ ํŠน์ • ์ž์†์„ ๋ชจ๋‘ ์„ ํƒ
    • ex) div div
  2. ๋ถ€๋ชจ - ์ž์‹ ๊ฒฐํ•ฉ์ž
    • ์กฐ์ƒ์— ์†ํ•œ ์ง๊ณ„ ์ž์†๋งŒ์„ ์„ ํƒ
    • ex) div>div
    • ์กฐ์ƒ - ์ž์† ๊ฒฐํ•ฉ์ž์™€์˜ ์ฐจ์ด์ ์€ ์กฐ๋ถ€๋ชจ-๋ถ€๋ชจ-์†์ž ๊ด€๊ณ„์ผ ์‹œ, ์กฐ์ƒ-์ž์† ๊ฒฐํ•ฉ์ž๋Š” ๋ถ€๋ชจ,์†์ž๋ฅผ ์„ ํƒํ•˜์ง€๋งŒ, ๋ถ€๋ชจ-์ž์‹ ๊ฒฐํ•ฉ์ž๋Š” ๋ถ€๋ชจ๋งŒ ์„ ํƒ
  3. ์ธ์ ‘ ํ˜•์ œ ๊ฒฐํ•ฉ์ž
    • ๋‹ค์Œ ์š”์†Œ1๊ฐœ๋ฅผ ์„ ํƒ
    • ์ž์†์€ ํฌํ•จ๋˜์ง€ ์•Š์Œ
    • ex) div+div
  4. ์ผ๋ฐ˜ ํ˜•์ œ ๊ฒฐํ•ฉ์ž
    • ๋ชจ๋“  ๋‹ค์Œ ์š”์†Œ๋ฅผ ์„ ํƒํ•จ
    • ์ž์†์€ ํฌํ•จ๋˜์ง€ ์•Š์Œ
    • ex) div~div

์˜์‚ฌ ํด๋ž˜์Šค(pseudo class)

์˜์‚ฌ ํด๋ž˜์Šค(๊ฐ€์ƒ ํด๋ž˜์Šค)๋Š” ์„ ํƒ์ž์— ์ถ”๊ฐ€ํ•˜๋Š” ํ‚ค์›Œ๋“œ๋กœ, ์„ ํƒํ•œ ์š”์†Œ๊ฐ€ ํŠน๋ณ„ํ•œ ์ƒํƒœ์—ฌ์•ผ ๋งŒ์กฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ก ์˜์‚ฌ ํด๋ž˜์Šค์˜ ์ข…๋ฅ˜์— ๋Œ€ํ•ด์„œ๋Š” ๋‹ค์Œ ์‚ฌ์ดํŠธ๋ฅผ ์ฐธ๊ณ  ํ•˜์„ธ์š”.
Pseudo-classes

ex) a:์ƒํƒœ

/* a tag์˜ ๋งˆ์šฐ์Šค ์ปค์„œ๊ฐ€ ์˜ฌ๋ผ๊ฐ„ ์ƒํƒœ(hover)์ผ๋•Œ, ์ƒ‰์„ ๋…น์ƒ‰์œผ๋กœ ๋ฐ”๊พผ๋‹ค */
a:hover {color:green;}

์˜์‚ฌ ์š”์†Œ(pseudo elements)

์„ ํƒํ•œ ์š”์†Œ์˜ ์ผ๋ถ€๋ถ„์—๋งŒ ์Šคํƒ€์ผ์„ ์ž…ํž ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ก ์˜์‚ฌ ์š”์†Œ์˜ ์ข…๋ฅ˜์— ๋Œ€ํ•ด์„œ๋Š” ๋‹ค์Œ ์‚ฌ์ดํŠธ๋ฅผ ์ฐธ๊ณ  ํ•˜์„ธ์š”.
Pseudo-elements

ex) a::์š”์†Œ

/* ๋งํฌ ๋’ค์— 'Test' text๋ฅผ ์ถ”๊ฐ€*/
a::after {content:"test";}

.class1.class2.class3 ....

classa๋ช…์— class1,class2,class3 ๊ฐ€ ๋ชจ๋‘ ํฌํ•จ๋  ๋•Œ, ์„ ํƒ๋ฉ๋‹ˆ๋‹ค.

What is the difference between the selectors โ€œ.class.classโ€ and โ€œ.class .classโ€?

๋งˆ์น˜๋ฉฐ

selector๋ฅผ ์ž˜ ํ™œ์šฉํ•˜๋ฉด ํšจ์œจ์ ์œผ๋กœ ์Šคํƒ€์ผ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, Web scraping ํ•  ๋•Œ๋„ ์œ ์šฉ ํ•  ๊ฒƒ์œผ๋กœ ์ƒ๊ฐ ๋ฉ๋‹ˆ๋‹ค.

profile
๋ธ”๋กœ๊ทธ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค (https://jotasic.github.io)

0๊ฐœ์˜ ๋Œ“๊ธ€