css์์ ๋ง์ด ์ฌ์ฉ๋๊ณ ์ค์ํ์ง๋ง ์ !๋ง! ํท๊ฐ๋ฆฌ๋
๋ ์ด์์(display, float, position, flexbox) ๋ถ๋ถ์ ๋ํด ์ ๋ฆฌ ํด๋ณด๋๋ก ํฉ์๋ค.๐
display : box type์ ๊ฒฐ์ ํ๋ css ์์ฑ
block ๋ฉด(์์ญ) / inline ์ (ํ๋ฆ) ์ผ๋ก ๋ณด๋ฉด ์ดํด๊ฐ ์ฌ์ธ ๊ฒ ๊ฐ๋ค.
์์ฑ๊ฐ | ์๋ฏธ | ์ข ๋ฅ |
---|---|---|
block | - ํ ์ค์ ํ๋์ฉ ์์ ๋ฐฐ์น = ์ธ๋ก๋ก ๋ฐฐ์น - ๊ธฐ๋ณธ width ๊ฐ์ด 100% - width, height๊ฐ์ ๊ฐ์ง ์ ์์ - vertical-align ์ ์ฉ๋์ง ์์ - text-align ์ ์ฉ๋์ง ์์ | div, h1~h6, p, ul, li, dl, table, td, th, figure,hr, figcaption, caption, header, nav, footer, section, article, aside, blockqoute, form, fiedset... |
inline | - ํ ์ค์ ์ฌ๋ฌ๊ฐ ๋ฐฐ์น = ๊ฐ๋ก๋ก ๋์ด๋๋ ์์ผ๋ก ๋ฐฐ์น - ๊ธฐ๋ณธ width ๊ฐ์ ์ปจํ ์ธ ๋๋น ๊ฐ - width, height๊ฐ์ ๊ฐ์ง ์ ์์ - ์์์์๋ก ๋ ๋ค๋ฅธ ์ธ๋ผ์ธ ํ๊ทธ๋ง ๊ฐ๋ฅ(p์ ์ธ) | span, a, em, del, br, q, strong, input textarea, select, img... |
inline-block | - ํ ์ค์ ์ฌ๋ฌ ๊ฐ ๋ฐฐ์น(์ธ๋ผ์ธ) + ๋๋น๋์ด ์ง์ ๊ฐ๋ฅ(๋ธ๋ก) |
- ๊ธธ์ ๋ง๋ ์ฑ์ง์ ๊ฐ์ง๊ณ ์๋ค.
- width๋ฅผ ๋ฐ๋ก ์ ์ธํ์ง ์์ ๊ฒฝ์ฐ, width = ๋ถ๋ชจ์ content-box์ 100%
- width๋ฅผ ๋ฐ๋ก ์ ์ธํ ๊ฒฝ์ฐ, ๋จ์ ๊ณต๊ฐ์ margin์ด ์ฑ์์ง
(์์ญ์ ์นจ๋ฒ ๋นํ์ง ์๊ธฐ ์ํด์)- block์ ๊ฒฝ์ฐ width, height, padding, border, margin์ ๋ชจ๋ ์ฌ์ฉํ ์ ์๋ค.
- block type์ ๊ฐ์ด๋ฐ ์ ๋ ฌํ๋ ๋ฐฉ๋ฒ : margin : 0 auto ๐ margin top๊ณผ bottom์ 0์ ์ฃผ๊ณ right์ left๋ auto (๋จ๋ px๋ฅผ ์๋์ผ๋ก ์ฑ์)๋ฅผ ์ค๋ค๋ ๊ฒ์ด๋ค. ๋ณ๋๋ก margin left : auto;๋ง ์ฃผ๋ฉด block์ ์ค๋ฅธ์ชฝ ์ ๋ ฌ์ด ๋๋ค.
โ๏ธ ์์) ๋ถ๋ชจ์ width๊ฐ 1000px์ด๋ผ๊ณ ๊ฐ์ ํ, ์์ width๋ฅผ 600px๋ก ์ง์ ํ๋ฉด ๋จ์ 400px์ด ์๋์ ์ผ๋ก margin์ผ๋ก ์ฑ์์ง๋ค.
- ์ํ์ผ๋ก ์์ธ๋ค.
- ๊ฐ๋ก, ์ธ๋ก ๊ฐ ๊ฐ์ง์ ์๋ค.
- text ์์ฑ๊ณผ ๋์ผํ ๋งฅ๋ฝ, ์์ผ๋ก ๋ ์ธ ๊ณต๊ฐ์ด ์์ผ๋ฉด ์๋์ ์ผ๋ก ๋ฐ ์ค๋ก ๋ด๋ ค๊ฐ
- margin๊ณผ padding์ top,bottom์ ์ฌ์ฉํ ์ ์๋ค.
- width, height, padding-top, padding-bottom, border-top, border-bottom, margin-top, margin-bottom ์ฌ์ฉ์ด ๋ถ๊ฐํ๋ค.(์ ์๋์ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ๋๊ฒ์ ์๋๋ค ๊ธฐ์กด ์์ญ์ ๋ฎ์ด๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์)
๐ง width๊ฐ ์๋๋ ์ด์ : ์ธ๋ผ์ธ ์์์ width๋ฅผ ๋ถ๋ชจ ์์๊ฐ ๋ค ๋ด์ ์ ์๋ ์ํฉ์ผ ๋ ์ ๋งคํด์ง๊ธฐ ๋๋ฌธ์ width๊ฐ ์๋๋ฐ ์ธ๋ผ์ธ ์์๋ฅผ ๋์ด์ ๋ฐ ์ค์ ๋ด๋ ค ๋์ ์๋, ๋ถ๋ชจ๋ฅผ ์ค๋ฒํด์ ๋๊ฐ ์๋ ์๊ธฐ ๋๋ฌธ์ด๋ค.
- block์ ์ฅ์ ๊ณผ inline์ ์ฅ์ ์ ๊ฐ์ง๊ณ ์๋ค.
- text์ ํนํ๋์ด ์์ง๋ง, ๊ฐ๋ก/์ธ๋ก ๊ฐ์ ๊ฐ์ง ์ ์๋ค.
-margin๊ณผ padding์ top,bottom ๊ฐ๋ ๊ฐ์ง ์ ์๋ค.- inline์ฒ๋ผ ํ๋ฅด์ง๋ง width, padding-top, padding-bottom, border-top, border-bottom, margin-top, margin-bottom์ด ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
flexbox๋ ์์์ ํฌ๊ธฐ๊ฐ ๋ถ๋ถ๋ช ํ ๋์๋ ๋ด๊ฐ ์ํ๋ ํฌ๊ธฐ์ box ์์ items์ ๋ฃ์ด์ ๋์ผํ ๊ฐ๊ฒฉ๊ณผ ์ฌ์ด์ฆ๋ก ๋ฐฐ์ดํ๋ ๊ฒ์ด๋ค.
flexbox๋ฅผ ์ฌ์ฉํ ๋ ์ฃผ์ํด์ผ ํ 4๊ฐ์ง ์์
- ๋ด๊ฐ ์ ๋ ฌ์ ํ๋ ค๊ณ ํ๋ ์์์ ๋ถ๋ชจ์๊ฒ flexbox์ ์ธ์ ํด์ผํ๋ค.
๐ display : flex; (box์ ํ์ ์ด๋ฉฐ ๊ธฐ๋ณธ์ ์ผ๋ก block๊ณผ ๋น์ทํ์ง๋ง block์ ๋ถ๊ฐ๋ฅํ ์์๋ ์์)- ๋ง์ฝ ๋ถ๋ชจ ์์๊ฐ inline ์ด๋ผ๋ฉด display : inline-flex๋ก ์ง์ ํด์ค๋ค.
flex items์ ์ฃผ์ถ(main-axis)๋ฅผ ์ค์ ํด์ค๋ค.
์์ฑ๊ฐ | ์๋ฏธ |
---|---|
row(default) | items๋ฅผ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ(์ํ์ถ)์ผ๋ก ํ์ A,B,C |
row-reverse | items๋ฅผ row ๋ฐ๋์ถ์ผ๋ก ํ์ C,B,A |
column | items๋ฅผ ์์ชฝ์์ ์๋์ชฝ(์์ง์ถ)์ผ๋ก ํ์ A B C |
column-reverse | items๋ฅผ column ๋ฐ๋ ์ถ์ผ๋ก ํ์ C B A |
items์ ์ฌ๋ฌ ์ค ๋ฐ๊ฟ์ ์ค์ ํด์ค๋ค.
์์ฑ๊ฐ | ์๋ฏธ |
---|---|
nowrap(default) | ๋ชจ๋ items์ด ํ ์ค์ ๋ฐฐ์น๊ฐ ๋๋ค. |
wrap | items๋ฅผ ์ฌ๋ฌ ์ค๋ก ๋ฐฐ์นํด ๋์น๋ฉด ์๋๋ก ๋จ์ด์ง๊ฒ ํ๋ค. (width,height ์ง์ ๊ฐ๋ฅ) |
wrap-reverse | items๋ฅผ wrap์ ์ญ ๋ฐฉํฅ์ผ๋ก ์ฌ๋ฌ ์ค๋ก ๋ฐฐ์น. |
flex-wrap : nowrap; (๊ธฐ๋ณธ๊ฐ) ๐ ์ค ๋ฐ๊พธ์ง ์์
๋ถ๋ชจ width๊ฐ 600px์ด๊ณ ์์์ด 300px์ฉ ๊ฐ์ง๊ณ ์๋ค๋ฉด, ๊ธฐ๋ณธ์ ์ผ๋ก 300px+300px๋ก 2๊ฐ๋ง ์ฌ ์ ์์ง๋ง flex-wrap : nowrap;์ ์ฌ์ฉํ๋ฉด ๊ฐ์ธ์ง ์๊ณ ์์์ ์ฌ์ด์ฆ๋ฅผ ์ค์ฌ ํ ์ค๋ก ์ ๋ ฌํ๋ค. (200px์ฉ ํ ์ค๋ก)
flex-wrap : wrap; ๐ ์ค ๋ฐ๊ฟ
๋ถ๋ชจ width๊ฐ 600px์ด๊ณ ์์์ด 300px์ฉ ๊ฐ์ง๊ณ ์๋ค๋ฉด 300px+300px๋ก 2๊ฐ๊ฐ ์ค๊ณ ๋ฐ ์ค์ 300px์ด ๋จ์ด์ง๋ค. ํ ์ค์ ๋ชจ๋ ์ ๋ ฌํ ๋ ๊ณต๊ฐ์ด ๋ถ์กฑํ๋ฉด ์ฌ๋ฌ ์ค์ ๋ง๋ ๋ค.
๐ค ๊ฐ์ ์ง์ ํด์ฃผ์ง ์์ ๊ฒฝ์ฐ ๋ชจ๋ ์์๋ค์ด ํ ์ค์ ์ ๋ ฌ๋๋ ค๊ณ ํ๊ธฐ ๋๋ฌธ์ width ๊ฐ์ ์ฃผ์ด overflow ๋ ์์๋ค์ ๋ฐ์ผ๋ก ๋จ์ด์ง๊ฒ ํ๋ค
๋ด๊ฐ ์ ์ธํ flex-direciton๊ณผ ๊ฐ์ ๋ฐฉํฅ, ์ฆ ์ฃผ์ถ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ ํด์ฃผ๊ณ ์ถ์ ๊ฒฝ์ฐ
์์ฑ๊ฐ | ์๋ฏธ |
---|---|
flex-start(default) | items๋ฅผ ์์์ ์ผ๋ก ์ ๋ ฌ |
flex-end) | items๋ฅผ ๋์ ์ผ๋ก ์ ๋ ฌ |
center | items๋ฅผ ๊ฐ์ด๋ฐ ์ ๋ ฌ |
space-between | ์์ item์ ์์์ ์ ๋ง์ง๋ง item์ ๋์ ์ ์ ๋ ฌ๋๊ณ ๋๋จธ์ง ์ฌ์ด ๊ฐ๊ฒฉ์ด ๊ณ ๋ฅด๊ฒ ์ ๋ ฌ |
space-around | item๋ฅผ ๊ท ๋ฑํ ์ฌ๋ฐฑ์ ํฌํจํ์ฌ ์ ๋ ฌ |
๊ต์์ถ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ ํด์ฃผ๊ณ ์ถ์ ๊ฒฝ์ฐ
๐จ flex-wrap์ ํตํด items๊ฐ 2์ค ์ด์์ด๋ฉฐ ์ฌ๋ฐฑ์ด ์๋ ๊ฒฝ์ฐ๋ง ๊ฐ๋ฅ
์์ฑ๊ฐ | ์๋ฏธ |
---|---|
stretch(default) | Container์ ๊ต์ ์ถ์ ์ฑ์ฐ๊ธฐ ์ํด items๋ฅผ ๋๋ฆฐ๋ค. |
flex-start | items๋ฅผ ์์์ ์ผ๋ก ์ ๋ ฌ |
flex-end | items๋ฅผ ๋์ ์ผ๋ก ์ ๋ ฌ |
center | items๋ฅผ ๊ฐ์ด๋ฐ ์ ๋ ฌ |
space-between | ์์ item์ ์์์ ์ ๋ง์ง๋ง item์ ๋์ ์ ์ ๋ ฌ๋๊ณ ๋๋จธ์ง ์ฌ์ด ๊ฐ๊ฒฉ์ด ๊ณ ๋ฅด๊ฒ ์ ๋ ฌ |
space-around | items๋ฅผ ๊ท ๋ฑํ ์ฌ๋ฐฑ์ ํฌํจํ์ฌ ์ ๋ ฌ |
- align-items : ํ๋์(๊ฐ์์) flex line์ ํ๋ฅด๋ ๊ต์์ถ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ
(flex wrap : nowrap, rap ๋ชจ๋ ์ฌ์ฉ ๊ฐ๋ฅ)
์์ธ์ ์ผ๋ก space-between, space-around๋ space๊ฐ ์์์ ์์์ฌ์ด์ ๊ฐ๊ฒฉ์ ์ฃผ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ ๋ถ๊ฐ- align-content : ๊ฐ์์ ๊ต์์ถ์ ๊ธฐ์ค์ผ๋ก ํ๋ ๊ฒ์ด ์๋ ์ ์ฒด๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ฌ ๊ต์์ถ์ ์ ๋ ฌ ํ ๋ ์ฌ์ฉ(flex wrap : rap ์ผ ๊ฒฝ์ฐ ์ฌ์ฉ)
์ด๋๋ space-between๊ณผ space-around๋ ์ฌ์ฉ ๊ฐ๋ฅ
๐ข TIP ๋จผ์ align-items๋ฅผ ํด๋ณด๊ณ ์๋๋ฉด ๊ทธ ์ดํ์ align-content๋ฅผ ์ฌ์ฉํ๋ฉด ์ข๋ค.
float๋ฅผ ์ฌ์ฉํ๋ ์ด์ : block์์๋ค์ ๊ฐ๋ก๋ฐฐ์น ํ๊ธฐ ์ํด
์์๋ฅผ ์ข์ฐ๋ฐฉํฅ(์ํ์ ๋ ฌ)์ผ๋ก ๋์ธ ์ ์๊ฒ ํ๋ ์ญํ (๋ฉ๋ด ๋๋ ๋ ์ด์์์ ๊ตฌ์ฑํ๋ค.)
์์ฑ๊ฐ | ์๋ฏธ |
---|---|
none | ์์ ๊ฐ ๋์ ์์(default) |
left | ์ผ์ชฝ์ ์์๋ฅผ ๋์ด๋ค (1,2,3,4) |
right | ์ค๋ฅธ์ชฝ์ ์์๋ฅผ ๋์ด๋ค(4,3,2,1) * ์ค๋ฅธ์ชฝ ์ ๋ ฌ๋ฟ๋ง ์๋๋ผ ์ฐ์ธก์์ ์์๊ฐ ์์๋์ด ์์๊ฐ ๋ฐ๋๋ค. |
- ํ ๋ถ๋ชจ์ ์๋ ์์(block)์ float ์ํฌ ๊ฒฝ์ฐ, ๊ทธ ์์์ ์๋ก ๋ถ๋จ๊ฒ ๋๋ฉฐ ๋ถ๋ชจ์๊ฒ ์๋ ์ทจ๊ธ์ ๋ฐ๊ฒ ๋๊ณ ๋๋จธ์ง ์์๋ค์ ๋น ๊ณต๊ฐ์ ์ฑ์ฐ๊ฒ ๋๋ฉฐ,
๋ถ๋ชจ์ height ์ญ์ ๋น ์ง ์์๋งํผ ์ค์ด๋ค๊ฒ ๋๋ค.- left๋ right๋ก ์ง์ ์ display์์ฑ์ ๋ฌด์๋๊ณ block ํ๊ทธ ์ฑ์ง์ ๊ฐ์ง๋ค.(inline,inline block ๋ชจ๋ block์ผ๋ก ๋ณ๊ฒฝ๋์ด์ width์ height ๊ฐ์ ์ค ์ ์๊ฒ๋๋ค.)
- ํ์ง๋ง ๊ธธ์ ๋ง์ง ๋ชปํ๋ block์ด ๋๋ค.
- width ๊ฐ์ ์ฃผ์ง ์์ ์ํ์์ block์ floatํ ๊ฒฝ์ฐ ๊ฐ์ง๊ณ ์๋ content๋งํผ์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.
- float๋ฅผ ์ฌ์ฉํ๋ฉด block ์ฌ์ฉ ์ ์๋์ผ๋ก ๋ค์ด์ค๋ margin๊ฐ๋ ๋ค์ด์ค์ง ์๊ฒ ๋๋ค.- float ๋๋ง ๋ณผ ์ ์๋ค.(block์์ ์๋ content๋ค์ float์ ์ํฅ์ ๋ฐ๊ณ layout์ด ๋ฌด๋์ ธ๋ฒ๋ฆฐ๋ค.)
float ์์ฑ์ด ์ ์ฉ๋ ์์์ ์ฃผ์๋ก ๋ค๋ฅธ ์์๋ค์ด ํ๋ฅด๊ฒ ๋๋๋ฐ ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์์ฑ์ ํด์ ํด์ผํ๋ค.
๐จ float ํด์งํ์ง ์์ ๊ฒฝ์ฐ ์์๊ฐ ๊ฒน์ฒ ๋ค์์ ์ค๋ ๊ฒ์ ๋ค๋ฎ๋ ํ์์ด ๋ฐ์ํ ์ ์๋ค.
์์์ ์ขํ๊ฐ์ ์ฃผ์ด๋ณด๋ค ์์ ๋กญ๊ฒ ๋ฐฐ์น๊ฐ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
๐จ ์ฃผ์ํ ์ 2๊ฐ์ง
1. ๋ด๊ฐ ์ด๋ค ์ข
๋ฅ์ position์ ์ฌ์ฉํ๊ณ ์๋์ง
2. ๋ด๊ฐ ์ฌ์ฉํ๋ ํฌ์ง์
์ ์ด๋ค ๊ธฐ์ค์ผ๋ก ์์๋ฅผ ์์น์ํค๋์ง
์์ฑ๊ฐ | ์๋ฏธ |
---|---|
static | (๊ธฐ๋ณธ๊ฐ) ์์์ ์๋๋ก ํ๋ฆ๋๋ก ์์น ์ํด |
relative | (์๋์ ์์น) ๋ถ๋ชจ์์์ ์ ์ฉ, ๋ณธ๋ ์์นํ๋ ์๋ฆฌ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ขํ๊ฐ ์ค์ ํ์ฌ ์์น์ํด |
absolute | (์ ๋์ ์์น) ์์์์์ ์ ์ฉ, ๋๋ฅผ ํฌํจํ๋ ์์์์๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ฌ ์ขํ๊ฐ ์ค์ ํ์ฌ ์์น์ํด |
fixed | viewport์ ๊ธฐ์ค์ผ๋ก ์ขํ๊ฐ์ ์ค์ ํ์ฌ ์์น์ํด |
sticky | ์คํฌ๋กค์ ์์น์ ๊ฐ์ ์ธ์ํด fixed ์์ฑ์ ์ ์ฉ์ํด (IE์์ ์ง์ํ์ง ์์ ๋ง์ด ์ฌ์ฉ์๋จ) |
position : relative;
top : 20px; ๐ top์ ๊ธฐ์ค์ผ๋ก 20px ๋จ์ด์ง.
right : 200px; ๐ right์ ๊ธฐ์ค์ผ๋ก 200px ๋จ์ด์ง.
float์ ์ ์ฌํ ์
- display๊ฐ block์ผ๋ก ๋ฐ๋๋ค.
- ๊ธธ์ ๋ง์ง ๋ชปํ๋ block(margin์ ์์๊น)
- float ์ฒ๋ผ ๋ถ ๋ฌ๋ค ๊ทธ๋์ ๋ฐ์ด๋ ์์ ์๋ ์์๊ฐ float์ฒ๋ผ ๊ธฐ์ค์ด ๋๋ ์์ ์๋ฆฌ๋ก ์ฌ๋ผ์จ๋ค.
- ์์์ด absolute๋ฅผ ์ฌ์ฉํ๋ ์๊ฐ ๋ถ๋ชจ๋ ์์์ด ์ง ๋๊ฐ๋ค ์๊ฐํ์ฌ height๋ฅผ ์ค์ธ๋ค.
position์ ์ฌ์ฉํด์ ํด๋น ์์๊ฐ ๋ถ๋จ๊ฒ ๋์์ ๊ฒฝ์ฐ, ์๊ธฐ ์์ ์ด z์ถ์ผ๋ก ์ด๋ ์์น์ ์๋์ง๋ฅผ ์ค์ ํ๋ ์์ฑ์ด๋ค. ์ค์ ํ๋ ์ด์ ๋ 2๊ฐ์ ์์๋ฅผ position์ผ๋ก ๋์ด ๊ฒฝ์ฐ ํ ์์๊ฐ ๋ค๋ฅธ ํ ์์์ ์ผ๋ถ๋ถ์ ๋ฎ์ผ๋ ค๊ณ ํ ๋ ์ฌ์ฉํ๋ค.
z-index : 2/ z-index : 1 ์ด ๊ฒฝ์ฐ 2๊ฐ 1๋ณด๋ค ์์ ์์ผ๋ฏ๋ก 2๊ฐ 1์ ๋ฎ์ด๋ฒ๋ฆฐ๋ค.
๋ ์ด์์ ํํธ๋ ํ ๋๋ง๋ค ๋ ์๋กญ๊ฒ ๋๊ปด์ ธ์ ๋ง์น ์ฒ์ ๋ฐฐ์ฐ๋ ๊ฒ ๊ฐ์..
์ดํด๊ฐ ์ด๋์ ๋ ๋์๋ค ์๊ฐํด์ ๋ง์ ์ฝ๋ฉ์ ์ง๋ณด๋ฉด ์ ๋๋ก ์ฌ์ฉํ์ง ๋ชปํ๊ณ ๋ฒ๋ฒ
๊ฑฐ๋ฆฌ๊ธฐ๋ง ํ๋๊น ๋ต๋ตํ๋ค์ ๐ข ๊ทธ๋๋ ํฌ๊ธฐํ์ง๋ง๊ณ ์ดํด๊ฐ ์ ๋๋ก ๋ ๋๊น์ง ๋ฐ๋ณตํด์ ๊ณต๋ถํฉ์๋ค ํ์ดํ
..! ๐โโ๏ธ
wow ์์ ๋ ์ ๋ฆฌ ๋ฌด์จ์ผ์ด์ ธ ๊ฐ๋ ์ฑ ์ฑ๊ณ ์ฑ๊ณ ๐โโ๏ธ