๋ฐ์ํ
position ์์ฑ
์์์ ์์น๋ฅผ ์ ํ๋ ๋ฐฉ๋ฒ์ ์ง์ ํ๋ ์์ฑ์ ๋๋ค.
๊ธฐ๋ณธ ๊ฐ : static
position: static | absolute | fixed | relative | sticky | initial | inherit;
< ์์ฑ ๊ฐ >
static | Normal-flow ์ ๋ฐ๋ผ ๋ฐฐ์น๋๋ฉฐ offset ๊ฐ์ด ์ ์ฉ๋์ง ์๋๋ค. (๊ธฐ๋ณธ๊ฐ) |
absolute |
|
fixed |
|
relative |
** left:-50px ์ผ์ชฝ์ผ๋ก ์์ง์ธ๋ค. (right: +50px ์ด๊ฑฐ๋ ๊ฒฐ๋ก ์ ์ผ๋ก ์์น๋ ๊ฐ๋ค.) |
- Normal-flow ๋? ์ผ๋ฐ์ ์ธ ์ํฉ์์ ๊ฐ์ ์์๋ค์ ์ฑ์ง์ ๋ฐ๋ผ ๋ฐฐ์น ๋๋ ์์(ํ๋ฆ)๋ฅผ ๋ปํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด, block ๋ ๋ฒจ ์์๋ค์ ์ํ๋ก ๋ฐฐ์น๋๊ณ , inline ๋ ๋ฒจ ์์๋ค์ ์ข์ฐ๋ก ๋ฐฐ์น๋๋ ๊ฒ์ ๋งํฉ๋๋ค.
sticky๋ ์ค๋ฌด์ ์ ์ฐ์ง ์๋๋ค. (์ข์ ๊ธฐ๋ฅ์ด์ง๋ง ์ง์๋ฅ ์ด ์ข์ง ์๋ค. // can i use ์ฌ์ดํธ ์ฐธ๊ณ )
offset(top/left/bottom/right)
top|bottom|left|right: auto|length|initial|inherit;
top: 50%;
left: 10px;
bottom: -10px;
right: auto;
- offset์ %๋จ์ ์ฌ์ฉ ์ด์ ์ padding๊ณผ margin์์ % ๊ฐ์ ์ ์ฉํ ๋, ์ํ์ข์ฐ ๋ฐฉํฅ์ ๊ด๊ณ์์ด ๊ฐ๋ก ์ฌ์ด์ฆ๋ฅผ ๊ธฐ์ค์ผ๋ก %๊ฐ์ ๊ณ์ฐ๋๋ค๊ณ ๋ฐฐ์ ์ต๋๋ค. ๊ทธ๋ฌ๋ offset์ top, bottom (์ํ) ๋ ๊ธฐ์ค์ด ๋๋ ์์์ height ๊ฐ left, right (์ข์ฐ) ๋ width๊ฐ์ ๋ํ์ฌ ๊ณ์ฐ๋์ด์ง๋๋ค.
**๋ธ๋ผ์ฐ์ ์์๋ ์์ฑ๊ฐ์ ์กฐํฉ์ ๊ณ ๋ คํ๋ฉด์๊น์ง ์ค๋ฅ๋ฅผ ๋ฐ๊ฒฌํด์ฃผ์ง ์๋๋ค.
๊ทธ๋์ default ๊ฐ์ผ ๋ top, right๋ฅผ ์ ์ธํด๋๊ณ ๋ณํ๊ฐ ์์๋๋ position์ ์ ๋๋ก ์์ง์ผ ์ ์๋ ๊ฐ์ผ๋ก ์ ์ธ์ ํ๋์ง ๊ผญ ๋ฐ๊ฒฌํ ์ค ์์์ผ ํ๋ค.
๋ถ๋ชจ๊ฐ static์ด ์๋ relative, absolute, fixed ์ผ ๋ ๊ทธ๋ ๊ทธ offset ๊ฐ์ด ์๋ํ๋ค.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>position</title>
<style>
.sibling {
padding: 5px;
background-color: #eee;
text-align: center;
}
.parent {
border: 1px dashed #aaa;
padding: 10px;
}
.child,
.child_offset {
width: 60px;
height: 60px;
padding: 20px;
background-color: #dc3636;
text-align: center;
color: #fff;
font-weight: bold;
border: 1px solid #333;
}
.child_offset {
background-color: #3677dc;
}
.static {
position: static;
}
.relative {
position: relative;
}
.static {
position: static;
}
.absolute {
position: absolute;
}
.fixed {
position: fixed;
}
</style>
</head>
<body>
<h1>position (Offset ๋ฏธ์ง์ )</h1>
<h2>static (๊ธฐ๋ณธ)</h2>
<div class="parent">
<div class="sibling">Sibling 1</div>
<div class="child static">static</div>
<div class="sibling">Sibling 2</div>
</div>
<h2>relative</h2>
<div class="parent">
<div class="sibling">Sibling 1</div>
<div class="child relative">relative</div>
<div class="sibling">Sibling 2</div>
</div>
<h2>absolute</h2>
<div class="parent">
<div class="sibling">Sibling 1</div>
<!-- absolute, fixed๋ inline์์์ผ๋ display:block์ผ๋ก ๋ณ๊ฒฝ์ํด. inline-block ๊ฐ์ ์์ ์ง์ ํ์ ๋๋ ๊ทธ ๊ฐ์ ์ ์งํจ. -->
<span class="child absolute">absolute</span>
<div class="sibling">Sibling 2</div>
</div>
<h2>fixed</h2>
<div class="parent">
<div class="sibling">Sibling 1</div>
<!-- ํ์ฌ fixed๋ offset๊ฐ์ด ์์ด ๋ทฐํฌํธ ๋ฐ์ผ๋ก ๋ฐ๋ ค๋์ค๋ฉด์ ํ๋ฉด ์๋๋ก ์ฌ๋ผ์ง -->
<div class="child fixed">fixed</div>
<div class="sibling">Sibling 2</div>
</div>
<h1>position (Offset ์ง์ )</h1>
<h2>static - </h2>
<div class="parent">
<div class="sibling">Sibling 1</div>
<div class="child_offset static" style="top: 40px; right: 40px;">static <br>top: 40, left: 40</div>
<div class="sibling">Sibling 2</div>
</div>
<h2>relative</h2>
<div class="parent">
<div class="sibling">Sibling 1</div>
<div class="child_offset relative" style="top: 40px; left: 40px;">relative <br>top: 40, left: 40</div>
<div class="sibling">Sibling 2</div>
</div>
<h2>absolute - parent relative</h2>
<div class="parent relative">
<div class="sibling">Sibling 1</div>
<div class="child_offset absolute" style="top: 40px; left: 80px;">absolute<br>top: 40, left: 80</div>
<div class="sibling">Sibling 2</div>
</div>
<h2>fixed</h2>
<!-- ๋ถ๋ชจ๊ฐ fixed์ฌ๋ ๋ณ๊ฐ๋ก ์์นํจ -->
<div class="parent">
<div class="sibling">Sibling 1</div>
<div class="child_offset fixed" style="top:100px;left:80%;">fixed<br>top:100, left:80%</div>
<div class="sibling">Sibling 2</div>
</div>
</body>
</html>
See the Pen Untitled by HelloHailie (@hellohailie) on CodePen.
๐css ์ฐธ๊ณ ์ฌ์ดํธ๐
๋ฐ์ํ
'๐Language > HTML & CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
HTML/CSS ์ ํจ์ฑ ๊ฒ์ฌ ์ฌ์ดํธ (0) | 2022.04.19 |
---|---|
z-index, ์์ ์์, ํดํ ๋ฐ์ค (tool tip) (0) | 2022.04.19 |
css display float๊ณผ clear (0) | 2022.04.19 |
css visibility ์์ฑ (0) | 2022.04.19 |
display ์์ฑ (0) | 2022.04.19 |