๊ธฐ๋ณธ์ ์ธ CSS๋ ์๊ณ ์๋ค ์๊ฐ ํ๋๋ฐ ์ด๋ฒ ํ์ต์ ํตํด ๋์น๊ณ ์๋ ๋ถ๋ถ๊ณผ
์ ํํ ๋ช
์นญ ๋ฑ์ ๋ํด ์ ์ ์์๋ค. CSS๋ ๊ณต๋ถํ๋ฉด ํ ์๋ก ์ฌ๋ฐ์ด์ง๊ธฐ๋ ํ์ง๋ง ํํธ์ผ๋ก ์ด๋ ค์์ง๋ค. Javascript, React์๋ง ๋ชฐ๋ํ์ง๋ง๊ณ ๊พธ์คํ HTML/CSS์๋ ๊ด์ฌ์ ์ค์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
em์
๋ถ๋ชจ element์ ๋ฐ๋ผ ์๋์ ์ผ๋ก ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋ผ ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐrem
์ผ๋ก ์ฌ์ฉํ๋ค.rem
์ root๊ธ์ ํฌ๊ธฐ์ ๋ฐ๋ผ์๋ง ์๋์ ์ผ๋ก ๋ณํ๋ค.(๋ฌธ์ ์ ์ฒด๋ฅผ ๊ธฐ์ค)
ํ๋ฉด ์ฌ์ด์ฆ๋ฅผ ์ ํ ๋
%
,vw
,vh
๋ฅผ ์ด์ฉํ๋ฉฐํ๋ค.โ๏ธ
%
๋จ์๋ก ํ์ด์ง ๋์ด๋ฅผ ์ง์ ํ ๊ฒฝ์ฐ ๋ณด์ด์ง ์๋ ์์ญ๊น์ง ์ก์ ์คํฌ๋กค์ด ์๊ธฐ๊ธฐ ๋๋ฌธ์vh
๋จ์๋ฅผ ์ฌ์ฉํ๋ค.
block
, inline
, inline-block
์ ์ฐจ์ด์ block + inline
์ผ๋ก ์ค๋ฐ๊ฟ์ด ์ผ์ด๋์ง ์๋ ๋์์ block ๋ฐ์ค ํน์ง์ ๊ฐ๋๋ค. โ๏ธbox-sizing : border-box
padding์ ์ด์ฉํ ๋ ํ์๋ก ์ ์ฉ๋์ด์ผํ๋ ์์ฑ์ด๋ค.
์ฌ๋ฐฑ + ํ ๋๋ฆฌ ๋๊ป๊น์ง ํฌํจํด ์ปจํ ์ธ ์์ญ์ ๊ณ์ฐํ๋ค.
๋ด๊ฐ ์๊ณ ์๋ ๋ด์ฉ ๋ง๊ณ ๋ ์ฌ๋ฌ๊ฐ์ง์ Selector๋ฅผ ์ ์ ์์๋ค.
์ ์ธ {
์์ฑ๋ช
: ์์ฑ๊ฐ
}
* {}
Tag
๋์ผํ ํ๊ทธ์ธ ๊ฒฝ์ฐ ๋ชจ๋ ์ ์ฉ ๋๋ค.(๋ณต์ ์ ์ฉ ๊ฐ๋ฅ)
h1 {} div {} span {}
id
#id
๋ก ์ ๋ ฅํ๋ฉฐ, ๊ณ ์ ํ ๊ฐ์ ๊ฐ์ง๋ค.#only {} //only์ธ id๋ฅผ ๊ฐ์ง ํ๋๋ง ์ ์ฉ๋๋ค. ๋ณต์ ์ ์ฉx
class
.class
๋ก ์ ๋ ฅํ๋ฉฐ, ๊ฐ์ class ๋ช ์ ๊ฐ์ง ๋ชจ๋ ์์๊ฐ ์ ์ฉ๋๋ค..center {} // center์ธ class๋ฅผ ๊ฐ์ง ๋ชจ๋ ์์๊ฐ ์ ์ฉ ๋๋ค.
์์
์ฒซ๋ฒ์งธ ์ ๋ ฅํ ์์์ ๋ฐ๋ก ์๋ ์์์ธ ์์๋ฅผ ์ ํ
header > p {}
ํ์
์ฒซ๋ฒ์งธ๋ก ์ ๋ ฅํ ํ์์ ์ ํ
header p {}
ํ์
๊ฐ์ ๋ถ๋ชจ ์์๋ฅผ ๊ณต์ ํ๊ณ ์ฒซ๋ฒ์งธ ์ ๋ ฅํ ์์ ๋ค์ ์ค๋ ๋๋ฒ์งธ ์ ๋ ฅํ ์์ ๋ชจ๋ ์ ํ
header ~ p {}
์ธ์ ํ์
๊ฐ์ ๋ถ๋ชจ ์์ ๊ณต์ , ์ฒซ๋ฒ์งธ ์ ๋ ฅํ ์์ ๋ฐ๋ก ๋ค ๋๋ฒ์งธ ์์ ์ ํ
header + p {}
๊ฐ์ ์์ฑ์ ๊ฐ์ง ์์
a[href] {};
p[id="only"] {};
p[class~="out"] {};
p[class|="out"] {};
section[id^="sect"] {};
div[class$="2"] {};
div[class*="w"] {};
๊ฐ์ ํด๋์ค
a:link //๋ฐฉ๋ฌธ ์ a:visited // ๋ฐฉ๋ฌธ ํ a:hover // ๋ง์ฐ์ค ์ค๋ฒ a:active // ํด๋ฆญ a:focus // ํฌ์ปค์ค
UI ์์ ์ํ
input:checked + span // ์ฒดํฌ ์ํ input:enabled + span // ์ฌ์ฉ ๊ฐ๋ฅํ ์ํ input:disabled + span // ์ฌ์ฉ ๋ถ๊ฐ๋ฅํ ์ํ
๊ตฌ์กฐ ๊ฐ์ ํด๋์ค
:first-child :last-child :first-of-type :last-of-type :nth-child()
input:not([type="passward"]) {};
div:not[:nth-of-type(2)] {};
input[type="text"]:void {};
input[type="text"]:invalid {};
โ๏ธ Check point
#main.center {}
๋์ด์ฐ๊ธฐ ์์ด ์์ฑํ ๊ฒฝ์ฐ
id๊ฐ main
์ด๋ฉด์ ๋์์class๊ฐ center
์ธelement
๋ฅผ ์ ํํ๋ค.
โฌ๏ธ ์ด์ HTML ์์๋ก๋ง ์์
ํ ํ์ด์ง๋ก ๋๊ฒ ํฌ๋ฐํด ๋ณด์๊ณ ์ ๋ ฌํ๋๋ฐ ํ๊ณ๊ฐ ์์๋ค.
โฌ๏ธ CSS๋ฅผ ๋ฐฐ์ฐ๋ฉฐ ์ ์ฉ๊น์งํด ์์, ์ ๋ ฌ, ๋ฐฐ์น ๋ฑ์ ํตํด ๋ด๊ฐ ํํ ํ๊ณ ์ ํ๋ ํ๋ฉด์ ๋ง๋ค ์ ์์๋ค.
css
๋ฅผ ๋ค์ ๋ฐฐ์ฐ๋ฉด์ ๋ด๊ฐ ์์ง๋ชปํ ์์๋ค์ด ๋ง์๋ค. ์๋์ ๋จ์
, ๋ถ์ selector
๋ฑ์ ๋ํด ์ ๋ชจ๋ฅด๊ณ ์์๋๋ฐ ์ด๋ฒ ๊ธฐํ๋ฅผ ํตํด ์ ๋๋ก ์ ์ ์์๋ค.
๊น๊ฒ ๋ฐฐ์ฐ๋ค ๋ณด๋ฉด grid
,flex
,:root
, var()
๋ฅผ ์ฌ์ฉํด ์ข ๋ ํธ๋ฆฌํ๊ฒ ์์
ํ ์ ์๋๋ฐ ์ด๋ถ๋ถ์ ๋ํด ์ข ๋ ๊ณต๋ถํด ๋ด์ผ๊ฒ ๋ค.
@media
์ ๋ํด ์์ธํ ์์๋ด์ ์ดํ ์๊ธฐ์๊ฐ ํ์ด์ง๋ ๋ฐ์ํ์ผ๋ก ์์
ํ ๊ฒ์ด๋ค.
์๊ธฐ์๊ฐ ํ์ด์ง๋ฅผ ์์ ํ๋ฉด์ ๋ค๋ฅธ ์๊ฐ์๋ถ๋ค์ ๊ฒฐ๊ณผ๋ฌผ๋ ํ์ธํด ๋ดค๋ค. ์ ์ฒด์ ์ธ ๋์์ธ ์์ ์์ด ์งง์ ์๊ฐ์ ๋๋ฌด ์ข์ ์์ด๋์ด๋ก ์์ ํ์ ๋ถ๋ค์ด ๋ง์ผ์ จ๋ค. ์ด๋ถ๋ถ์์ ์ฌ๋ฌ ๋ ํผ๋ฐ์ค๋ฅผ ์ฐพ์ ๋ด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๊ณ ๋์ค์ ๋ดค๋ ์คํ์ผ์ ์ ์ฉ๊น์ง ํด๋ณผ ์ ์๋ ๊ธฐํ๋ฅผ ๊ฐ์ ธ์ผ๊ฒ ๋ค.
๐ https://developer.mozilla.org/ko/docs/Web/CSS/Attribute_selectors
๐ https://www.nextree.co.kr/p8468/