๐Ÿ“

10. Float

ย 

1. float ์˜๋ฏธ

float์€ '๋„์šฐ๋‹ค'๋ผ๋Š” ๋œป์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ float ์ •๋ ฌ์€ ๋‹ค์–‘ํ•œ ๊ฐ์ฒด๋ฅผ ๋„์›Œ์„œ ์ •๋ ฌ์„ ํ•˜๋Š” ์†์„ฑ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.
cnfcnf
cnf
ย 

2. ๊ธฐ๋ณธ ๊ฐœ๋…

์›๋ž˜ float ์†์„ฑ์€ ์•„๋ž˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ ๊ทธ๋ฆผ์„ ๋”ฐ๋ผ ํ๋ฅด๋Š” ํ…์ŠคํŠธ ๋ ˆ์ด์•„์›ƒ์„ ์›น์—์„œ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ํƒ„์ƒํ•œ ์†์„ฑ์ž…๋‹ˆ๋‹ค.
notion imagenotion image
<img src="https://t1.daumcdn.net/cfile/tistory/235B2F485958F12129" alt=""> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla, ad, autem quaerat sed impedit cupiditate tenetur recusandae facere, alias ab nihil nisi eligendi eaque ea molestiae dolore accusantium repellat maiores?
img { width:200px; float:left; }
ย 
ํ•˜์ง€๋งŒ ์™ผ์ชฝ ํ˜น์€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ •๋ ฌ์ด ๋˜๋Š” ํŠน์„ฑ ๋•๋ถ„์— ํ˜„์žฌ๋Š” <div>, <p>, <table>๊ณผ ๊ฐ™์€ ๋ธ”๋ก ์†์„ฑ์„ ๊ฐ€์ง„ ๊ฐ์ฒด๋ฅผ ์ •๋ ฌํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. float ์ •๋ ฌ์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ์†์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ขŒ์ธก ์ •๋ ฌ, ์šฐ์ธก ์ •๋ ฌ์ด ์žˆ์œผ๋ฉฐ ์ค‘์•™ ์ •๋ ฌ์€ ์—†์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. margin ์†์„ฑ์„ ์ด์šฉํ•ด์„œ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ขŒ์ธก, ์šฐ์ธก ์ •๋ ฌ์„ ์„ค๋ช…ํ•œ ํ›„์— ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ๋ณด์—ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.
ย 

3. ๋ธ”๋ก ์†์„ฑ ํƒœ๊ทธ vs float ์†์„ฑ ํƒœ๊ทธ

float ์ •๋ ฌ์˜ ์˜ˆ์‹œ๋ฅผ ๋ณด์—ฌ๋“œ๋ฆฌ๊ธฐ ์ด์ „์— ๋ธ”๋ก ์†์„ฑ ํƒœ๊ทธ์˜ ์„ฑ์งˆ๊ณผ float ์†์„ฑ์˜ ์„ฑ์งˆ์— ๋Œ€ํ•ด ์„ค๋ช…๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.
ย 
๋ธ”๋ก ์†์„ฑ ํƒœ๊ทธ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐ€๋กœํญ ์ „์ฒด์˜ ๋„“์ด๋ฅผ ๊ฐ€์ง€๋Š” ์†์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
Web Animation 1๋ถ€ css AnimationWeb Animation 1๋ถ€ css Animation
Web Animation 1๋ถ€ css Animation
ย 
1๋ฒˆ์งธ์— float:left ์†์„ฑ์„ ์ค€ ๊ทธ๋ฆผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
Web Animation 1๋ถ€ css AnimationWeb Animation 1๋ถ€ css Animation
Web Animation 1๋ถ€ css Animation
์œ„ ๊ทธ๋ฆผ๊ณผ ๋‹ค๋ฅธ ์ ์ด ๋ณด์ด์‹ญ๋‹ˆ๊นŒ? float ์†์„ฑ์„ ์ฃผ๋ฉด '1๋ฒˆ์งธ'์— ํ•ด๋‹นํ•˜๋Š” ๊ณต๊ฐ„๋งŒํผ๋งŒ ์ฐจ์ง€ํ•˜๊ณ  ๋‹ค๋ฅธ ์š”์†Œ์— ๋Œ€ํ•ด์„œ ์™ผ์ชฝ์œผ๋กœ ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅธ์ชฝ์— ๋Œ€ํ•ด์„œ๋„ ๋™์ผํ•˜๊ฒŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
ย 

4. float:left, float:right

์ง€๊ธˆ๋ถ€ํ„ฐ๋Š” ์ขŒ์ธก, ์šฐ์ธก ์ •๋ ฌ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ์ขŒ์ธก ์ •๋ ฌ์— ๋Œ€ํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค. ์œ„ ์˜ˆ์ œ์—์„œ๋„ ๋ณด๋‹ค์‹œํ”ผ float:left์˜ ์„ฑ์งˆ์€ ๋ธ”๋ก ๋ฐ•์Šค์— ํ•ด๋‹นํ•˜๋Š” ๋งŒํผ์˜ ๊ณต๊ฐ„๋งŒ ์ฐจ์ง€ํ•˜๊ณ  ๋‚˜๋จธ์ง€ ๋‚ด์šฉ์€ ๋ฐ•์Šค ์˜ค๋ฅธ์ชฝ์— ์œ„์น˜ํ•˜๋ฉฐ ์œ„์—์„œ ์•„๋ž˜์˜ ๋ฐฉํ–ฅ์˜ ํ๋ฆ„์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.
<!doctype html> <html> <head> <style> img{ width:300px; float:left; } </style> </head> <body> <img src="/computer.jpg" alt=""> float:left ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค. </body> </html>
์•„๋ž˜ ์™ผ์ชฝ ํ™”๋ฉด์€ ์ด๋ฏธ์ง€์— float:left ์†์„ฑ, ์˜ค๋ฅธ์ชฝ ํ™”๋ฉด์€ float:right ์†์„ฑ์„ ๋‘” ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.
Web Animation 1๋ถ€ css AnimationWeb Animation 1๋ถ€ css Animation
Web Animation 1๋ถ€ css Animation
ย 

5. float ์†์„ฑ์˜ ๋ฌธ์ œ์ 

๋‹ค์–‘ํ•œ ๊ฐ์ฒด๋ฅผ ๊ฐ„ํŽธํ•˜๊ฒŒ ๋„์›Œ์„œ ์ •๋ ฌํ•˜๋Š” float ์ •๋ ฌ์—๋„ ๋ฌธ์ œ์ ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด๋ฅผ ๊ฐ์‹ธ๋Š” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ž์‹ ์š”์†Œ๋“ค์ด ๋ชจ๋‘ float ์†์„ฑ์„ ๊ฐ€์งˆ ๋•Œ ์ž์‹ ์š”์†Œ๋“ค์˜ ๋†’์ด๋ฅผ ๋ฐ˜์˜ํ•˜์ง€ ๋ชปํ•˜๊ณ  ์ž์‹ ์˜ ๋†’์ด๋งŒํผ๋งŒ ๋ณด์—ฌ์ฃผ๋Š” ๋ฌธ์ œ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์•„๋ž˜ ์ฝ”๋“œ๋Š” float ์†์„ฑ์„ ์„ค์ •ํ•˜์ง€ ์•Š์€ ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค.
<!doctype html> <html> <head> <style> .wrap{ border: 4px solid blue; } .content{ margin: 5px; height: 20px; border: 2px solid green; } </style> </head> <body> <div class="wrap"> <div class="content">๋‚ด์šฉ1</div> <div class="content">๋‚ด์šฉ2</div> </div> </body> </html>
Web Animation 1๋ถ€ css AnimationWeb Animation 1๋ถ€ css Animation
Web Animation 1๋ถ€ css Animation
๋‹ค์Œ์€ float ์†์„ฑ์„ ์„ค์ •ํ•œ ์ฝ”๋“œ์™€ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ์ž์‹ํ•œํ…Œ float ์†์„ฑ์„ ์„ค์ •ํ•˜๋ฉด ์ž์‹ ์š”์†Œ๋“ค์€ ๋ถ• ๋„์›Œ์ง„ ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€๋ชจ ์š”์†Œ๊ฐ€ ์ž์‹ ๋ฐ•์Šค๋“ค์˜ ์กด์žฌ๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.
<!doctype html> <html> <head> <style> .wrap{ border: 4px solid blue; } .content{ float: left; margin: 5px; height: 20px; border: 2px solid green; } </style> </head> <body> <div class="wrap"> <div class="content">๋‚ด์šฉ1</div> <div class="content">๋‚ด์šฉ2</div> </div> </body> </html>
Web Animation 1๋ถ€ css AnimationWeb Animation 1๋ถ€ css Animation
Web Animation 1๋ถ€ css Animation
์œ„ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์–‘ํ•˜๊ฒŒ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
ย 
  1. ๋ถ€๋ชจ ์š”์†Œ์— overflow ์†์„ฑ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
overflow์€ ๋„˜์น˜๋Š” ํ˜„์ƒ์„ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์— ๋„˜์ณํ๋ฅด๋Š” ์ž์‹ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๋„๋ก ๋ถ€๋ชจ ์š”์†Œ์˜ ๋†’์ด๋ฅผ ๋Š˜์—ฌ์ค๋‹ˆ๋‹ค. ์ฆ‰ .wrap ๋ถ€๋ถ„์— overflow:hidden; ํ˜น์€ overflow:scroll; ๋“ฑ์˜ ํ•„์š”ํ•œ overflow ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
.wrap { border: 4px solid blue; overflow: hidden; }
ย 
  1. ๋ถ€๋ชจ ์š”์†Œ์˜ ๋†’์ด ๊ฐ’์„ ์ง์ ‘ ์ง€์ •ํ•ด์ค๋‹ˆ๋‹ค.
๊ฐ•์ œ๋กœ ๋ถ€๋ชจ์— ๋†’์ด๋ฅผ ์ฃผ์–ด ๋Š˜๋ฆฌ๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ์•„๋‹™๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ž์‹ ์š”์†Œ์˜ ๋†’์ด๊ฐ€ ๋ณ€๊ฒฝ ๋˜์—ˆ์„ ๊ฒฝ์šฐ ํ˜น์€ ์ž์‹ ์š”์†Œ๊ฐ€ ์ถ”๊ฐ€๋˜์–ด ๋ถ€๋ชจ ์š”์†Œ์˜ ๋†’์ด ์ˆ˜์ •์ด ๋ถˆ๊ฐ€ํ”ผํ•œ ๊ฒฝ์šฐ๋งˆ๋‹ค ๋ถ€๋ชจ์˜ ๋†’์ด๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋น„ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.
.wrap { border: 4px solid blue; height: 35px; }
์œ„์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ˆ˜์ •ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ํ•ด๊ฒฐ๋œ ๋ชจ์Šต์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Web Animation 1๋ถ€ css AnimationWeb Animation 1๋ถ€ css Animation
Web Animation 1๋ถ€ css Animation
ย 
  1. clear ์†์„ฑ ์‚ฌ์šฉ
float ์ด ์‚ฌ์šฉ๋œ ์š”์†Œ์˜ ๋ฐ”๋กœ ๋‹ค์Œ ํ˜•์ œ ์š”์†Œ์— clear ์†์„ฑ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. clear ์†์„ฑ์€ left, right, both ์„ธ ๊ฐ€์ง€ ๊ฐ’์„ ๊ฐ€์ง€๋ฉฐ float์ด ์‚ฌ์šฉ๋œ ์š”์†Œ๊ฐ€ ์ •๋ ฌ๋œ ๋ฐฉํ–ฅ์— ๋”ฐ๋ผ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•ด ์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
<div class="first"></div> <div class="second"></div>
div{ width:100px; height:100px; background-color:black; } .first{ float:left; } .second{ clear:both; /* both ์†์„ฑ์€ left, right ๋‘˜ ๋‹ค ํด๋ฆฌ์–ด ํ•ฉ๋‹ˆ๋‹ค. */ background-color:pink; }
ย 
  1. clear-fix ๋ฐฉ๋ฒ•
CSS์˜ ::after ๊ฐ€์ƒ์š”์†Œ๋กœ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๋ถ€๋ชจ ์š”์†Œ์— ๊ฐ€์ƒ์œผ๋กœ ๋งˆ์ง€๋ง‰ child ์š”์†Œ๋ฅผ ๋ง๋ถ™์—ฌ์„œ ๋ถ€๋ชจ ์š”์†Œ์ธ wrap์ด ์ž์‹ ์š”์†Œ๋“ค์„ ์•Œ์•„๋ณด๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์„ clear-fix ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ถ€๋ชจ ์š”์†Œ์™€ ์ดํ›„์— float์š”์†Œ๋ฅผ ๋”ฐ๋ผ์˜ค๋Š” ํ˜„์ƒ๊นŒ์ง€ ๋ชจ๋‘ ๋‹ค ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค. display:block;๋Œ€์‹  display:table;์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.
.wrap::after { content:''; display:block; clear:both; }
ย