λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
μΉ΄ν…Œκ³ λ¦¬ μ—†μŒ

float 속성 μ‚¬μš©λ²• 총정리 (μ™Όμͺ½ or 였λ₯Έμͺ½μ— λ°°μΉ˜ν•˜κΈ°)

by 5566 2023. 10. 13.

1. 속성 κ°œμš”

float 속성은 HTML μš”μ†Œλ₯Ό 쒌우둜 λ°°μΉ˜ν•  λ•Œ μ‚¬μš©λ˜λŠ” CSS 속성 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€. float 속성은 ν•΄λ‹Ή μš”μ†Œλ₯Ό 일반적인 νλ¦„μ—μ„œ λΉΌλ‚΄μ–΄ 쒌우둜 μ΄λ™μ‹œν‚€λŠ” 역할을 ν•©λ‹ˆλ‹€. float 속성을 μ‚¬μš©ν•˜λ©΄ ν•΄λ‹Ή μš”μ†Œ μ£Όλ³€μ˜ λ‹€λ₯Έ μš”μ†Œλ“€μ΄ κ·Έ μ£Όμœ„μ— κ°μ‹Έμ§€κ²Œ λ©λ‹ˆλ‹€.

float 속성은 λŒ€ν‘œμ μœΌλ‘œ μ’ŒμΈ‘μ— λ°°μΉ˜ν•˜λŠ” float: left;와 μš°μΈ‘μ— λ°°μΉ˜ν•˜λŠ” float: right; 두 가지 값이 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 μš”μ†Œλ₯Ό μ›ν•˜λŠ” μœ„μΉ˜λ‘œ λ°°μΉ˜ν•˜κ³  λ‹€λ₯Έ μš”μ†Œμ™€ ν•¨κ»˜ λΆ„λ¦¬ν•˜μ—¬ λ ˆμ΄μ•„μ›ƒμ„ ꡬ성할 수 μžˆμŠ΅λ‹ˆλ‹€.

float 속성은 주둜 μ΄λ―Έμ§€λ‚˜ ν…μŠ€νŠΈμ™€ 같은 컨텐츠λ₯Ό κ°μ‹ΈλŠ” λΆ€λͺ¨ μš”μ†Œμ— μ μš©ν•˜μ—¬ μ½˜ν…μΈ μ˜ 흐름을 μ œμ–΄ν•˜κ³  μ›ν•˜λŠ” μœ„μΉ˜μ— λ°°μΉ˜ν•  λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ float 속성을 μ‚¬μš©ν•  κ²½μš°μ—λŠ” λͺ‡ 가지 κ³ λ €ν•΄μ•Ό ν•  사항이 μžˆμŠ΅λ‹ˆλ‹€. 이에 λŒ€ν•΄μ„œλŠ” λ‹€μŒ ν•­λͺ©μ—μ„œ μžμ„Ένžˆ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

2. μ™Όμͺ½μ— λ°°μΉ˜ν•˜κΈ°

μ™Όμͺ½μ— μš”μ†Œλ₯Ό λ°°μΉ˜ν•˜κΈ° μœ„ν•΄μ„œλŠ” float: left; 속성을 μ‚¬μš©ν•©λ‹ˆλ‹€. 이 속성을 μ μš©ν•˜λ©΄ ν•΄λ‹Ή μš”μ†ŒλŠ” μ™Όμͺ½μœΌλ‘œ μ΄λ™ν•˜λ©΄μ„œ λ‹€λ₯Έ μš”μ†Œλ“€μ΄ κ·Έ μ£Όμœ„μ— κ°μ‹Έμ§€κ²Œ λ©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, μ•„λž˜μ™€ 같이 HTMLκ³Ό CSSλ₯Ό μž‘μ„±ν•˜μ—¬ μš”μ†Œλ₯Ό μ™Όμͺ½μ— λ°°μΉ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

<div class="wrapper">
  <img src="image.jpg" alt="Image" />
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
</div>
.wrapper {
  float: left;
  margin-right: 20px;
}

μœ„μ˜ μ˜ˆμ‹œμ—μ„œλŠ” wrapperλΌλŠ” 클래슀λ₯Ό 가진 div μš”μ†Œλ₯Ό μ™Όμͺ½μœΌλ‘œ λ°°μΉ˜ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 그리고 margin-right 속성을 μ‚¬μš©ν•˜μ—¬ μš”μ†Œμ™€ λ‹€λ₯Έ μš”μ†Œ 사이에 간격을 두고 μžˆμŠ΅λ‹ˆλ‹€.

μœ„μ™€ 같이 float 속성을 μ‚¬μš©ν•˜λ©΄ μš”μ†Œμ˜ 흐름을 μ œμ–΄ν•˜κ³  λ‹€λ₯Έ μš”μ†Œμ™€ ν•¨κ»˜ λΆ„λ¦¬ν•˜μ—¬ μ›ν•˜λŠ” λ ˆμ΄μ•„μ›ƒμ„ 생성할 수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ float 속성을 μ‚¬μš©ν•  λ•ŒλŠ” λ‹€μŒ ν•­λͺ©μ—μ„œ μ†Œκ°œν•  λͺ‡ 가지 고렀사항을 염두에 두어야 ν•©λ‹ˆλ‹€.

3. 였λ₯Έμͺ½μ— λ°°μΉ˜ν•˜κΈ°

였λ₯Έμͺ½μ— μš”μ†Œλ₯Ό λ°°μΉ˜ν•˜κΈ° μœ„ν•΄μ„œλŠ” float: right; 속성을 μ‚¬μš©ν•©λ‹ˆλ‹€. 이 속성을 μ μš©ν•˜λ©΄ ν•΄λ‹Ή μš”μ†ŒλŠ” 였λ₯Έμͺ½μœΌλ‘œ μ΄λ™ν•˜λ©΄μ„œ λ‹€λ₯Έ μš”μ†Œλ“€μ΄ κ·Έ μ£Όμœ„μ— κ°μ‹Έμ§€κ²Œ λ©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, μ•„λž˜μ™€ 같이 HTMLκ³Ό CSSλ₯Ό μž‘μ„±ν•˜μ—¬ μš”μ†Œλ₯Ό 였λ₯Έμͺ½μ— λ°°μΉ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

<div class="wrapper">
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
  <img src="image.jpg" alt="Image" />
</div>
.wrapper {
  float: right;
  margin-left: 20px;
}

μœ„μ˜ μ˜ˆμ‹œμ—μ„œλŠ” wrapperλΌλŠ” 클래슀λ₯Ό 가진 div μš”μ†Œλ₯Ό 였λ₯Έμͺ½μœΌλ‘œ λ°°μΉ˜ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 그리고 margin-left 속성을 μ‚¬μš©ν•˜μ—¬ μš”μ†Œμ™€ λ‹€λ₯Έ μš”μ†Œ 사이에 간격을 두고 μžˆμŠ΅λ‹ˆλ‹€.

float 속성을 μ‚¬μš©ν•˜λ©΄ μš”μ†Œμ˜ 흐름을 μ œμ–΄ν•˜κ³  λ‹€λ₯Έ μš”μ†Œμ™€ ν•¨κ»˜ λΆ„λ¦¬ν•˜μ—¬ μ›ν•˜λŠ” λ ˆμ΄μ•„μ›ƒμ„ 생성할 수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ float 속성을 μ‚¬μš©ν•  λ•ŒλŠ” λ‹€μŒ ν•­λͺ©μ—μ„œ μ†Œκ°œν•  λͺ‡ 가지 고렀사항을 염두에 두어야 ν•©λ‹ˆλ‹€.

4. float 속성을 μ‚¬μš©ν•œ λ ˆμ΄μ•„μ›ƒ μž‘μ„± μ‹œ κ³ λ €ν•΄μ•Ό ν•  사항

float 속성을 μ‚¬μš©ν•˜μ—¬ λ ˆμ΄μ•„μ›ƒμ„ μž‘μ„±ν•  λ•Œ λͺ‡ 가지 고렀사항을 염두에 두어야 ν•©λ‹ˆλ‹€:

4.1. λΆ€λͺ¨ μš”μ†Œμ˜ 높이 μ‘°μ •

float 속성을 μ μš©ν•œ μš”μ†ŒλŠ” 일반적인 흐름을 λ²—μ–΄λ‚˜κΈ° λ•Œλ¬Έμ— λΆ€λͺ¨ μš”μ†Œμ˜ 높이λ₯Ό κ³„μ‚°ν•˜λŠ” 데 영ν–₯을 쀄 수 μžˆμŠ΅λ‹ˆλ‹€. λ§Œμ•½ λΆ€λͺ¨ μš”μ†Œκ°€ μžμ‹ μš”μ†Œμ˜ 높이λ₯Ό ν¬ν•¨ν•˜λ„λ‘ μ›ν•œλ‹€λ©΄, λΆ€λͺ¨ μš”μ†Œμ— overflow: hidden; 속성을 μ μš©ν•˜μ—¬ μš”μ†Œμ˜ 높이λ₯Ό μž¬κ³„μ‚°ν•˜λ„λ‘ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

4.2. μš”μ†Œμ˜ 배치 μˆœμ„œ

float 속성을 μ‚¬μš©ν•˜λ©΄ μš”μ†Œμ˜ 배치 μˆœμ„œκ°€ 쒌우둜 λ³€κ²½λ©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μ™Όμͺ½μœΌλ‘œ float된 μš”μ†ŒλŠ” 였λ₯Έμͺ½μ— floatλ˜μ§€ μ•Šμ€ μš”μ†Œλ³΄λ‹€ λ¨Όμ € λ°°μΉ˜λ©λ‹ˆλ‹€. μ΄λŸ¬ν•œ λ³€ν™”λ₯Ό κ³ λ €ν•˜μ—¬ μš”μ†Œμ˜ 배치 μˆœμ„œλ₯Ό μ‘°μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

4.3. μš”μ†Œμ˜ 높이 균일화

float된 μš”μ†Œλ“€μ€ μ„œλ‘œ λ‹€λ₯Έ 높이λ₯Ό κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” λ ˆμ΄μ•„μ›ƒμ— λΆˆκ·œμΉ™ν•œ 간격이 생길 수 μžˆλŠ” κ°€λŠ₯성을 μ˜λ―Έν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ 경우, 높이λ₯Ό κ· μΌν•˜κ²Œ μ‘°μ •ν•˜μ—¬ μΌκ΄€λœ λ ˆμ΄μ•„μ›ƒμ„ μœ μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

4.4. Clearfix 속성 적용

float된 μš”μ†Œ λ‹€μŒμ— 올 μš”μ†Œμ—λŠ” clear: both; λ˜λŠ” clear: left; λ˜λŠ” clear: right; 속성을 μ‚¬μš©ν•˜μ—¬ float μ†μ„±μ˜ 영ν–₯을 μ œκ±°ν•΄μ•Ό ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 λ‹€μŒ μš”μ†Œκ°€ float된 μš”μ†Œμ˜ 영ν–₯을 받지 μ•Šκ³  μ˜¬λ°”λ₯Έ μœ„μΉ˜μ— 배치될 수 μžˆμŠ΅λ‹ˆλ‹€.

μœ„μ˜ 사항듀을 κ³ λ €ν•˜λ©΄μ„œ float 속성을 μ‚¬μš©ν•˜μ—¬ λ ˆμ΄μ•„μ›ƒμ„ μž‘μ„±ν•˜λ©΄ μ›ν•˜λŠ” λ””μžμΈμ„ 얻을 수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ΅œκ·Όμ—λŠ” float λŒ€μ‹ μ— Flexboxλ‚˜ CSS Grid와 같은 λ ˆμ΄μ•„μ›ƒ κΈ°μˆ μ„ μ‚¬μš©ν•˜λŠ” 것이 ꢌμž₯되고 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ κΈ°μˆ λ“€μ€ float 속성에 λΉ„ν•΄ λ”μš± κ°•λ ₯ν•˜κ³  μœ μ—°ν•˜λ©°, λ ˆμ΄μ•„μ›ƒ μž‘μ„±μ— 더 μ ν•©ν•©λ‹ˆλ‹€.

5. float 속성 μ‚¬μš©λ²• 총정리

float 속성은 μš”μ†Œλ₯Ό μ™Όμͺ½μ΄λ‚˜ 였λ₯Έμͺ½μœΌλ‘œ λ°°μΉ˜ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ©λ‹ˆλ‹€. 이λ₯Ό 톡해 μš”μ†Œκ°€ λ‹€λ₯Έ μš”μ†Œμ™€ ν•¨κ»˜ 흐름을 λ²—μ–΄λ‚˜κ³  μ›ν•˜λŠ” λ ˆμ΄μ•„μ›ƒμ„ 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.

μ•„λž˜λŠ” float 속성을 μ‚¬μš©ν•˜λŠ” 방법을 μš”μ•½ν•œ κ²ƒμž…λ‹ˆλ‹€:

  1. μš”μ†Œμ— float: left; λ˜λŠ” float: right; 속성을 μ μš©ν•©λ‹ˆλ‹€.
  2. float된 μš”μ†ŒλŠ” λ‹€λ₯Έ μš”μ†Œλ“€μ΄ κ·Έ μ£Όμœ„μ— κ°μ‹Έμ§€κ²Œ λ©λ‹ˆλ‹€.
  3. float된 μš”μ†ŒλŠ” 쒌우둜 μ΄λ™ν•˜λ©΄μ„œ λ‹€λ₯Έ μš”μ†Œλ“€κ³Ό κ²ΉμΉ  수 μžˆμŠ΅λ‹ˆλ‹€.
  4. float된 μš”μ†Œ λ‹€μŒμ— 올 μš”μ†Œμ—λŠ” clear: both; λ˜λŠ” clear: left; λ˜λŠ” clear: right; 속성을 μ‚¬μš©ν•˜μ—¬ float μ†μ„±μ˜ 영ν–₯을 μ œκ±°ν•΄μ•Ό ν•©λ‹ˆλ‹€.

float 속성을 μ‚¬μš©ν•˜μ—¬ λ ˆμ΄μ•„μ›ƒμ„ μž‘μ„±ν•  λ•ŒλŠ” λ‹€μŒκ³Ό 같은 고렀사항을 κΈ°μ–΅ν•΄μ•Ό ν•©λ‹ˆλ‹€:

  • λΆ€λͺ¨ μš”μ†Œμ˜ 높이 쑰정을 μœ„ν•΄ overflow: hidden; 속성을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • μš”μ†Œμ˜ 배치 μˆœμ„œκ°€ λ³€κ²½λ˜κΈ° λ•Œλ¬Έμ— 배치 μˆœμ„œλ₯Ό μ‘°μ •ν•΄μ•Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • μš”μ†Œλ“€μ˜ 높이가 κ· μΌν•˜μ§€ μ•Šμ„ 수 μžˆμœΌλ―€λ‘œ, ν•„μš”μ— 따라 높이λ₯Ό μ‘°μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ μ΅œκ·Όμ—λŠ” float 속성 λŒ€μ‹  Flexboxλ‚˜ CSS Grid와 같은 λ ˆμ΄μ•„μ›ƒ κΈ°μˆ μ„ μ‚¬μš©ν•˜λŠ” 것이 ꢌμž₯되고 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ κΈ°μˆ λ“€μ€ float 속성에 λΉ„ν•΄ λ”μš± κ°•λ ₯ν•˜κ³  μœ μ—°ν•˜λ©°, λ ˆμ΄μ•„μ›ƒ μž‘μ„±μ— 더 μ ν•©ν•©λ‹ˆλ‹€. λ”°λΌμ„œ, κ°€λŠ₯ν•˜λ‹€λ©΄ float 속성 λŒ€μ‹ μ— μ΄λŸ¬ν•œ λ ˆμ΄μ•„μ›ƒ κΈ°μˆ μ„ μ‚¬μš©ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

λŒ“κΈ€