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