5.1 ์ ํ์ ์ข ๋ฅ
CSS์ ๊ฒฐํฉ ์ ํ์๋ DOM ํธ๋ฆฌ์์ ์๋ก์ ์์น๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์๋ฅผ ์ ํํ ์ ์๊ฒ ํด์ค. ์ด ์ ํ์๋ ์์์ ์ปจํ ์คํธ์ ๋ฐ๋ผ ์คํ์ผ์ ์ง์ ํ ์ ์๋๋ก ๋ ์ ํํ ์คํ์ผ ์ ์ด๋ฅผ ์ ๊ณตํด. CSS์๋ ์ฌ๋ฌ ์ ํ์ ๊ฒฐํฉ ์ ํ์๊ฐ ์์ด: ํ์, ์์ ์์, ์ธ์ ํ์ ์์, ๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ ํ์ ์์.
๊ฒฐํฉ ์ ํ์์ ์ข ๋ฅ:
- ํ์ ์ ํ์ (Descendant Selector)
- ์์ ์์ ์ ํ์ (Child Selector)
- ์ธ์ ํ์ ์์ ์ ํ์ (Adjacent Sibling Selector)
- ์ผ๋ฐ ํ์ ์์ ์ ํ์ (General Sibling Selector)
5.2 ํ์ ์ ํ์
ํ์ ์ ํ์๋ ์ง์ ๋ ์์์ ๋ชจ๋ ํ์ ์์๋ฅผ ์ ํํด. ํ์์ ์ง์ ๋ ์์ ์์์ด๋ ํ ์ค์ฒฉ ๋ ๋ฒจ์๋ ์๋ ๋ชจ๋ ์์์ผ (์ด๋ ๋จ์ํ ์์๋ฟ๋ง ์๋๋ผ ์์, ์ฆ์์๋ ํฌํจ๋ผ).
๋ฌธ๋ฒ:
๋ถ๋ชจ ํ์ {
์์ฑ: ๊ฐ;
์์ฑ: ๊ฐ;
}
์์:
/* <div> ๋ด์ ์๋ ๋ชจ๋ <p>๋ฅผ ์ ํ */
div p {
color: blue;
}
<div>
<p>์ด ๋ฌธ์ฅ์ ํ๋์์ผ๋ก ํ์๋ผ.</p>
<div>
<p>์ด ๋ฌธ์ฅ๋ ํ๋์์ผ๋ก ํ์๋ผ, ์๋ํ๋ฉด "div"์ ํ์์ด๊ธฐ ๋๋ฌธ์ด์ง.</p>
</div>
</div>
<p>์ด ๋ฌธ์ฅ์ ํ๋์์ผ๋ก ํ์๋์ง ์์.</p>
5.3 ์์ ์์ ์ ํ์
์์ ์์ ์ ํ์๋ ์ง์ ์ ์ธ ์์์ธ ์์๋ง ์ ํํด.
๋ฌธ๋ฒ:
๋ถ๋ชจ > ์์ {
์์ฑ: ๊ฐ;
์์ฑ: ๊ฐ;
}
์์:
/* .container์ ์ง์ ์ ์ธ ์์์ธ <p>๋ง ์ ํ */
.container > p {
color: green;
}
<div class="container">
<p>์ด ๋ฌธ์ฅ์ ๋
น์์ผ๋ก ํ์๋ผ.</p>
<div class="wrapper">
<p>์ด ๋ฌธ์ฅ์ ๋
น์์ผ๋ก ํ์๋์ง ์์, ์๋ํ๋ฉด .container์ ์ง์ ์ ์ธ ์์์ด ์๋๊ธฐ ๋๋ฌธ์ด์ผ.</p>
</div>
<p>์ด ๋ฌธ์ฅ์ ๋
น์์ผ๋ก ํ์๋ผ.</p>
</div>
<p>์ด ๋ฌธ์ฅ์ ๋
น์์ผ๋ก ํ์๋์ง ์์.</p>
5.4 ์ธ์ ํ์ ์์ ์ ํ์
์ธ์ ํ์ ์์ ์ ํ์๋ ์ง์ ๋ ์์ ๋ฐ๋ก ๋ค์์ ์ค๋ ์์๋ฅผ ์ ํํด, ๊ทธ๋ฆฌ๊ณ ๋์ผํ ์ค์ฒฉ ๋ ๋ฒจ์ ์์ด์ผ ํด.
๋ฌธ๋ฒ:
์ด์ + ๋ค์ {
์์ฑ: ๊ฐ;
์์ฑ: ๊ฐ;
}
/* <h1> ๋ฐ๋ก ๋ค์์ ์ค๋ <p>๋ฅผ ์ ํ */
h1 + p {
color: red;
}
<h1>์ ๋ชฉ 1</h1>
<p>์ด ๋ฌธ์ฅ์ ๋นจ๊ฐ์์ผ๋ก ํ์๋ผ, ์๋ํ๋ฉด "h1" ๋ฐ๋ก ๋ค์ ์ค๊ธฐ ๋๋ฌธ์ด์ผ.</p>
<p>์ด ๋ฌธ์ฅ์ ๋นจ๊ฐ์์ผ๋ก ํ์๋์ง ์์.</p>
5.5 ์ผ๋ฐ ํ์ ์์ ์ ํ์
์ผ๋ฐ ํ์ ์์ ์ ํ์๋ ์ง์ ๋ ์์ ๋ค์ ์ค๋ ๋ชจ๋ ์์๋ฅผ ์ ํํด, ๊ทธ๋ฆฌ๊ณ ๊ทธ ์์๋ค์ ๋์ผํ ์ค์ฒฉ ๋ ๋ฒจ์ ์์ด์ผ ํด.
๋ฌธ๋ฒ:
์ด์ ~ ๋ค์ {
์์ฑ: ๊ฐ;
์์ฑ: ๊ฐ;
}
์์:
/* ๋์ผํ ์ค์ฒฉ ๋ ๋ฒจ์์ <h1> ๋ค์ ์ค๋ ๋ชจ๋ <p>๋ฅผ ์ ํ */
h1 ~ p {
color: purple;
}
<h1>์ ๋ชฉ 1</h1>
<p>์ด ๋ฌธ์ฅ์ ๋ณด๋ผ์์ผ๋ก ํ์๋ผ.</p>
<p>์ด ๋ฌธ์ฅ๋ ๋ณด๋ผ์์ผ๋ก ํ์๋ผ.</p>
<div>
<p>์ด ๋ฌธ์ฅ์ ๋ณด๋ผ์์ผ๋ก ํ์๋์ง ์์, ์๋ํ๋ฉด ๋ค๋ฅธ ์ค์ฒฉ ๋ ๋ฒจ์ ์๊ธฐ ๋๋ฌธ์ด์ผ.</p>
</div>
GO TO FULL VERSION