CSS : CSS ์„ ํƒ์ž (CSS Selector)

2025. 7. 29. 12:50ใ†Style/CSS

๋ฐ˜์‘ํ˜•

GPT ์ƒ์„ฑ ์ด๋ฏธ์ง€

๋ชฉ์ฐจ

1. CSS ์„ ํƒ์ž(CSS Selector)
    1-1. ์„ ํƒ์ž ์ข…๋ฅ˜
    1-2. ์†์„ฑ ์„ ํƒ์ž

    1-3. ์—ฌ๋Ÿฌ ์„ ํƒ์ž์— ๊ฐ™์€ ๊ทœ์น™ ์ ์šฉํ•˜๊ธฐ
    1-4. ์—ฌ๋Ÿฌ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์š”์†Œ ์„ ํƒํ•˜๊ธฐ

2. ์ž์‹ ๊ฒฐํ•ฉ์ž (Child Combinator)

3. ์ž์† ๊ฒฐํ•ฉ์ž (Descendant Combinator)

4. ๊ฐ€์ƒ ํด๋ž˜์Šค (Pseudo-class)

5. ์„ ํƒ์ž ์ž˜ ์‚ฌ์šฉํ•˜๊ธฐ

 


1. CSS ์„ ํƒ์ž (CSS Selector)

CSS ๊ทœ์น™์—์„œ ๋งจ ์•ž์— ์ ์–ด์ฃผ๋Š” ๊ฒƒ์œผ๋กœ, ์ž‘์„ฑํ•˜๋Š” ๊ทœ์น™์„ ์–ด๋–ค ์š”์†Œ์— ์ ์šฉํ•  ์ง€ ์„ ํƒํ•œ๋‹ค.

์„ ํƒ์ž {
	์†์„ฑ: ๊ฐ’;
    ์†์„ฑ: ๊ฐ’;
}

 

 

1. ์„ ํƒ์ž ์ข…๋ฅ˜

์„ ํƒ์ž๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ์‹์€ ํฌ๊ฒŒ 4๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  • ์ „์ฒด ์„ ํƒ์ž : ํŽ˜์ด์ง€์˜ ๋ชจ๋“  ์š”์†Œ์— ์Šคํƒ€์ผ ์ง€์ • (๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ณธ ์Šคํƒ€์ผ ์ดˆ๊ธฐํ™”ํ•  ๋•Œ ๋งŽ์ด ์‚ฌ์šฉํ•จ)
    * ๋กœ ์ž‘์„ฑ
  • ํƒ€์ž… ์„ ํƒ์ž : ํ•ด๋‹นํ•˜๋Š” html ํƒœ๊ทธ์— ์Šคํƒ€์ผ ์ง€์ •
    ํƒœ๊ทธ๋ช… ์œผ๋กœ ์ž‘์„ฑ
  • id ์„ ํƒ์ž : ํ•ด๋‹นํ•˜๋Š” id๋ฅผ ์†์„ฑ์œผ๋กœ ์ง€๋‹Œ ํƒœ๊ทธ์— ์Šคํƒ€์ผ ์ง€์ • (ํŽ˜์ด์ง€๋‹น id๋Š” ํ•˜๋‚˜๋งŒ ๊ฐ€์ง)
    #id๋ช… ์œผ๋กœ ์ž‘์„ฑ
  • class ์„ ํƒ์ž : ํ•ด๋‹นํ•˜๋Š” class๋ฅผ ์ง€๋‹Œ ํƒœ๊ทธ์— ์Šคํƒ€์ผ ์ง€์ • (ํŽ˜์ด์ง€๋‹น class๋Š” ์—ฌ๋Ÿฌ๊ฐœ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ)
    .class๋ช… ์œผ๋กœ ์ž‘์„ฑ
// ์ „์ฒด ์„ ํƒ์ž
* {
	padding: 0;
}

// ํƒœ๊ทธ ์„ ํƒ์ž
div {
	padding: 10px;
}

// id ์„ ํƒ์ž (์ ์šฉ : <div id="id-name"> )
#id-name {
	padding: 10px;
}

// class ์„ ํƒ์ž (์ ์šฉ : <div class="class-name"> )
.class-name {
	padding: 10px;
}

 

 

2. ์†์„ฑ ์„ ํƒ์ž

html ์†์„ฑ์˜ ๊ฐ’๋“ค์„ ๋น„๊ตํ•œ ๊ฒฐ๊ณผ๋กœ ์Šคํƒ€์ผ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์š”์†Œ ์ด๋ฆ„[์†์„ฑ๋ช…] ์˜ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

์—ฐ์‚ฐ์ž ์„ค๋ช… ์˜ˆ์‹œ
์†์„ฑ๋ช… ์†์„ฑ๋ช…๋งŒ ์ž‘์„ฑํ•  ๋•Œ ํ•ด๋‹น ์†์„ฑ์„ ๊ฐ–๋Š” ์š”์†Œ๋“ค์„ ๋ชจ๋‘ ์„ ํƒํ•œ๋‹ค. span[ id ] {
    color: red;
}
= ๊ฐ’์ด ์ •ํ™•ํ•˜๊ฒŒ ์ผ์น˜ํ•  ๋•Œ ์„ ํƒํ•œ๋‹ค. span[ href="https://example.com" ] {
    color: red;
}
-= ๊ฐ’์ด ์ •ํ™•ํ•˜๊ฒŒ ์ผ์น˜ํ•  ๋•Œ ์„ ํƒํ•œ๋‹ค.
๋„์–ด์“ฐ๊ธฐ๋กœ ์—ฌ๋Ÿฌ ๊ฐ’์ด ์ง€์ •๋œ ์š”์†Œ๋„ ์„ ํƒํ•œ๋‹ค.
span[ class-="coding" ] {
    color: red;
}
|= ๊ฐ’์ด ์ผ์น˜ํ•˜๊ฑฐ๋‚˜ ๊ฐ’ ๋’ค -(ํ•˜์ดํ”ˆ)์„ ์ž‘์„ฑํ•  ๋•Œ๋„ ์„ ํƒํ•œ๋‹ค.
(html, html-basic, html-advanced)
span[ class|="html" ] {
    color: red;
}
^= ์ ‘๋‘์‚ฌ๋กœ ๊ฐ’์„ ๊ฐ€์งˆ ๋•Œ ์„ ํƒํ•œ๋‹ค.
(test, testing, test-case)
span[ class^="test" ] {
    color: red;
}
$= ์ ‘๋ฏธ์‚ฌ๋กœ ๊ฐ’์„ ๊ฐ€์งˆ ๋•Œ ์„ ํƒํ•œ๋‹ค.
(unit-test, latest, endtest)
span[ class$="test" ] {
    color: red;
}
*= ๊ฐ’์ด ํฌํ•จ๋œ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์„ ํƒํ•œ๋‹ค.
(_javascript_, introjavascript, javascript-basic)
span[ class*="javascript" ] {
    color: red;
}

 

3. ์—ฌ๋Ÿฌ ์„ ํƒ์ž์— ๊ฐ™์€ ๊ทœ์น™ ์ ์šฉํ•˜๊ธฐ

์ฝค๋งˆ( , )๋กœ ์„ ํƒ์ž๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์ž‘์„ฑํ•˜์—ฌ, ์—ฌ๋Ÿฌ ์„ ํƒ์ž์— ๊ฐ™์€ ๊ทœ์น™์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์„ ํƒ์ž1,
์„ ํƒ์ž2 {
	...
}
/* ์‹ค์ œ ์˜ˆ์‹œ */
h1, h2, p {
	margin: 0;
}

 

4. ์—ฌ๋Ÿฌ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์š”์†Œ๋ฅผ ์„ ํƒํ•˜๊ธฐ

์—ฌ๋Ÿฌ ์กฐ๊ฑด์„ ๋™์‹œ์— ๋งŒ์กฑํ•˜๋Š” ์š”์†Œ๋ฅผ ์„ ํƒํ•˜๊ณ  ์‹ถ์„ ๋•Œ,

์„ ํƒ์ž๋ฅผ ๋ถ™์—ฌ์„œ ์ž‘์„ฑํ•˜์—ฌ ๊ทœ์น™์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

<h2 id="apple" class="banana pear">์‚ฌ๊ณผ์™€ ๋ฐ”๋‚˜๋‚˜์™€ ๋ฐฐ</h2>
#apple.pear { ... }

.banana.pear { ... }

h2#apple.banana.pear { ... }

2. ์ž์‹ ๊ฒฐํ•ฉ์ž (Child Combinator)

์˜ค๋ฅธ์ชฝ ๊บพ์‡ ( > )๋กœ ์„ ํƒ์ž๋ฅผ ์ด์–ด์„œ ์ž‘์„ฑํ•œ๋‹ค.

ํŠน์ • ๋ถ€๋ชจ ์š”์†Œ์˜ ๋ฐ”๋กœ ์•„๋ž˜ ์ž์‹ ์š”์†Œ์— ๊ทœ์น™์„ ์ ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

<div class="article">
	<h2>this is article"</h2>
</div>
.article > h2 {
	color: #dd2400;
}

3. ์ž์† ๊ฒฐํ•ฉ์ž (Descendant Combinator)

์ŠคํŽ˜์ด์Šค(๊ณต๋ฐฑ)์œผ๋กœ ์„ ํƒ์ž๋ฅผ ์ด์–ด์„œ ์ž‘์„ฑํ•œ๋‹ค.

ํŠน์ • ๋ถ€๋ชจ ์š”์†Œ ๋‚ด๋ถ€์— ์žˆ๋Š” ์š”์†Œ์— ๊ทœ์น™์„ ์ ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

<div class="article">
	<p> ์˜ค๋Š˜์€ ์ œ๊ฐ€ ๊ฐ„์žฅ์ƒˆ์šฐ์žฅ์„ ๋จน์–ด๋ณผ๊ฒŒ์š”."
    	<img src="soysauce-shirimp.png">
    </p>
</div>

 

.article img {
	width: 100%;
}

 


4. ๊ฐ€์ƒ ํด๋ž˜์Šค (Pseudo-class)

์š”์†Œ์˜ ๋ณธ๋ž˜ ๋ชจ์Šต์ด ์•„๋‹Œ ์–ด๋–ค ์ƒํƒœ์— ๋Œ€ํ•ด ์Šคํƒ€์ผ๋ง์„ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

์„ ํƒ์ž ์ด๋ฆ„ ๋’ค์— ์ฝœ๋ก ( : )๊ณผ ์ƒํƒœ ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์—ฌ์„œ ์‚ฌ์šฉํ•œ๋‹ค.

๋Œ€ํ‘œ์ ์ธ ์ƒํƒœ๋กœ ์•„๋ž˜์˜ ๋„ค ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  • :hover - ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ ธ์„ ๋•Œ
  • :active - ํด๋ฆญํ•œ ์ƒํƒœ
  • :visited - ๋ฐฉ๋ฌธํ•œ ์ ์ด ์žˆ๋Š” ๋งํฌ
  • :focus - ํฌ์ปค์‹ฑ ๋์„ ๋•Œ
a {
	font-weight : 100;
}

a:hover {
	font-weight : 900;
    color : red;
}

 


5. ์„ ํƒ์ž ์ž˜ ์‚ฌ์šฉํ•˜๊ธฐ

๋‹จ์ˆœํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๊ธฐ

์„ ํƒ์ž์˜ ์กฐํ•ฉ ๋ฐฉ๋ฒ•์„ ์œ„์—์„œ ์•Œ์•„๋ดค์ง€๋งŒ, ์„ ํƒ์ž๋Š” ๊ฒฐํ•ฉ์„ ํ•˜์ง€ ์•Š๊ณ  ์ตœ๋Œ€ํ•œ ๋‹จ์ˆœํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

๋‚˜์ค‘์— ์ฝ”๋“œ๋ฅผ ๊ณ ์น  ๋•Œ ๊ฒฐํ•ฉ์œผ๋กœ ๊ผฌ์—ฌ์žˆ์œผ๋ฉด ์ˆ˜์ •์ด ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋”ฐ๋ผ์„œ  ํด๋ž˜์Šค์™€ ๊ฐ€์ƒ ํด๋ž˜์Šค ์œ„์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹๋‹ค.

 

์ „์ฒด ์„ ํƒ์ž *

* ์„ ํƒ์ž๋Š” ๋ชจ๋“  ์š”์†Œ์— ๊ทœ์น™์„ ์ ์šฉํ•˜๋Š” ์„ ํƒ์ž์ด๋‹ค.

* {
	box-sizing: border-box;
}

.section * {
	color: gray;
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

์ฐธ๊ณ 

๋ฐ˜์‘ํ˜•