๐ค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 |