์์๋ก ์์๋ณด๋ Display!
โ๏ธ์ฐ์ html์์ ๊ฐ๊ฐ div,span tag๋ฅผ 3๊ฐ์ฉ ๋ง๋ ๋น
<!-- Block-level -->
<div>1</div>
<div>2</div>
<div>3</div>
<!-- Inline level -->
<span>1</span>
<span>2</span>
<span>3</span>
โ๏ธ๊ทธ๋ฆฌ๊ณ ์ด tag๋ค์ ๋์ ๋ณด์ด์ง ์๋ box ์ด๊ธฐ ๋๋ฌธ์ ๊ตฌ๋ถ์ ์ํด CSS์์ ๋ฐฐ๊ฒฝ์์ ์ง์ ํด์ค๋ค.
div, span {
width: 80px;
height: 80px;
margin: 20px;
background: pink;
}
div {
background: red;
}
span {
background: blue;
}
๐คท๐ปโโ๏ธ ๋์? ๋ถ๋ช
ํ span
์๋ width
, height
๊ฐ์ ์ง์ ํ๋๋ฐ ์๋ก์ฝ๋กฌ ์ ์ฉ๋์ง ์๋๋ค!
๐๐ปโโ๏ธ ์๋ํ๋ฉด display:inline
์์ฒด๊ฐ, content์ ํฌ๊ธฐ ๋งํผ๋ง ๊ณต๊ฐ์ ์ฐจ์งํ๋๋ก ์ค์ ํ๋ tag์ด๊ธฐ ๋๋ฌธ!
์ด๊ฑด ๋ง์น, "์ฌํํ๋ฐ ํ๋ คํ ๋์์ธ ํ๋ ๋ฝ์์ฃผ์ธ์. ๊ธํ๊ฑฐ๊ธด ํ๋ฐ ์ฒ์ฒํ ํด์." ๊ฐ์ ๋๋๐ฑ
๐ display๋ฅผ inline์ผ๋ก ์ค์ ์ width, height, ์ํ margin, ์ํ padding, float ์ค์ ์ด ๋จนํ์ง ์๋๋ค.
(์ข์ฐ margin,padding์ ๋จน์)
๐ค ์ด๋ฒ์ ๋๋์ด display ์์ฑ์ ์ง์ ํด๋ณธ๋น
div, span {
width: 80px;
height: 80px;
margin: 20px;
background: pink;
}
div {
background: red;
display: inline-block;
}
span {
background: blue;
display: block;
}
๐๐ปโโ๏ธ์ฐ์~ block ์์ฑ์ธ div
๋ ํ์ค์ ์ฌ๋ฌ๊ฐ ์ง์ด๋๊ณ , inline ์์ฑ์ span
์ ํ์ค์ ํ ๊ฐ๋ง ์ง์ด๋์๋ค!
๐ div
์ display:inline-block;
๋์ display:inline;
์ ์ ์ฉํด๋ด๋ ์ฌ๋ฐ๋ค!
div
๋ width
๋ height
๋ฅผ ์ง์ ํ๋๋ฐ, inline
์์ฑ์ ์ฃผ๋๊น โ๏ธ์ฒ๋ผ ๋๋ฒ๋ฆฐ๋ค!
inline | inline-block | block |
---|---|---|
ํ ์ค์ ์ฌ๋ฌ๊ฐ ์ง์ด ๊ฐ๋ฅํ Item | ํ ์ค์ ์ฌ๋ฌ๊ฐ ์ง์ด ๊ฐ๋ฅํ Box | ํ ์ค์ ํ ๊ฐ๋ง ์ง์ด ๊ฐ๋ฅํ Box |
์ ํ ์ค๋ฐ๊ฟ ์์ด ๋๋ํ ๋ฐฐ์น | ์ ํ ์ค๋ฐ๊ฟ ์์ด ๋๋ํ ๋ฐฐ์น | ์ ํ ์ค๋ฐ๊ฟ์ด ๋ค์ด๊ฐ์ ํผ์์ ํ ์ค ์ฐจ์ง |
width, height, ์ํ margin, ์ํ padding ์ ์ฉ ์๋จ | width, height, margin, padding ์ ์ ์ฉ๋จ | width, height, margin, padding ์ ์ ์ฉ๋จ |
๋ํ ํ๊ทธ : span, a, em | ๋ํ ํ๊ทธ : button, select | ๋ํ ํ๊ทธ : div, p, h1 |
์์๋ก ์์๋ณด๋ Position!
โ๏ธ ์ฐ์ html์์ ์ฌ๋ฌ๊ฐ์ div
box๋ค์ ๋ง๋ค์ด์ค๋ค.
<body>
<article class="container">
<div></div>
<div class="box">I'm Box</div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</article>
</body>
โ๏ธ ๊ตฌ๋ถ์ ์ํด CSS๋ก ๋ฐฐ๊ฒฝ์์ ๋ฃ์ด์ค๋ค.
div {
width: 50px;
height: 50px;
margin-bottom: 20px;
background: red;
}
.container { =>Box, ๋ถ๋ชจ ์์
background: yellow;
}
.box { =>Item, ์์ ์์
background: blue;
left: 20px;
top: 20px; =>position์ ๋ฐ๊ฟ ์ ์๋ Value (top,left,right,bottom)
position: static;
๐ค position: ์๋ ์์ ์์ฑ๊ฐ์ ์์๋ณด์!
- static : ๊ณ ์ ๋, ์ ์ง ์ํ์
(1) position: static;
: HTML์ ์ ์๋ ์์๋๋ก ๋ธ๋ผ์ฐ์ ์์ ์์ฐ์ค๋ฝ๊ฒ ๋ณด์ฌ์ค๋ค.
(2) position
์ ์ค์ ํ์ง ์์๊ธฐ ๋๋ฌธ์, ๊ธฐ๋ณธ๊ฐ์ธ static
์ผ๋ก ์ ์ฉ๋์ด์ left
, top
์์น๋ฅผ ์ง์ ํ์ด๋ ์์น๊ฐ ๋ณํ์ง ์๋๋ค.
- relative : ์๋์ ์ธ โ ์๋ ์์น ์ง์ !
(1) position: relative;
: ์๋์์ด์ผ ํ๋ ์๋ฆฌ์์ ์๋์ ์ผ๋ก ์์น ๋ณ๊ฒฝ
(2) ํ๋ Item์ด ์๋ ์๋ ๊ณต๊ฐ ใ ์ ์ ์งํ๋ฉด์ ์ฎ๊ฒจ๊ฐ๊ธฐ ๋๋ฌธ์ ๋ค์ ์ค๋ ๋นจ๊ฐ Item์ ์์น๊ฐ ๊ทธ๋๋ก
- absolute : ์์ ํ, ํ๊ณ ํ โ ์ ๋ ์์น ์ง์
(1) position: absolute;
: ๋ด Item์ด ๋ด๊ฒจ์๋, ๋ด Item๊ณผ ๊ฐ์ฅ ๊ฐ๊น์ด Box ๊ธฐ์ค์์ ์์น ๋ณ๊ฒฝ
(.box
๊ฐ ๋ด๊ฒจ์๋ ๊ฐ์ฅ ๊ฐ๊น์ด ์์๋ article class="container"
์ด๊ธฐ ๋๋ฌธ์ .container
์์์ ์์น๊ฐ ์ผ์ชฝ์์ 20px, ์์์ 20px ์ด๋๋๊ฒ)
(2) ํ๋ Item์ด ์๋ ์๋ ๊ณต๊ฐ ใ ์์ ์~์ฅ ๋น ์ ธ๋์ค๊ธฐ ๋๋ฌธ์ ๋ค์ ์ค๋ ๋นจ๊ฐ Item์ ํ๋ Item์ด ์๋ ๊ณต๊ฐ ใ ์ผ๋ก ์ฌ๋ผ์จ๋ค
(3) ์ผ๋ฐ์ ์ผ๋ก absolute๋ฅผ ์ธ ๊ฒฝ์ฐ, ์ ๋์ ์ผ๋ก ์์ง์ด๊ณ ์ถ์ ๋ถ๋ชจ์๊ฒ position: relative; ๋ฅผ ๋ถ์ฌ
(4) absolute ๊ฐ์ ๊ฐ๊ฒ ๋๋ฉด ๋ง์น inline-element์ฒ๋ผ ๋ด์ฉ์ ํฌ๊ธฐ๋งํผ๋ง ๊ฐ๋ก ํฌ๊ธฐ๊ฐ ์ง์ ๋จ
=>p ํ๊ทธ(block ์์) ์ธ๋ฐ inline ์์ ์ฒ๋ผ ๋ด์ฉ ๋งํผ๋ง ํฌ๊ธฐ ์ฐจ์ง
์ฌ๊ธฐ์{ left: 0; }
์ ์ถ๊ฐํ๋ฉด?
๋ง์น width: 100%;๋ฅผ ์ค ๊ฒ์ฒ๋ผ ๋ถ๋ชจ ์์์ ๊ฐ๋ก ํฌ๊ธฐ๋งํผ ๋ณ๊ฒฝ๋๋ค.
.item {
position:absolute;
left:50%; // ๋ถ๋ชจ์์์ ์ผ์ชฝ์์ ๋ถํฐ 50% ์ด๋
transform:translateX(-50%); // ์์ ์ ๊ฐ๋ก ์์น์ ์ ๋ฐ ๋งํผ ๋ง์ด๋์ค ์ด๋
}
transform:translateX(-50%);
: left:50%
๋ง ์
๋ ฅํ๊ณ ๊ฒฐ๊ณผ ํ๋ฉด์ ๋ณด๋ฉด, ๊ฐ์ด๋ฐ ์ ๋ ฌ์ด๋ผ๊ธฐ์.....์ค๋ฅธ์ชฝ์ผ๋ก ์ข ๋ ์น์ฐ์ณ์ ธ ์๋ค!
์๋ํ๋ฉด ์ฌ์ค์ left 50% + item์ ๊ฐ๋ก ๋๋น ๋งํผ ์ด๋ํ๊ฒ์ด๊ธฐ ๋๋ฌธ!!
์ด๋ด ๋, `transform:translateX(-50%)
๋ฅผ ์ด์ฉํ๋ฉด item์ ๊ฐ๋ก ๋๋น์ ์ ๋ฐ๋งํผ ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ์ด๋๋๋ฏ๋ก, ์ ๊ฐ์ด๋ฐ์ ์์นํ๊ฒ ๋๋ค!
- fixed : ๊ณ ์ ๋, ๋ณ์น ์๋ โ ๊ณ ์ ์์น ์ง์
(1) position: fixed;
: Box์์์ ์์ ํ ๋ฒ์ด๋์, Window ์์์ = ๋์ ๋ณด์ด๋ ๋ธ๋ผ์ฐ์ ํ๋ฉด ํฌ๊ธฐ๋งํผ
, ํ๋ฉด ๋ด์์๋ง ์์น ๋ณ๊ฒฝ
โ absolute์ ๋ฌ๋ฆฌ, relative๋ฅผ ๊ฐ์ง ๋ถ๋ชจ๊ฐ ํ์์๋ค!
(.container
์์ ์์ ํ ๋ฒ์ด๋์, ํฐ ํ๋ฉด(window ํ์ด์ง)์์์ ์ด๋)
(2) ํ๋ Item์ด ์๋ ์๋ ๊ณต๊ฐ ใ ์์ ์~์ฅ ๋น ์ ธ๋์ค๊ธฐ ๋๋ฌธ์ ๋ค์ ์ค๋ ๋นจ๊ฐ Item์ ํ๋ Item์ด ์๋ ๊ณต๊ฐ ใ ์ผ๋ก ์ฌ๋ผ์จ๋ค
- sticky : ๋๋ํ, ๋ถ์ผ ์ ์๋ โ ๋ฌ๋ผ๋ถ๋ ์์น ์ง์
(1) position: sticky;
: Scrolling ๋์ด๋ ์์ด์ง์ง ์๊ณ , ์๋์์ด์ผ ํ๋ ์๋ฆฌ์ ๊ทธ๋๋ก ์์
ex) ์ผํ๋ชฐ ๋ฐฐ๋, ๋ค์ด๋ฒ ์นํฐ ๋ค๋น๊ฒ์ด์
๋ฐ ๊ฐ์ ๋๋..?
.center {
position: absolute;
left: 50%;
transform: translateX(-50%);
}
๐๐ปโโ๏ธ left: 50%; => ํ๋ฉด์ ์ ์ฒด ๊ฐ๋ก ์์น์์ ์ ๋ฐ ๋งํผ์ ์์น๋ก ์ด๋
๐๐ปโโ๏ธ transform: translateX(-50%); => ์์ ์ ๊ฐ๋ก ์์น์ ์ ๋ฐ ๋งํผ ๋ง์ด๋์ค ์ด๋
๊ฐ๋ฐ ์์ด๋ณด ์ฝ๋ฆฐ์ด์
๋๋ค!
์ด ๋ด์ฉ์ ํผ์ ๋์์ ๊ฐ์&๊ตฌ๊ธ๋ง์ ํตํด ๋ฐฐ์ด ๋ด์ฉ์ ์ ๋ฆฌํ๋ ๊ฒ์ผ๋ก, ์ ๊ฐ ์ดํดํ๊ณ ๋์ด๊ฐ ๊ฐ๋
์ด ํ๋ ธ๊ฑฐ๋ ๋ ๋ณด์ถฉํ ๊ฐ๋
์ด ์๋ค๋ฉด ๋๊ธ ๋จ๊ฒจ์ฃผ์๋ฉด ์ ๋ง ๊ฐ์ฌํ๊ฒ ์ต๋๋ค!!
position ๊ฐ๋ ์ด ๋ง์ด ํท๊ฐ๋ ธ๋๋ฐ ์์ ๊ฐ ๋ง์์ ์ดํดํ๋๋ฐ ๋์์ด ๋ง์ด ๋์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค :)