[ ๊ตญ๋น๊ต์ก ] Day 36
์์์ ๊ฐ๋ณ๊ฒ, ์ด์ ๋ง๋ค๋ ๋ ์ด์์ ๋ง๋ฌด๋ฆฌํ๊ธฐ.
img sr=โurlโ
์ฌ์ค ์ด๋ฏธ์ง ๋ฃ๋ ๊ฒ์ ๊ฐ๋จํ๋ค. ์์ฑ๊ฐ์ผ๋ก ์ด๋ฏธ์ง ์ฃผ์๋ง ์
๋ ฅํ๋ฉด ๋์ด๊ธฐ ๋๋ฌธ์..
๊ทผ๋ฐ, ๋ฌธ์ ๋ ๋ ์ด์์์ ์ด๋ฏธ์ง๋ฅผ ๋ฃ์ ๋, ๊ท๊ฒฉ์ด ์ ๋ง์ ์ด๋ฏธ์ง๊ฐ ๋ญ๊ฐ์ง๋ ์ผ์ด ๋น๋ฒํ๋ค๋ ๊ฒ์ด๋ค.
๊ทธ๋ฌ๋ ๋ธ๋ผ์ฐ์ ์์ F12๋ฅผ ๋๋ฌ์ค ๋ค, inspecting ๊ธด div์ ์ด๋ฏธ์ง๋ฅผ ๋ฃ์ ๋, ํฌ๊ธฐ๋ฅผ ์๊ณ ๋ฃ์ด์ผ ๋๊ธฐ ๋๋ฌธ์ F12๋ฅผ ์ด์ฉํด์ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ค.
inspect๋ฅผ ์ฌ์ฉํด์ ์์์ ์ ๋ณด๋ค์ ํ์ธํ์. ๊ทธ๋ฆฌ๊ณ <div>
๋ก ๊ฐ์ธ์ค ๋ค ์ด์๊ฒ ๋ฃ์ด์ฃผ๋ฉด ๋!
positioning
position ์์ฑ์ table ์ดํ ๋ ์ด์์์ ๋ง๋ค ๋, ์ฌ์ฉํ๋ ๊ธฐ๋ฒ์ด์ง๋ง ์ ๋ชฉ์ ์ ์์์ ์์น๋ฅผ ๋ฐ๊ฟ์ฃผ๋ ๊ฒ์ด๋ค. ์ผ๋ฐ์ ์ผ๋ก position์ ๋ชจ๋ฅด๋ ์ํ์์ ์์น ์กฐ์ ์ margin, padding์ผ๋ก ์ฌ๋ฐฑ์ ์กฐ์ ํด์ ๊ตฌํํ๋ค.
ํ์ง๋ง, margin, padding๋ ๊ทธ ์ ๋ชฉ์ ์ด ์์น ์กฐ์ ์ด ์๋๋ผ์ ์ฌ๋ฌ ๊ฐ์ ์์๊ฐ ๋ด๋ถ์ ์์ ๊ฒฝ์ฐ, ์์นซํ๋ฉด ์ฌ์ด์ฆ๊ฐ ๋์ด๊ฐ์ ๊นจ์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ๋ค.
๊ทธ๋์ position ์์ฑ๊ณผ top, left
๋ฑ์ ๋ฐฉํฅ์ ์กฐํฉํ์ฌ ์์น๋ฅผ ๋ฐ๊พธ๋ ๊ฒ์ด CSS ์์น ์กฐ์ ์ ๊ธฐ๋ณธ์ด๋ค.
[ ์ฌ์ฉ๋ฒ ]
์์
<div id="container">
<div id="box1" class="box"></div>
์ ์ฉ
#box1{
background-color: black;
top: 30px;
left: 30px;
}
1) static
position์ ๊ธฐ๋ณธ๊ฐ, ์ด ์ํ์์ top, left ๋ฑ์ ์์น ์กฐ์ ์ด ์ ์ฉ๋์ง ์๋๋ค.
์ ์์์์ box1
์ top, left
๋ฅผ ์ ์ฉํ์ง๋ง, ์์น๋ ๋ณํ์ง ์์๋ค. ์ด๋ ์์์ ๊ธฐ๋ณธ๊ฐ์ด static์ด๊ธฐ ๋๋ฌธ์ด๋ค. ์ฆ, static ์ํ์ ์์๋ position์ด ์ ์ฉ๋์ง ์์์, ์ฐ๋ฆฌ๋ ์์์ position ๊ฐ์ ๋ฐ๊ฟ์ค์ผ ํ๋ค.
๋ํ, static ์ํ์ ์์๋ normal flow layer์ ์กด์ฌํ๋ค. ๋ง ๊ทธ๋๋ก ๊ธฐ๋ณธ์ํ์ด๊ธฐ ๋๋ฌธ์ ์ฎ๊ธธ ์๋ ์์ผ๋ฉฐ, ๊ฐ์ฅ ๋ค์ ์๋ ๋ ์ด์ด์ฌ์ z-index
๋ ์ ์ฉ๋์ง ์๋๋ค.
๊ทธ๋ผ static ์ด์ธ์ ๋ค๋ฅธ ๊ฐ๋ค์ ์์๋ณด์.
2) relative
๊ธฐ์ค : normal flow ์์ ์๋ ์์์ ์์น
์ ์ฉ : normal flow์ ๋ณธ๋ ์์น๋ก๋ถํฐ ์ด๋ํ๋ฉฐ, ์์ ํ ๊ฐ๋ฅผ ์ด๋์ํฌ ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
์์
<div id="container">
<div id="box1" class="box"></div>
์ ์ฉ
#box1{
position: relative;
top: 30px;
left: 30px;
}
3) absolute
๊ธฐ์ค : ์์ ์ด ์ํ Parent ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ง์ธ๋ค.
์ ์ฉ : ๊ธฐ๋ณธ ์์น๋ normal flow์์์ ์๋ฆฌ์ ๋์ฌ์๋ค. ํ์ง๋ง ์์น๋ฅผ ๋ณ๊ฒฝํ ๊ฒฝ์ฐ ๊ทธ ๊ธฐ์ค์ธ ์์ ์ parent ์์๋ฅผ ์ค์ฌ์ผ๋ก ์์ง์ธ๋ค. ๋จ, ์์ ์ด ์ํ parent๋ static ์ํ์ฌ์ ์๋๋ค.
์๋๋ฉด absolute๋ ์คํ ์, ๋ณธ์ธ parent ์์์ position์ ํ์ธํ๊ณ static์ด๋ฉด ๋ฌด์ํ๊ณ ๊ทธ ๋ค์์ผ๋ก ๊ฐ๊น์ด parent์์๋ก ๋์ด๊ฐ๊ธฐ ๋๋ฌธ์ด๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ๋ชจ๋ parent ์์๋ค์ด static์ธ ๊ฒฝ์ฐ์ body๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ง์ด๊ฒ ๋๊ธฐ์, ๊ธฐ์ค์ด ๋ parent ์์๋ relative ๋ก ๋ฐ๊ฟ์ฃผ๋ ๊ฒ ๋ง๋ค.
๋ํ, absolute ์์ฒด๋ float์ฒ๋ผ ๋ ์ด์ด์ ๊ฐ๋ ์ผ๋ก absolute๊ฐ ์ ์ฉ๋ n๊ฐ์ ์์๋ n๊ฐ์ ๋ ์ด์ด๋ฅผ ๋ง๋ ๋ค. ์ฆ, ํ๋ฉด์ ๊ตฌ์ฑํ๋ ์ฌ๋ฌ ๊ฐ์ ๋ ์ด์ด ์ค ํ๋๋ก, normal flow์ ์๋ ์์๊ฐ ํด๋น ๊ธฐ๋ณธ ๋ ์ด์ด ์๋ก ์ฌ๋ผ์ค๊ณ , ๊ฐ ๋ ์ด์ด๋ ์์๊ฐ ์กด์ฌํ๋ค.
์ถ๊ฐ๋ก absolute
์ํ์ ๋ ์ด์ด ์์๋ฅผ ๋ฐ๊พธ๊ณ ์ถ์ ๋๋ z-index
๋ก ์กฐ์ ํ๋ฉด ๋๋ค.
4) fixed
๊ธฐ์ค : ํ์ฌ ๋ณด๊ณ ์๋ ํ๋ฉด
์ฐ๋ฆฌ๊ฐ ์ธํฐ๋ท ์ํ์ ํ ๋, ํ๋ฉด์ ๋ํ๋๋ ๊ด๊ณ ๋ค์ด ์ด ์์ฑ์ ๊ฐ์ง๊ณ ์๋ค.
์ฌ๊ธฐ์ ๋ณด๊ณ ์๋ ํ๋ฉด์ โ์ ์ฒด ์์ญโ์ด ์๋ ๋ธ๋ผ์ฐ์ ์ฐฝ์ ๋ํ๋ ํฌ๊ธฐ๋ฅผ ์๋ฏธํ๋ค.
๊ทธ๋์ ํด๋น ํ๋ฉด์ ํน์ ์์น์ ์์ ๊ณ ์ ์์ผ, ์คํฌ๋กค์ ํด๋ ์ฌ๋ผ์ง์ง ์๋๋ค.
์ด๋ฅผ ์์ฉํด ์ฃผ๋ก ์ฑํ
์๋ด ์์ ฏ, ํ๋ฉด ์ปจํธ๋กค๋ฌ ๋ฑ์ ๊ตฌํํ๋ค.
5) transform
์ด๊ฑด ๋ ์ด์์์ ์ก๋๋ฐ ์ฌ์ฉ๋๋ ๊ฑด ์๋๊ณ , ๊ฐ ์์์ ์ ์ฉํด์ ๋ณํ๋ฅผ ์ฃผ๋ ์ ๋๋ฉ์ด์
ํจ๊ณผ ์์ฑ์ด๋ผ ํ ์ ์๋ค. ์ฃผ๋ก :hover / :active
์ ์กฐํฉํด์, ์ฌ์ฉ์๊ฐ ์์์ ํน์ ๋์์ ํ์ ๋ ๋ฐ์ํ๋ ์ฉ๋๋ก ์ฌ์ฉ๋๋ค.
transform : rotate(~deg); ํ์
transform : scale(?); ํฌ๊ธฐ ์ฆ๊ฐ
transform : translate(20px,100px); ์์น ์ด๋
๋ฌผ๋ก ๋ฐ๋ก ์คํ์ผ์ ๊ตฌํํ๋ ๊ฒ๋ ์ข์ง๋ง, ์ข์ CDN๋ค์ด ๋ง๊ธฐ ๋๋ฌธ์ ๊ตฌ๊ธ์ ๊ฒ์ํด์ ์ฌ์ฉํ๋ ๊ฑธ ๊ถ์ฅํ๋ค.
์ค๋ ๋ฐฐ์ด positioning ๋ํ, ๋ ์ด์์ ์์ ์์๋ฅผ ์ฎ๊ธธ ๋, ํจ๊ณผ๋ฅผ ๋ง๋ค ๋ ์ฌ์ฉ๋๋ ๋ ์ด์์ ๊ธฐ๋ฒ์ผ๋ก ์ค์ ์ฌ์ดํธ๋ค์์๋ ์ฝ๊ฒ ์ฐพ์๋ณผ ์ ์๋ค.
๋ค๋ง ์ด์ ๊ฐ์์ค๋ฝ๊ฒ ํฌํ ํด๋ฆฌ์ค?๋ฅผ ์ ์ถํ๋ผ๋ ๋ฐ๋์ 7์๊ฐ ๋์ ๊พธ์ญ ๊พธ์ญ ๋ ์ด์์ ์ก๊ณ ํ์๋๋ฐ, positioning์ ๋จ์ฉํ๋๋ ํ๋ฉด ํฌ๊ธฐ๊ฐ ์ค์ด๋ค๋ฉด ๊ทธ์ ๋ง์ถฐ์ ํจ๊ป ์ค์ด๋๋ ๊ฒฝ์ฐ๊ฐ ์ฆ์๋ค.
๊ทธ๋ฌ๋ ํน๋ณํ ๊ฒฝ์ฐ ์๋๋ฉด ์ ์ฌ์ฉํ๋๊ฒ ์ข์ ๊ฒ ๊ฐ๋ค.
Author And Source
์ด ๋ฌธ์ ์ ๊ดํ์ฌ([ ๊ตญ๋น๊ต์ก ] Day 36), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://velog.io/@ho_c/๊ตญ๋น๊ต์ก-Day-36์ ์ ๊ท์: ์์์ ์ ๋ณด๊ฐ ์์์ URL์ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์๊ถ์ ์์์ ์์ ์ ๋๋ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ
์ธ ๋ฐ๊ฒฌ์ ์ ๋
(Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค