Front-end/CSS

[CSS3]Float๋ž€? / Layout ์˜ค๋ฅ˜ ์‹œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

์œค๋ฏผ_ 2022. 3. 14. 20:26

๐Ÿค”Float๋ž€ ๋ฌด์—‡์ผ๊นŒ?

float๋Š” ์‚ฌ์ „์  ์˜๋ฏธ๋กœ

(๋ฌผ ์œ„๋‚˜ ๊ณต์ค‘์—์„œ) ๋– ๊ฐ€๋‹ค, (๊ฐ€๋ผ์•‰์ง€ ์•Š๊ณ  ๋ฌผ์—) ๋œจ๋‹ค ๋“ฑ ๋œฌ๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

 

๐ŸคจFloat๋Š” ์™œ ํ•„์š”ํ• ๊นŒ?

์šฐ๋ฆฌ๊ฐ€ Float๋ฅผ ๋ฐฐ์šฐ๋Š” ์ด์œ ๋Š” block์š”์†Œ๋“ค์„ ๊ฐ€๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.

block์€ ์ž๊ธฐ์˜ ์˜์—ญ์„ ์นจ๋ฒ” ๋ฐ›์ง€ ์•Š์€ ๊ธธ๋ง‰์˜ ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ๊ฐ€๋กœ ๋ฐฐ์น˜์— ์–ด๋ ค์›€์ด ์žˆ๋Š”๋ฐ

์ด๋ฅผ float๊ฐ€ ํ•ด๊ฒฐํ•ด์ค€๋‹ค!

 

๐Ÿ“‘Float์‚ฌ์šฉ๋ฒ•๊ณผ ์›๋ฆฌ

float๋Š” ๋ถ€๋ชจํƒœ๊ทธ ์•ˆ์— ์กด์žฌํ•˜๋Š” ์ž์‹ ํƒœ๊ทธ๋“ค์— ์ ์šฉํ•ด ์‚ฌ์šฉ๋œ๋‹ค.

<div class=float>
	<div class="red">Float</div>
	<div class="blue">Float</div>
	<div class="green">Float</div>
</div>

ํ•œ๋ฒˆ ์˜ˆ์‹œ๋กœ ์‚ฌ์šฉ๋ฒ•์„ ๋ฐฐ์›Œ๋ณด์ž. ์šฐ๋ฆฌ๊ฐ€ ์—ฌ๋Ÿฌ ์ž์‹ ์š”์†Œ(red, blue, green)์ค‘

์š”์†Œ red์— float๋ฅผ ๋„ฃ์œผ๋ฉด red๋Š” ๋ถ€๋ชจ ์š”์†Œ(float) ๋กœ๋ถ€ํ„ฐ ๋œจ๊ฒŒ ๋œ๋‹ค.

.red{
	float: left;
}

๊ทธ๋ฆฌ๊ณ  ๋ถ€๋ชจ(float) ์š”์†Œ๋Š” red์š”์†Œ๋ฅผ ์ง‘ ๋‚˜๊ฐ„ ์š”์†Œ(๋นˆ ๊ณต๊ฐ„)๋กœ ์ธ์‹ํ•œ๋‹ค.

โ— ์ด๋•Œ ํŠน์ง•

๊ทธ๋ ‡๊ธฐ์— ๋‹ค์ค‘ ์š”์†Œ(red, blue, green)๊ฐ€ ์กด์žฌํ•  ๋•Œ float๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ํ•ด๋‹น ์š”์†Œ๊ฐ€ ๋œจ๋ฉด์„œ

์ƒ๊ธด ๋นˆ ๊ณต๊ฐ„์„ float๋ฅผ ์‚ฌ์šฉ ์•ˆ ํ•œ ๋‹ค๋ฅธ ์š”์†Œ๊ฐ€ ์ฑ„์šฐ๊ฒŒ ๋œ๋‹ค.

(๊ทธ ์ด์œ ๋Š” float์š”์†Œ๊ฐ€ ๊ณต์ค‘์— ๋œจ๊ฒŒ ๋˜๊ณ  ๋œจ๋ฉด์„œ ์ƒ๊ธด ๋นˆ ๊ณต๊ฐ„์„ ๋‹ค๋ฅธ ์š”์†Œ๋“ค์ด ์ฑ„์šฐ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.)

 

์ด๋•Œ ์š”์†Œ๋“ค์ด ์›€์ง์ด๋ฉฐ ๋ถ€๋ชจ ์š”์†Œ์˜ height ๊ฐ’์— ์˜ํ–ฅ์„ ์ฃผ๊ฒŒ ๋˜์–ด ๊ฐ’์ด ๋ณ€ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

why? ์‰ฌ์šด ์˜ˆ์‹œ๋กœ ํ•œ๋ฒˆ ๋” ์„ค๋ช…ํ•˜์ž๋ฉด 3๊ฐœ์˜ ์š”์†Œ๊ฐ€ ์žˆ์—ˆ๋‹ค๊ณ  ํ•˜์ž.

์ด๋•Œ 1๊ฐœ์˜ ์š”์†Œ์— float๊ฐ’์„ ์ค€๋‹ค๋ฉด ๋‹ค๋ฅธ 2๊ฐœ์˜ ๊ฐ’์ด float๊ฐ’์„ ์ค€ ์š”์†Œ์˜

์˜์—ญ์„ ์ฑ„์šฐ๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€๋ชจ ์š”์†Œ์˜ height๊ฐ’์˜ ๋ณ€๋™์ด ์˜ค๋Š” ๊ฒƒ์ด๋‹ค.

 

โš™Float ์‚ฌ์šฉ ์‹œ dsiplay์˜ ๋ณ€ํ™”

Float๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ inline, inline block, block ์ƒ๊ด€์—†์ด ๋ชจ๋‘ display๋Š” block์œผ๋กœ ๋ณ€ํ•˜๊ฒŒ ๋œ๋‹ค.

์ด๋กœ์จ ๊ธฐ์กด์˜ inline ์š”์†Œ๋“ค์€ width, height, border, padding, margin์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.


โ—Float ํŠน์ง•

display๊ฐ’์ด block์œผ๋กœ ๋ณ€ํ•œ float ์š”์†Œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๋‹ค์ค‘์š”์†Œ(red, blue, green)๊ฐ€ ์žˆ๋‹ค.

width๊ฐ’์ด ๋”ฐ๋กœ ์—†๋˜ ์ „๊ณผ ๋‹ค๋ฅด๊ฒŒ ์ด๋ฒˆ์—” ๋ถ€๋ชจ ์š”์†Œ์— width๊ฐ’์„ ๋„ฃ์–ด์ฃผ๊ฒ ๋‹ค.

.float{
	width:400px
    }
 
 .red{
 	display:block;
 	float:left
	}

์ด๋•Œ Float๊ฐ’์„ ๊ฐ€์ง„ ์š”์†Œ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ถ€๋ชจ์˜ width ์š”์†Œ๋ฅผ 100% ๋”ฐ๋ผ๊ฐ€๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, 

๋ณธ์ธ์ด ๊ฐ€์ง„ content๋งŒํผ ๊ฐ’์ด ๋Š˜์–ด ๋‚˜๋Š” block์œผ๋กœ ๋ณ€ํ•œ๋‹ค.

๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์€ margin์œผ๋กœ ํ• ๋‹น๋œ๋‹ค.


๐Ÿ“ข๋ฌธ์ œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

1.overflow:hidden

.float{
	overflow:hidden;
    }

์‚ฌ์šฉ์€ ๋ถ€๋ชจ tag์— overflow:hidden์„ ์‚ฝ์ž…ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

์œ„์˜ ์†์„ฑ์„ ์ด์šฉํ•˜์—ฌ ๋ถ€๋ชจ ๋ฐ•์Šค ๋ฒ”์œ„ ๋ฐ–์œผ๋กœ ๋„˜์–ด๊ฐ„ float ๋œ ์ž์‹ ์š”์†Œ๋“ค์„ ์•ˆ ๋ณด์ด๊ฒŒ ํ•˜๋„๋ก ํ•œ๋‹ค.

์ด๋Š” ๋‹จ์ˆœํ•˜๊ฒŒ ๋„˜์–ด๊ฐ€๋Š” ์˜์—ญ์„ ๋ณด์ด์ง€ ์•Š๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•จ์ด ์•„๋‹ˆ๋‹ค.

overflow๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ถ€๋ชจ ์š”์†Œ๊ฐ€ ์žƒ์–ด๋ฒ„๋ฆฐ( ๋ถ€๋ชจ ์š”์†Œ์˜ height:auto;์ผ ๊ฒฝ์šฐ) ์ž์‹ ์š”์†Œ์˜

height ๊ฐ’์„ ๋˜์ฐพ์•„ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

2. css ๊ฐ€์ƒ ์„ ํƒ์ž ::after ,::before์ถ”๊ฐ€

css ๊ฐ€์ƒ ์„ ํƒ์ž์ธ ::after๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ css float ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

์•ž์„œ ์†Œ๊ฐœํ•œ 1๋ฒˆ ๋ฐฉ๋ฒ•๋ณด๋‹ค ํ›จ์”ฌ ๋” ํšจ์œจ์ ์ด๊ณ  ๋ณดํŽธ์ ์œผ๋กœ ์“ฐ์ด๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

html๋กœ ๋นˆ ํƒœ๊ทธ๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ณ , css๋กœ ๊ฐ€์ƒ์˜ ๊ณต๊ฐ„์„ ๋งŒ๋“ค์–ด clear ์†์„ฑ์„ ์ ์šฉํ•œ๋‹ค.

float์„ ์ ์šฉํ•œ ํƒœ๊ทธ์˜ ๋ถ€๋ชจ ํƒœ๊ทธ์˜ ๊ฐ€์žฅ ์•„๋žซ๋ถ€๋ถ„์„ ๊ฐ€์ƒ ์„ ํƒ์ž๋กœ ์„ ํƒํ•ด์ฃผ๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— 

‘float ์†์„ฑ๋“ค์„ ๋ฌถ์€ divํƒœ๊ทธ::after‘ ์˜ ํ˜•ํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

(content๋ถ€๋ถ„์€ ๊ฐ€์ƒ์˜ ๊ณต๊ฐ„์— ์ž‘์„ฑํ•  ๋‚ด์šฉ์ด ์—†๋‹ค๋ฉด ๋„์–ด์“ฐ๊ธฐ ์—†์ด ”"๋กœ ๋น„์›Œ๋‘”๋‹ค.)

.clear-fix::after{
    clear:both;
    display:block;
    content: '';
}

 

๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด html์—์„œ float ์†์„ฑ์„ ์ ์šฉํ•œ div์˜ ๋ถ€๋ชจ ํƒœ๊ทธ์˜

์•ˆ์ชฝ ์ตœํ•˜๋‹จ์— ::after๋ผ๋Š” ๊ฐ€์ƒ์˜ ๊ณต๊ฐ„์ด ์ƒ๊ธด ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

(์‚ฌ์šฉ๋ฒ•์€ ๋™์ผํ•˜๋‹ˆ ์ƒํ™ฉ์— ๋งž๊ฒŒ ::after, ::before์„ ์‚ฌ์šฉํ•ด์ฃผ๋ฉด ๋œ๋‹ค.)

'Front-end > CSS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[CSS3]Media Query(๋ฐ˜์‘ํ˜• ์›น)  (0) 2022.03.27
[CSS3]Flexbox  (0) 2022.03.26
[CSS3]Position  (0) 2022.03.20
[CSS3]BOX (Block,Inline,Inline Block)  (0) 2022.03.13
[CSS3] CSS๋ž€?  (0) 2021.11.04