๋ฉ์์ด ์ฌ์์ฒ๋ผ๐ฆ ํ๋ก ํธ์๋ ์ค์ฟจ 1๊ธฐ 1์ฃผ์ฐจ(๊ธ) ํ๊ณ - November 5, 2021.
1์ฃผ์ฐจ๊ฐ ๋๋ฌ๋ค. ์ด์ ํ CSS ์บ๋ฆญํฐ ์น ๋์์ธ ๋ํ์์ ์ ๋ง ๊ฐ์ฌํ๊ฒ๋ ์ฅ๋ ค์์ ๋ฐ์๋ค. ์์ฅ๋ ์ฃผ์๊ณ .. ๊ทธ์ ๋ ์ด์ฌํ ํด์ผ๊ฒ ๋จ ์๊ฐ๋ง... ๐
์ค๋์ ํ์ฌํ ๊ฐ์ฌ๋๊ป ์์ ์ ๋ค์๋ค! ์ค๋ช ๋ ์ ๋ง ์ํด์ฃผ์๊ณ ์ด๋ค ์ง๋ฌธ์ ํด๋ ๊ธ์ ์ ์ผ๋ก ์ ๋ฐ์์ฃผ์ จ๋ค ๐ค ๋ ์ด์์ ๊ตฌํ ์ค์ต์ด ๋ง์๋๋ฐ ์๊ฐ๋๋ก ๊ตฌํ์ด ์ ์๋์ด์ ์ ๋จน์์ง๋ง ๋ง์ด ๋ฐฐ์ธ ์ ์์๋ค. ์ญ์ ๋ฐฑ๋ฌธ์ด ๋ถ์ฌ์ผํ๋ค๋ฅ !!!
normal flow์ float
, position
๊ฐ๊ฐ์ ๋ค ๋ค๋ฅธ ์ฐจ์์ด๋ค.
position
(11/4 ๋ณด์ถฉ)static
relative
๋ normal flow๋ฅผ ํด์น์ง ์๋๋ค.top
, right
, bottom
, left
, z-index
๊ฐ๋ง ์
๋ ฅํ๋ฉด ์ํ๋ ์์น์ ํ์ด์ง์ ๋ ์ด์์์ ๊ฒฐ์ ํ ์ ์๋ค.absolute
๋ normal flow๋ฅผ ๋ฒ์ด๋๋ค. ์ขํ๋ฅผ ์ง์ ํด์ฃผ๊ธฐ ์ ๊น์ง๋ ๋ณธ๋ ์์น์ ์๋ค.fixed
๋ ์ฌ์ฉ์ ํธ์์ฑ์ ๊ทน๋ํ ํ๋ ํต๋ฉ๋ด(๋งจ ์๋ก ๊ฐ๊ธฐ, ๋คํฌ๋ชจ๋) ๋ฑ์ ์ฐ์ธ๋ค. ์ฐ์ตsticky
๋ ์คํฌ๋กค์ ๋ด๋ ค๋ fixed
์ฒ๋ผ ๊ณ ์ ๋์ด ์๋ค๊ฐ ์๊ณ์ ์ ๋๋ฌํ์ ๋(์ปจํ
์ด๋๊ฐ ํ๋ฉด์์ ์ฌ๋ผ์ง ๋) ๊ฐ์ด ์ฌ๋ผ์ง๋ค.sticky
๋ ๋์จ์ง ์ผ๋ง ์๋ ์์ฑ์ด๋ผ '๋ฒค๋ ํ๋ฆฌํฝ์ค'๊ฐ ํ์ํ๋ค!position: -webkit-sticky;
news.naver.com์์ ์ฐ์ธก ๋๋ณด๊ธฐ ๋ฒํผ์ ๊ตณ์ด position: absolute;
๋ก ํ ์ด์ ๋ ๋
ผ๋ฆฌ์ ๋งํฌ์
์์ ๋๋ฌธ์ด๋ค. ๋๋ณด๊ธฐ ์์์ ์์๋ฅผ ๋งจ ๋ฐ์ ๋ฐฐ์นํด์ ์คํฌ๋ฆฐ ๋ฆฌ๋๊ธฐ๊ฐ ๋์ค์ ์ฝ๊ฒ ํ๋ค.
๐ถ
flex
์grid
๋ฅผ ์ฌ์ฉํ์ง ์๊ณinline-block
์ผ๋ก ์ํ ์ ๋ ฌ ํ๋ ๋ฒ (์ ์ฐ์ด์ง ์์!)
inline-block
์ด ๋ธ๋ก ์์์ ๋ค๋ฅธ ์ ์ width ๊ฐ๊ณผ, margin-top/bottom์ ์ค ์ ์๋ค๋ ๊ฒ์ด๋ค.- ๋ณดํต ์์์ ์์ ์ฌ์ด ๊ณต๋ฐฑ์ margin์ผ๋ก ์ฒ๋ฆฌํ๋,
inline-block
์์๋ ์ฝ๋ ์ค๋ฐ๊ฟ์ ๋์ด์ฐ๊ธฐ ํ ์นธ์ผ๋ก ์ธ์ํ๊ณ ์์ฒด์ ์ผ๋ก ๊ณต๋ฐฑ์ด ์๊ฒจ๋ฒ๋ฆฐ๋ค. (ํ ์นธ ๋์ด์ฐ๊ธฐ๋ ๋ฐ์์ด ๋๋๊น!)body {font-size: 0;}
์ ์ธ์ ํด๋๋ฉด ๋์ด์ฐ๊ธฐ๋ฅผ ํ๋๋ผ๋ ๊ณต๋ฐฑ์ด ์๊ธฐ์ง ์๊ณ , ์ํ๋ ์์์font-size
๋ฅผ ์ ํด์ฃผ๋ฉด ํด๊ฒฐ์ด ๋๋ค.- ํ์ง๋ง ๊ท์ฐฎ๋ค ๐ฃ
float
(11/4 ๋ณด์ถฉ)4์ผ์
float
๋ ๊ฐ์ฒด๋ฅผ ๊ฐํธํ๊ฒ ๋์์ ์ ๋ ฌํ ์ ์์ง๋ง, ์์ ์์์ float ์์ฑ์ ์ฃผ๊ฒ ๋๋ฉด ๊ทธ ๋์์ง ์ํ๋ฅผ ๋ถ๋ชจ๋ ์บ์นํ์ง ๋ชปํ๋ค. ๋ถ๋ชจ wrap ๋ฐ์ค์ overflow: hidden;
์ ์ธ์ ์ฃผ์์ด๋ ๊ฒ ์ ๋ฆฌ๋ฅผ ํ๋๋ฐ ์์ ์๊ฐ์ float ํด์ ์ ๋ํ ์ค๋ช ์ ๋ค์ด์ ๋ด์ฉ์ ์ถ๊ฐํ๋ ค๊ณ ํ๋ค.
๐ถ
float
ํด์ ๊ธฐ๋ฒ
float
๋ ์์์ ๋ถ๋ชจ ์์๊ฐ ์๊ฒํ๋ ๋ฒ
1)overflow: hidden;
2)display: inline-block;
3) ๋ถ๋ชจ ์์์ ๊ฐ์ ์์ ์ฃผ๊ธฐ - ํด๋ฆฌ์ดํฝ์ค.clear-fix::after { display: block; content: ''; clear: both; }
::after
๊ฐ์ ๊ฐ์ ์์๋ฅผ ํ์ฉํ ๋๋ ๋ด์ฉ์ด ์๋๋ผ๋content
๋ฅผ ๊ผญ ๋ฃ์ด์ค์ผ ํ๋ค!- ๊ฐ์ ์์๋ ๋งํฌ์ ์์ ๋ถํ์ํ ์์๋ผ์ CSS์์ ๋ค๋ฃฌ๋ค.
์์ ๋ฐฉ๋ฒ์ผ๋ก float ํด์ ๋ฅผ ์จ์ ๋ถ๋ชจ ์์๊ฐ ์๊ฒ ํด์ผ ํ๋ค. ๋์ผ๋ก ๋ณด์ด๊ธฐ์ float์ด ๋ฌธ์ ๊ฐ ์์ด๋ณด์ฌ๋ ๋ฌธ์ ๊ฐ ์๊ธธ ๊ฒฝ์ฐ๋ฅผ ๋ฏธ์ฐ์ ๋ฐฉ์งํ๋ ๊ฒ์ด ์ข๋ค. (๋ฐฉํ ์น)
์์ ์์๊ฐ ๋ณ๋๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋ถ๋ชจ ์์์ ๋์ด ๊ฐ์ ์ง์ ํ์ง ์๋ ๊ฒ์ด ์ข๋ค.
float
์ ํด๋ฆฌ์ดํฝ์ค ๊ธฐ๋ฒ์ ์ฌ์ฉํด ๋ก๊ทธ์ธ ํ๋ฉด ์ฐ์ต์ ํด๋ณด์๋ค.
alt
์์ฑ์ด ์กด์ฌ๋ ํ๋ ๊ฐ์ด ์์ด์ผ ํ๋ค. ์คํฌ๋ฆฐ ๋ฆฌ๋๊ธฐ๊ฐ <img>
์์ alt
์์ฑ ์์ฒด๊ฐ ์์ผ๋ฉด src
์ฃผ์๋ฅผ ์ฝ์ด๋ฒ๋ฆฐ๋ค.background
๋ฅผ ์ฃผ๊ณ padding-left
๊ฐ์ ์ค ์ ์๋ค.background-image: url('img/lock.png');
background-size: contain;
background-repeat: no-repeat;
.parent {
height: 400px;
background: #000;
}
.child {
position: absolute;
top: 50%;
transform: translateY(-50%);
height: 100px;
width: 50px;
background: pink;
<div class="parent">
<div class="child"></div>
</div>
top
์ผ๋ก ๋ถ๋ชจ์ 50%๋งํผ ๋ด๋ ค์จ ๋ค์ transform
์ผ๋ก ์์์ 50%๋งํผ ์ฌ๋ผ๊ฐ๋ค.
inline-block
์ผ ๋๋ vertical-align
์ฌ์ฉ๋ ๊ฐ๋ฅํ๋ค.
์ํ ์ค์ ์ ๋ ฌ์ margin: 0 auto;
๋ก ๊ฐ๋จํ๊ฒ ํด๊ฒฐํ ์ ์๋ค.
auto
๊ฐ ์์ผ๋ฉด ๋จ์์๋ ๋ง์ง์ ๋ฐ์ผ๋ก ์ชผ๊ฐ์ ์๋์ผ๋ก ์ ์์ ๋ถ์ฌ์ค๋ค.
์ด๊ฒ ๊ฐ๋ ์ ๋จนํ๋ ๊ฒฝ์ฐ๋ width ๊ฐ์ด ์์ ๋ !
display: flex;
flex ์ปจํ ์ด๋ ์์ flex ์์ดํ
<div class="container">
<div class="box">box1</div>
<div class="box">box2</div>
<div class="box">box3</div>
</div>
display: flex;
๋ฅผ ์ ์ฉํ๋๊ฒ ์์์ด๋ค.flex-direction
๊ณผ justify-content
์์ฑ์ ๋ฐฐ์ฐ๊ณ ์ค์ตํ๋ค.space-around
๋ ๊ฐ๊ฐ์ ์์ดํ
์ข์ฐ์ ๊ฐ์ ๋์ด์ ์ฌ๋ฐฑ์ด ๊ฐ์ธ๋ ํํ๋ผ๊ณ ์๊ฐํ๊ธฐ! space-evenly
๋ ์์ดํ
๋ค ์ฌ์ด์ ์ ๋์ ๊ท ์ผํ ๊ฐ๊ฒฉ์ ๋ง๋ค์ด ์ค๋ค. ์ฐจ์ด๊ฐ ์ด์ ์ดํด๋๋ค.๋ฆฌ๋์ญ ๋์น๋ ๋ถ์ด ์คํฐ๋ ๋ชจ์ง์ ํ๊ณ ๊ณ์ ์ ๋ฅ์ ์ฐธ์ฌํ๋ค๊ณ ํ๋ค. ์ฃผ์ ๋ HTML/CSS๋ก ์นด์นด์ค ํ์ฌ ์ฒซ ํ์ด์ง ํด๋ก ์ด์๋ค. ์์ ์๋๊ฐ ๋๋ฌด ๋๋ ค์ ์๋ฒฝ๊น์ง ๋ฑ ์ฒซ ๋ ๊ณผ์ ๋ถ๋๋ง ๋ง๋ค๊ณ ๋ฐ๋ก ์ค๋ค ๐ 6์ผ ์คํ 10์์ ๋ชจ์ด๊ธฐ๋ก ํ๋๋ฐ ์คํฐ๋๋ ์ฒ์, ์ฝ๋ ๋ฆฌ๋ทฐ๋ ์ฒ์์ด๋ผ ๋จ๋ฆฐ๋ค. ๊ทธ๋๋ ๋ง์ด ๋ฐฐ์ธ ์ ์์ ๊ฒ ๊ฐ์์ ๊ธฐ๋๋๋ค !
1) https://selosele.github.io/2020/07/21/clearfix/ float ํด์
2) https://developer.mozilla.org/ko/docs/Web/CSS/clear
3) https://studiomeal.com/archives/197 flex ์ดํดํ๊ธฐ