๋ชฉ์ฐจ
CSS๋ฅผ ๋ค๋ฃจ๋ ๋ฐ ์์ด์ ๊ฐ์ฅ ๊ธฐ์ด์ ์ด๊ณ ๊ธฐ๋ณธ์ ์ด๊ณ ํต์ฌ ์ ์ธ ๊ฒ์ด ๋ฐ๋ก CSS ์ ํ์์ ํ์ฉ์ด์ฃ .
CSS์ ์ ํ์ ๋ฌธ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ฃ .
์ ํ์ { ์์ฑ:๊ฐ}
/*example*/
select {position:absolute}
#selector { position:absolute; }
.selector { postition:absolute; }
์ด๋ฐ ์ ํ์๋ ์ฐ๋ฆฌ๊ฐ CSS์ ์คํ์ผ์ ์ ์ฉํ๊ณ ์ถ์ ํน์ ๋์์ ์ ํํ๊ณ ์ง์ ํ๋ ๊ฒ์ ์ง์นญํ๋ ๊ฒ์ด์ฃ . ์ฝ๊ฒ ์๊ฐํ๋ฉด ํ๊น์ด๋ผ๊ณ ์ฌ๊ฒจ๋ ๋ฌด๋ฐฉํฉ๋๋ค.
์์์ ์๋ฅผ ๋ ์ ํ์ 3์ข ์ ๋ํด์ ์ผ๋จ ์์๋ณด์ฃ .
์์ ์ ํ์ (type Selector)
์๋ฌด๋ฐ ๊ธฐํธ๊ฐ ์์ด ์ค๋ ๋จ์ด๋ html ํ๊ทธ์ Element์์์ ๋๋ค.
a, p, div, table, li, ul, input, img ๋ฑ๋ฑ์ html ํ๊ทธ๋ฅผ ์ง์ ํ ๋๋ ํ๊ทธ๋ฅผ ์จ์ฃผ๋ฉด ๋ฉ๋๋ค.
ํ์ง๋ง ํ๊ทธ์ ์คํ์ผ์ ๊ฑธ์ด๋ฒ๋ฆฌ๊ฒ ๋๋ฉด, ๋ฌธ์ ์ ์ฒด์ ๊ฑธ์ณ์ ๊ทธ ํ๊ทธ๋ ์ง์ ํ ์์ฑ์ผ๋ก๋ง ๋์ํ๊ฒ ๋๋๊น, ํ๊ทธ ๊ณ ์ ์ ๋ํดํธ ์์ฑ์์ ๋ฒ์ด๋๋ฒ๋ฆฌ๊ฒ ๋์ฃ . ๊ท๋ชจ๊ฐ ํฐ ํ๋ก์ ํธ์์๋ ๊ต์ฅํ ๊ณจ์น ์ํ์ง๋๋ค.
ID ์ ํ์(id selector)
#์ผ๋ก ์์ํ๋ ์ ํ์์ ๋๋ค. ๋ณดํต ํ๊ทธ์ ์์ฑ์ผ๋ก id="id๋ช "์ผ๋ก ํ ๋นํ ๊ฒฝ์ฐ ํด๋น id๊ฐ์ ๊ฐ์ง ์์๋ฅผ ์ ํํฉ๋๋ค.
id๋ ํ์ด์ง ๋ด์์๋ ์ค์ง ํ ์์๋ง์ด ๊ฐ์ ธ์ผ ํฉ๋๋ค.
๋ฌผ๋ก CSS์ ์์ฑ์ ์ค๋ณต๋์ด ์์ด๋ ์ ์ฉ๋๊ธด ํฉ๋๋ค๋ง, html๋ฌธ์ ๊ธฐ์ ์์์๋ id๋ ์ค์ง ํ์ด์ง ๋ด์์๋ ๊ณ ์ ํ ๊ฐ์ ๊ฐ์ ธ์ผ ํฉ๋๋ค.
<div id="cssIdSelector"></div>
<style>
#cssIdSelector { postion:absolute; width:200px; height:100px}
</style>
ํด๋์ค ์ ํ์ (class selector)
.์ผ๋ก ์์๋ ์ ํ์๋ค์ ๋๋ค. id๊ฐ ์ค์ง ํ ๊ฐ์ฒด์๋ง ์์ฑ์ ๋ถ์ฌํ ์ ์๋๋ฐ ๋ฐํด์, class๋ ๋ง์ ์์์ ๊ณตํต์ ์ผ๋ก ์ ์ฉ์ฝ์ ํ ๋ ์ฌ์ฉํฉ๋๋ค.
id์ class๊ฐ ๋์์ ๋ค๋ฅธ ์์ฑ์ผ๋ก ์ ์ฉ๋ ๋์๋ id๊ฐ์ด ์ฐ์ ๋ฉ๋๋ค.
<div id="cssIdSelector" class="cssClassSelector"></div>
<style>
#cssIdSelector { postion:absolute; width:200px; height:100px}
.cssClassSelector{ postion:absolute; width:100px; height:200px}
</style>
์์ ์ธ๊ฐ์ง๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ์์ฒด๋ฅผ ์ ํํ ๋ ์ง์ ์ ์ธ ์ ํ์์ ํด๋น๋ฉ๋๋ค.
CSS๋ ์์์ด๋ผ๋ ๊ฐ๋ ์ ๊ฐ์ง๊ณ ์๋๋ฐ์.
ํน๋ณํ๊ฒ ๊ธฐ์ ํ์ง ์์ ์คํ์ผ์ ๊ฒฝ์ฐ์๋ ๋ถ๋ชจ์ ์์ฑ์ ๋ฌผ๋ ค๋ฐ๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ๋ฌํ ์์ฑ์ ๊ฐ์ฅ ๋ํ์์ด๋ผ๊ณ ํ ์ ์๋ ์ต์ด์ ์์ฑ!
ํ์ด์ ๋น์ด ์์์ผ๋... ๋ณ๋น๊ณผ ๋ฎ์ *์ ํ์์ ๋๋ค.
์ ์ฒด ์ ํ์ (universal selector)
๋ฌด์ฐจ๋ณ์ ์ผ๋ก ๋ชจ๋ ์์๋ค์ ๋ํด ์์ฑ์ ์ง์ ํ๊ฒ ๋ค๋ ๋ป์ ๋๋ค.
๋ณดํต์ ๊ณตํต์ ์ฉ๋๋ CSSํ์ด์ง์ ์ต์๋จ์ ๊ธฐ์ ํด ๋์ผ๋ฉด์ ๋์ฒด๋ก ์น์ฌ์ดํธ ์ ์ฒด์ ํฐํธ์ ์์ฑ์ ์ ์ํ ๋ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋ฉ๋๋ค.
* { font-size:12px; font-familyt:'๋์',dotum;}
๊ณผ ๊ฐ์ด ์ ์ฉํฉ๋๋ค.
์ง๊ณ ์์ ์ ํ์ (child selector)
>๋ฅผ ์ฌ์ฉํ๋ ์ ํ์์ธ๋ฐ์.
ํน์ ๋ ์์์ ๋ฐ๋ก ์๋ ์์์ ์ง์นญํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
body > p { font-size:14px}
๊ณผ ๊ฐ์ด ์ ์ฉ๋๋ฉด, html๋ฌธ์์์์ div ๋ฑ ์ด๋ค ๊ฒ์๋ ์์ฌ ์์ง ์์ pํ๊ทธ์ ์์์๋ง ํฐํธ ์ฌ์ด์ฆ๊ฐ 14px๋ก ์ ์ฉ๋ฉ๋๋ค.
<style>
#testSelector1 > p { font-size:14px}
</style>
<div id="testSelector1">
<div><p>์๋ผ๋ท ์ฃผ์ ์ข ๊ณ ์ ํด๋ผ!</p></div>
<p>๋ณด๋ฐฐ๋๋ฆผ ํ๋ผ๋ฆฌ๋
๋ ๋ฒ ์ด๊ธ๋
!</p>
</div>
์์ ๊ฐ์ ๊ฒฝ์ฐ๋ "๋ณด๋ฐฐ๋๋ฆผ ํ๋ผ๋ฆฌ๋ ๋ ๋ฒ ์ด๊ธ๋ !"๋ง ํฐํธ์ฌ์ด์ฆ๊ฐ 14px๋ก ๋ณ๊ฒฝ๋๊ณ , "์๋ผ๋ท ์ฃผ์ ์ข ๊ณ ์ ํด๋ผ!"๋ ์ํฅ์ ๋ฐ์ง ์๊ฒ ๋์ฃ .
์์ ์ ํ์ (descendant selector)๋๋ ๋ฌธ๋งฅ ์ ํ์ (contextual selector)
์์ ์์ ์ ํ์๊ฐ ์ง๊ณ ์์๋ง ํน์ ํ๋ ๊ฒ์ ๋ฐํด์, ์์์ ํ์๋ ๋ช ๋ ์์์ธ์ง ์๊ด์์ด ์์ฑ์ด ์์๋ฉ๋๋ค.
์ ํ์์ ํ์์ ๊ณต๋ฐฑ์ ๋๋ค.
<style>
#testSelector2 p { font-size:14px}
</style>
<div id="testSelector2">
<div><p>์๋ผ๋ท ์ฃผ์ ์ข ๊ณ ์ ํด๋ผ!</p></div>
<p>๋ณด๋ฐฐ๋๋ฆผ ํ๋ผ๋ฆฌ๋
๋ ๋ฒ ์ด๊ธ๋
!</p>
</div>
์ง๊ณ์์ ์ ํ์์ ์ ์ฉ ๋์ ๋ฌ๋ฆฌ "๋ณด๋ฐฐ๋๋ฆผ ํ๋ผ๋ฆฌ๋ ๋ ๋ฒ ์ด๊ธ๋ !", "์๋ผ๋ท ์ฃผ์ ์ข ๊ณ ์ ํด๋ผ!" ๋ ๋ฌธ์ฅ ๋ชจ๋ ํฐํธ ์ฌ์ด์ฆ๊ฐ 14px๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค.
์ธ์ ํ์ ์ ํ์ (Adjacent sibling selector)
์์ +๋ ~,^ ์์์ ํํ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
์ญ์ ๊ฐ๋ ฅํ ๋ฅ๋ ฅ์ ๋ฐํํ๋ ์ ํ์์ ๋๋ค.
์ด ๋ถ๋ถ์ ๋ํด์๋ง ๋ณ๋๋ก ํฌ์คํ ํด๋์์ต๋๋ค.
๋ถ์ ์ ํ์ :not selector
๋ถ์ ์ ํ์๋ ์ ์ฐ๋ฉด ์คํ์ผ ์์ฑ์ด ๊ต์ฅํ ๊ฐ๊ฒฐํด์ง๋๋ค.
์ด์ ๊ดํด์๋ ๋ค์ ๋งํฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
2019/08/30 - [Lect & Tip/html, css, scss] - css3 :not ์ ํ์
์์/์์ ์ ํ์ + ์ ์ฒด ์ ํ์
์ ์ฒด ์ ํ์๊ฐ ๋จ๋ ์ผ๋ก ์ฐ์ด๋ฉด ๋ฌธ์ ์ ์ฒด์ ์ํฅ์ ๋ผ์น์ง๋ง, ์์ ํน์ ์์ ์ ํ์์ ํจ๊ป ์ฌ์ฉํ๋ฉด, ์์ ํน์ ์์ ๋ชจ๋๋ฅผ ์ง์นญํ๊ฒ ๋ฉ๋๋ค.
<style>
#testSelector3 > * { font-size:14px}
</style>
<div id="testSelector3">
<div><p>์๋ผ๋ท ์ฃผ์ ์ข ๊ณ ์ ํด๋ผ!</p></div>
<p>๋ณด๋ฐฐ๋๋ฆผ ํ๋ผ๋ฆฌ๋
๋ ๋ฒ ์ด๊ธ๋
!</p>
<div>์ํ๋ฆฌ์นดํฐ๋น bj 4๋์ฌ์ ๋ฐํ์ ์งฑ!</div>
</div>
์์ ์์์์๋ "๋ณด๋ฐฐ๋๋ฆผ ํ๋ผ๋ฆฌ๋ ๋ ๋ฒ ์ด๊ธ๋ !"์ "์ํ๋ฆฌ์นดํฐ๋น bj 4๋ ์ฌ์ ๋ฐํ์ ์งฑ!"๋ฌธ์ฅ๋ง 14px์ ํฐํธ ์ฌ์ด์ฆ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค.
์ ์ฒด ์ ํ์์ ์ํด์
<div><p>์๋ผ๋ท ์ฃผ์ ์ข ๊ณ ์ ํด๋ผ!</p></div>
๋ฌธ์ฅ์ p์์ ํ๋ถ๊น์ง 12px๋ก ์ง์ ๋์์ฃ .
#testSelector3 > * { font-size:14px}
์ ์ํด์๋
<div><p>์๋ผ๋ท ์ฃผ์ ์ข ๊ณ ์ ํด๋ผ!</p></div>
p ์์๋ ์ํฅ์ ๋ฐ์ง ๋ชปํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ฒ์์ ์ ์ธ๋ 12px ํฐํธ ์ฌ์ด์ฆ๋ง ๋ฐ๋ฅด๊ฒ ๋ฉ๋๋ค.
<p>๋ณด๋ฐฐ๋๋ฆผ ํ๋ผ๋ฆฌ๋
๋ ๋ฒ ์ด๊ธ๋
!</p>
<div>์ํ๋ฆฌ์นดํฐ๋น bj 4๋์ฌ์ ๋ฐํ์ ์งฑ!</div>
๋
#testSelector3 > * { font-size:14px}
์ ์ํฅ์ ๋ฐ๊ฒ ๋๋ ๊ฒ์ด์ฃ .
์์ฑ ์ ํ์ (attributor selector)
๊ตฌ์ฒด์ ์ธ ์์ฑ์ ์ง๋ ์์์ ๋ํด์๋ง ํน์ ๋๋ ์ ํ ์์.
์ฃผ๋ก input ํ๊ทธ์ ๋ณ์ข ๋ค์ ์ ์ฉํ๊ฒ ๋๋๋ฐ์.
input[type=text] { font-weight:bold}
input[type=checkbox] { margin:0; padding:0}
์ ๊ฐ์ด ์ฌ์ฉํฉ๋๋ค.
์์ฌ ์ ํ์ (pseudo Selector)
์์ฌ ์ ํ์๋ ์์ฌ ํด๋์ค ์ ํ์์ ์์ฌ ์์ ์ ํ์๋ก ๋๋๋๋ฐ์.
์์ฌ ํด๋์ค ์ ํ์ (pseudo-class selector)
:link, :visited, :active, :hover, :focus, :lang
:first-child (์์์ ์ฒซ ๋ฒ์งธ ์์์ ํน์ ํจ)
:last-child (CSS3์์๋ง ์ ์ฉ๋จ, IE9+์ด์๋ง ์ธ์๋จ)
์์ฌ ์์ ์ ํ์ (pseudo-element selector)
:first-line ๋ฌธ๋จ์ ์ฒซ ๋ฒ์งธ ์ค์ ์ ์ฉ (๋ธ๋ก ์์ฑ์ ๊ฐ์ง ์์์๋ง ์ ์ฉ๋จ)
:first-letter ์ฒซ ๋ฒ์งธ ๋ฌธ์๋ฅผ ํน์ ํจ (๋ธ๋ก ์์ฑ์ ๊ฐ์ง ์์์์๋ง ์ ์ฉ)
:before ์์์ ๋ด์ฉ ์์ ๋ด์ฉ์ ์์ฑํจ(content์์ฑ์ ๋ฐ๋์ ์จ์ผ ํจ)
:after ์์์ ๋ด์ฉ ๋ค์ ๋ด์ฉ์ ์์ฑํจ(content์์ฑ์ ๋ฐ๋์ ์จ์ผ ํจ)
์์ฌ ์ ํ์๋ ์ข ๋ ํ ๋ง์ด ๋ง๊ธฐ ๋๋ฌธ์ ์๊ฐ๋ง ํ๊ณ ์ฌ์ฉ๋ฒ์ ๋ค์ ํฌ์คํ ์์ ๋ค๋ฃฐ๊ฒ์.
์ถ์ฒ: https://www.vouloir.kro.kr/entry/CSS-์ ํ์-selector์-์ ์์-์ฌ์ฉ๋ฒ [๋ธ๋ฃจ์๋ฅด2019]
๋๊ธ