CSS μμ± 11. float-position
βοΈ ν΄λΉ κΈμ ν¨μ€νΈμΊ νΌμ€ - νλ‘ νΈμλ κ°λ° κ°μμμ HTML & CSS, SASS(SCSS) Partμ λ°μμ κ°μ¬λμ κ°μμλ£λ₯Ό μ 리ν κ²μ λλ€.
float#
μμλ₯Ό μ’μ° λ°©ν₯μΌλ‘ λμ(μν μ λ ¬)
βοΈ CSS3μμ Flexible box λΌλ κ°λ μ΄ λ±μ₯νλ©΄μ μ΅κ·Όμλ float λ³΄λ€ Flexible box λ₯Ό μ΄μ©ν μν μ λ ¬μ νλ νΈμ΄λ€.
μμ± κ°#
| κ° | μλ―Έ | κΈ°λ³Έκ° |
|---|---|---|
| none | μμ λμ μμ | none |
| left | μΌμͺ½μΌλ‘ λμ | |
| right | μ€λ₯Έμͺ½μΌλ‘ λμ |
λ¨μ λμ μ¬μ©λ²#
<article><div class="picture"></div>Lorem ipsum...dolore voluptatum!</article>article .picture {width: 200px;height: 150px;background: tomato;float: left;margin-right: 20px;margin-bottom: 10px;}
float-left
μν μ λ ¬ μ¬μ©λ²#
float μ μ΄μ©νλ©΄ block μμλ₯Ό μνμΌλ‘ μ λ ¬νλ κ²μ΄ κ°λ₯νλ€.
<div class="box">1</div><div class="box">2</div><div class="box">3</div>.box {width: 150px;height: 100px;background: tomato;color: white;font-size: 30px;margin: 10px;float: left;}
float-horizon
float: right; λ‘ λ³κ²½ μ μμ΄λ μμ λν λ³κ²½λλ€.

float-horizon-right
float ν΄μ #
float μμ±μ΄ μ μ©λ μμμ μ£Όμλ‘ λ€λ₯Έ μμλ€μ΄ νλ₯΄κ² λλλ° μ΄λ₯Ό λ°©μ§νκΈ° μν΄ μμ±μ ν΄μ ν΄μΌ νλ€.
νμ μμμ
clear: (left, right, both)μΆκ°νμ¬ ν΄μ λΆλͺ¨ μμμ
overflow: (hidden, auto)μΆκ°νμ¬ ν΄μ λΆλͺ¨ μμμ
clearfixν΄λμ€ μΆκ°νμ¬ ν΄μ (μΆμ²!)
νμ μμμμ ν΄μ #
float μμ±μ΄ μΆκ°λ μμμ λ€μ νμ μμμ clear μμ± μΆκ°
<div class="float-left"></div><div class="float-left"></div><div class="next"></div>.float-left {width: 100px;height: 100px;background: tomato;float: left;}.next {clear: both;}βοΈ νμ λ€μ μμλ₯Ό λ§λ€μ΄μ£Όμ΄μΌ νλ€λ λ¬Έμ μ
λΆλͺ¨ μμμμ ν΄μ - overflow#
float μμ±μ΄ μΆκ°λ μμμ λΆλͺ¨ μμμ overflow μμ±μ μΆκ°ν΄ 보μ΄μ§ μκ² νλ λ°©λ².
<div class="parent"><div class="child"></div><div class="child"></div></div>.parent {overflow: hidden; /* or auto */}.child {float: left;}βοΈ λ€μ μμλ₯Ό λ§λ€μ§ μμλ λλ μ₯μ μ΄ μμ§λ§ κ΄λ ¨ μλ μμ±μΌλ‘ ν΄κ²°νλ μΌμ’ μ βνΈλ²βμΌλ‘ μ¬μ©μ κΆμ₯νμ§ μμ
λΆλͺ¨ μμμμ ν΄μ 2 (μΆμ²!)#
float μμ±μ΄ μΆκ°λ μμμ λΆλͺ¨ μμμ 미리 μ§μ λ clearfix ν΄λμ€ μΆκ°
<div class="parent clearfix"><div class="child"></div><div class="child"></div></div>π‘ μ°Έκ³ : κ°μ μμ μ νμ
.clearfix::after {content: "";clear: both;display: block; /* or table */}.child {float: left;}display μμ #
inline μμμ κ²½μ° float μμ±μ΄ λΆμ¬λμμ λ μλμ μΌλ‘ block μμμ νΉμ±μ κ°κ² λλ€. λ°λΌμ float μμ±μ μ¬μ©ν λ display: block; μ λ°λ‘ μ§μ ν νμκ° μλ€.
| μ§μ κ° | λ³νκ° |
|---|---|
| inline | block |
| inline-block | block |
| inline-table | block |
| table-row | block |
| table-row-group | block |
| table-column | block |
| table-column-group | block |
| table-cell | block |
| table-caption | block |
| table-header-group | block |
| table-footer-group | block |
| flex | flex / float μμ± ν¨κ³Όμμ |
| inline-flex | inline-flex / float μμ± ν¨κ³Όμμ |
| κ·Έ μΈ | λ³νμμ |
βοΈ λλΆλΆμ κ°μ΄ block μΌλ‘ λ³κ²½λλλ° flex , inline-flex μ κ²½μ° λ³κ²½λμ§ μλλ€.
clear#
float μμ±μ΄ μ μ©λμ§ μλλ‘ μ§μ (ν΄μ )
μμ± κ°#
| κ° | μλ―Έ | κΈ°λ³Έκ° |
|---|---|---|
| none | μμ λμ νμ© | none |
| left | μΌμͺ½ λμ ν΄μ | |
| right | μ€λ₯Έμͺ½ λμ ν΄μ | |
| both | μμͺ½(μΌμͺ½, μ€λ₯Έμͺ½) λͺ¨λ λμ ν΄μ |
position#
μμμ μμΉ μ§μ λ°©λ²μ μ ν(κΈ°μ€)μ μ€μ
μμ± κ°#
| κ° | μλ―Έ | κΈ°λ³Έκ° |
|---|---|---|
| static | μ ν(κΈ°μ€) μμ / λ°°μΉ λΆκ°λ₯ | static |
| relative | μμ μμ μ κΈ°μ€μΌλ‘ λ°°μΉ | |
| absolute | μμΉ μ λΆλͺ¨ μμλ₯Ό κΈ°μ€μΌλ‘ λ°°μΉ | |
| fixed | λΈλΌμ°μ (λ·°ν¬νΈ)λ₯Ό κΈ°μ€μΌλ‘ λ°°μΉ | |
| sticky | μ€ν¬λ‘€ μμ κΈ°μ€μΌλ‘ λ°°μΉ |
relative#
μλ μμΉν΄μΌ ν μμΉμ λν μλμ μΈ μμΉ
<div class="box">1</div><div class="box relative">2</div><div class="box">3</div>.box {width: 100px;height: 100px;background: tomato;border: 4px dashed red;border-radius: 20px;display: flex;justify-content: center;align-items: center;font-size: 30px;}.relative {position: relative;top: 100px;left: 30px;}βοΈ relative μμ±κ°μ κ°μ§ μμλ μκΈ° μμ μ΄ μλ μμλ μμΉμμ μ£Όλ³ μμμμν₯μ μ€λ€.
absolute#
<div class="grand-parent"><div class="parent"><div class="child">1</div><div class="child absolute">2</div><div class="child">3</div></div></div>.grand-parent {width: 400px;height: 300px;padding: 30px 100px 100px 30px;border: 4px dashed lightgray;}.parent {width: 400px;height: 300px;border: 4px dashed gray;position: relative;}.child {width: 120px;height: 80px;background: tomato;border: 4px dashed red;border-radius: 10px;font-size: 30px;display: flex;justify-content: center;align-items: center;}.absolute {position: absolute;bottom: 50px;right: 50px;}
position-absolute
π‘ μμΉμ λΆλͺ¨ μμ - μ‘°μ μμ μ€ position μμ±μ΄ λΆμ¬λμ΄ μλ μμ ( static μ μΈ )μ‘°μ μμμ μλ€λ©΄ -> body (μΌλ°μ μΌλ‘ μμ) -> html (μΌλ°μ μΌλ‘ μμ) -> window κ°μ²΄ (λ·°ν¬νΈ)
fixed#
λΈλΌμ°μ (λ·°ν¬νΈ)λ₯Ό κΈ°μ€μΌλ‘ ν¨ - μ€ν¬λ‘€μ λ΄λ €λ ν΄λΉ μμΉμ κ³ μ λ¨.
sticky#
μ€ν¬λ‘€ μμ κΈ°μ€μΌλ‘ λ°°μΉ
.box {position: sticky;top: 0;}βοΈ top , bottom , left , right μ€ νλ μ΄μμ μμ μ¬μ©.IE μ§μ λΆκ°.
μμ μμ μμ(Stack order)#
μμκ° μμ¬ μλ μμλ₯Ό ν΅ν΄
μ΄λ€ μμκ° μ¬μ©μμ κ°κΉκ² μλμ§(λ μμ μμ΄λμ§)λ₯Ό κ²°μ (ZμΆ)
staticμ μ μΈνpositionμμ±μ κ°μ΄ μμ κ²½μ° κ°μ₯ μμ μμ(κ°μ 무κ΄)positionμ΄ λͺ¨λ μ‘΄μ¬νλ€λ©΄z-indexμμ±μ μ«μ κ°μ΄ λμ μλ‘ μμ μμpositionμμ±μ κ°μ΄ μκ³ ,z-indexμμ±μ μ«μ κ°μ΄ κ°λ€λ©΄, βHTMLβ μ λ§μ§λ§ μ½λμΌμλ‘ μμ μμ(λμ€μ μμ±ν μ½λ(μμ))
position > z-index > HTML λ§μ§λ§ μ½λβοΈ z-index λ position μμ±μ΄ μ€μ λ μμμ λν΄μλ§ μλ―Έλ₯Ό κ°λλ€.
display μμ #
float μμ±κ³Ό λΉμ·νκ² absolute , fixed μμ± κ°μ΄ μ μ©λ μμλ display μμ±μ κ°μ΄ λλΆλΆ block μΌλ‘ μμ λλ€.
| μ§μ κ° | λ³νκ° |
|---|---|
| inline | block |
| inline-block | block |
| inline-table | block |
| table-row | block |
| table-row-group | block |
| table-column | block |
| table-column-group | block |
| table-cell | block |
| table-caption | block |
| table-header-group | block |
| table-footer-group | block |
| flex | flex / float μμ± ν¨κ³Όμμ |
| inline-flex | inline-flex / float μμ± ν¨κ³Όμμ |
| κ·Έ μΈ | λ³νμμ |
top , bottom , left , right#
μμμ position κΈ°μ€μ λ§λ βμμͺ½β, βμλμͺ½β, βμΌμͺ½β, βμ€λ₯Έμͺ½βμμμ 거리(μμΉ )λ₯Ό μ€μ
| κ° | μλ―Έ | κΈ°λ³Έκ° |
|---|---|---|
| auto | λΈλΌμ°μ κ° κ³μ° | |
| λ¨μ | px , em , cm λ± λ¨μλ‘ μ§μ | 2020-02-03 00:00:00 |
| % | λΆλͺ¨(μμΉ μμ λΆλͺ¨(μ‘°μ)) μμμ κ°λ‘ λλ μΈλ‘ λλΉμ λΉμ¨λ‘ μ§μ , μμ κ° νμ© |
βοΈ μμ λ€ μμλ position μμ±μ΄ μ§μ λμ΄ μμ λλ§ μ¬μ©ν μ μλ€.
Reference#
ν¨μ€νΈμΊ νΌμ€ - νλ‘ νΈμλ κ°λ° κ°μ - HTML & CSS, SASS(SCSS) Part by ParkYoungWoong