CSS - ์คํ์ผ์ ์ง์ ํ๊ธฐ ์ํ ์ธ์ด cascading style sheets
- CSS ๊ตฌ๋ฌธ์ ์ ํ์๋ฅผ ํตํด ์คํ์ผ์ ์ง์ ํ HTML์์๋ฅผ ์ ํ
- ์ค๊ดํธ ์์์๋ ์์ฑ๊ณผ ๊ฐ, ํ๋์ ์์ผ๋ก ์ด๋ฃจ์ด์ง ์ ์ธ์ ์งํ
- ๊ฐ ์์ ์ ํํ ์์์ ์์ฑ, ์์ฑ์ ๋ถ์ฌํ ๊ฐ์ ์๋ฏธ
- ์์ฑ(property) : ์ด๋ค ์คํ์ผ ๊ธฐ๋ฅ์ ๋ณ๊ฒฝํ ์ง ๊ฒฐ์
- ๊ฐ(value) : ์ด๋ป๊ฒ ์คํ์ผ ๊ธฐ๋ฅ์ ๋ณ๊ฒฝํ ์ง ๊ฒฐ์
CSS ์ ์ ๋ฐฉ๋ฒ
- ์ธ๋ผ์ธ : ํด๋น ํ๊ทธ์ ์ง์ style์์ฑ์ ํ์ฉ
- ๋ด๋ถ ์ฐธ์กฐ(embedding)-<style> : headํ๊ทธ ์์ ์ง์
- ์ธ๋ถ ์ฐธ์กฐ(link file) - ๋ถ๋ฆฌ๋ CSS ํ์ผ - head link๋ฅผ ํตํด ๋ถ๋ฌ์ค๊ธฐ
์ ํ์(selector)
์ ํ์(Selector) ์ ํ
- ๊ธฐ๋ณธ ์ ํ์
- ์ ์ฒด ์ ํ์, ์์ ์ ํ์
- ํด๋์ค ์ ํ์, ์์ด๋ ์ ํ์, ์์ฑ ์ ํ์
- ๊ฒฐํฉ์(Combinators)
- ์์ ๊ฒฐํฉ์, ์์ ๊ฒฐํฉ์
- ์ผ๋ฐ ํ์ ๊ฒฐํฉ์, ์ธ์ ํ์ ๊ฒฐํฉ์
- ์์ฌ ํด๋์ค/์์(Pseudo Class)
- ๋งํฌ, ๋์ ์์ฌ ํด๋์ค
- ๊ตฌ์กฐ์ ์์ฌ ํด๋์ค, ๊ธฐํ ์์ฌ ํด๋์ค, ์์ฌ ์๋ฆฌ๋จผํธ, ์์ฑ ์ ํ์
CSS์ ํ์ ์ ๋ฆฌ
- ์์ ์ ํ์
- HTML ํ๊ทธ๋ฅผ ์ง์ ์ ํ
- ํด๋์ค(class) ์ ํ์
- ๋ง์นจํ(.)๋ฌธ์๋ก ์์ํ๋ฉฐ, ํด๋น ํด๋์ค๊ฐ ์ ์ฉ๋ ํญ๋ชฉ์ ์ ํ
- ์์ด๋(id) ์ ํ์
- #๋ฌธ์๋ก ์์ํ๋ฉฐ, ํด๋น ์์ด๋๊ฐ ์ ์ฉ๋ ํญ๋ชฉ์ ์ ํ
- ์ผ๋ฐ์ ์ผ๋ก ํ๋์ ๋ฌธ์์ 1๋ฒ๋ง ์ฌ์ฉ. ์ฌ๋ฌ๋ฒ ์ฌ์ฉํด๋ ๋์ง๋ง, ๋จ์ผid ์ฌ์ฉ ๊ถ์ฅ
๊ฒฐํฉ์(Combinators)
- ์์ ๊ฒฐํฉ์ - ๋ชจ๋ ๊ฒ
- selectorA ํ์์ ๋ชจ๋ selectorB์์
- ์์ ๊ฒฐํฉ์ - ๋ฐ๋ก ์๋ ๊ฒ๋ง, >๋ก ์ฐ์ด์ ์์
- selectorA ๋ฐ๋ก ์๋์ selectorB์์
- ์ผ๋ฐ ํ์ ๊ฒฐํฉ์ ~
- selectorA์ ํ์ ์์ ์ค ๋ค์ ์์นํ๋ selectorB ์์ ๋ชจ๋ ์ ํ
- ์ธ์ ํ์ ๊ฒฐํฉ์ +
- selectorA์ ํ์ ์์ ์ค ๋ฐ๋ก ๋ค์ ์์นํ๋ selecotrB์์ ์ ํ
CSS ์ ์ฉ ์ฐ์ ์์(cascading order)
- CSS์ฐ์ ์์
- ์ค์๋(importance) - ์ฌ์ฉ์ ์ฃผ์
- !.important
- ์ฐ์ ์์
- ์ธ๋ผ์ธ>id>class,์์ฑ,pseudo-class>์์,pseudo-element
- css ํ์ผ ๋ก๋ฉ ์์
์ ํ์ ์ฐ์ ์์
๋ฒ์๊ฐ ํฐ๊ฑฐ < ์์๊ฑฐ
CSS ์ฝ๋ ์์ฑ ์์๊ฐ ์ < ์๋
CSS ์์
- CSS์์์ ํตํด ๋ถ๋ชจ ์์์ ์์ฑ์ ์์์๊ฒ ์์
- ์์ฑ(property) ์ค์๋ ์์์ด ๋๋ ๊ฒ๊ณผ ๋์ง ์๋ ๊ฒ๋ค์ด ์๋ค.
- ์์ ๋๋ ๊ฒ ์์
- text ๊ด๋ จ ์์ (font, color, text-align),opacity, visibility ๋ฑ
- ์์ ๋์ง ์๋ ๊ฒ ์์
- Box model ๊ด๋ จ ์์
- width, height, margin, padding, border, box-sizing, display
- position ๊ด๋ จ ์์
- position, top/right/bottom/left, z-index๋ฑ
- Box model ๊ด๋ จ ์์
CSS ํฌ๊ธฐ ๋จ์
- px(ํฝ์
)
- ๋ชจ๋ํฐ ํด์๋์ ํ ํ์์ธ ‘ํฝ์ ’๊ธฐ์ค
- ํฝ์ ์ ํฌ๊ธฐ๋ ๋ณํ์ง ์์, ๊ณ ์ ์ ์ธ ๋จ์
- %
- ๋ฐฑ๋ถ์จ ๋จ์
- ๊ฐ๋ณ์ ์ธ ๋ ์ด์์์ ์์ฃผ ์ฌ์ฉ
- em
- (๋ฐ๋ก ์, ๋ถ๋ชจ ์์์ ๋ํ) ์์์ ์ํฅ์ ๋ฐ์
- ๋ฐฐ์ ๋จ์, ์์์ ์ง์ ๋ ์ฌ์ด์ฆ์ ์๋์ ์ธ ์ฌ์ด์ฆ๋ฅผ ๊ฐ์ง
- rem
- (๋ฐ๋ก ์, ๋ถ๋ชจ ์์์ ๋ํ) ์์์ ์ํฅ ๋ฐ์ง X
- ์ต์์ ์์(html)์ ์ฌ์ด์ฆ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐฐ์ ๋จ์๋ฅผ ๊ฐ์ง
rem ⇒๋ฃจํธ, 16px
- 16px X 1.5 = 24px
em์ ๋ถ๋ชจ์์ ์ํฅ ๋ฐ์
- ๋ถ๋ชจ : 16px X 1.5 = 24px
- em : 24 x 1.5 = 36px
- viewport
- ์น ํ์ด์ง๋ฅผ ๋ฐฉ๋ฌธํ ์ ์ ์๊ฒ ๋ฐ๋ก ๋ณด์ด๊ฒ ๋๋ ์น ์ปจํ ์ธ ์ ์์ญ(๋๋ฐ์ด์ค ํ๋ฉด)
- ๋๋ฐ์ด์ค viewport๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋์ ์ธ ์ฌ์ด์ฆ๊ฐ ๊ฒฐ์ ๋จ
- vw, vh, vmin,vmax
์์
- ์์ํค์๋ - ๋์๋ฌธ์ ๊ตฌ๋ถx
- RGB ์์- 16์ง์ ํ๊ธฐ๋ฒ or ํจ์ํ ํ๊ธฐ๋ฒ ๋ฑ ์ฌ์ฉํด ํน์ ์ ํํ
- HSL์์ - ์์, ์ฑ๋, ๋ช ๋๋ฅผ ํตํด ํน์ ์ ํํ
- rgba, hsla ์ด๋ a๋ alpha(ํฌ๋ช ๋๋ฅผ ๋งํจ)
- ์์ฒด : font-family
- ์์ฒด ์คํ์ผ : font-style
- ์๊ฐ(๊ธ์ ๊ฐ๊ฒฉ): letter-spacing
- ๋จ์ด ๊ฐ๊ฒฉ : word-spacing
- ํ๊ฐ(์ค๊ณผ ์ค ์ฌ์ด): line-height
- ๋ค์ฌ์ฐ๊ธฐ: text-indent
CSS ์์น1
- ๋ชจ๋ ์์๋ ๋ค๋ชจ(๋ฐ์ค๋ชจ๋ธ)์ด๊ณ ,
- ๊ธ์๋ inline, ๋ฐ์ค๋ block
- ์์์๋ถํฐ ์๋๋ก, ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์์. (์ข์ธก ์๋จ์ ๋ฐฐ์น)
Box Model
- ๋ชจ๋ HTML ์์๋ boxํํ๋ก ๋จ
- ํ๋์ ๋ฐ์ค = 4 ์์ญ
- Margin : ํ ๋๋ฆฌ ๋ฐ๊นฅ์ ์ธ๋ถ ์ฌ๋ฐฑ
- Border : ํ ๋๋ฆฌ ์์ญ
- Padding : ํ ๋๋ฆฌ ์์ชฝ์ ๋ด๋ถ ์ฌ๋ฐฑ. ์์์ ์ ์ฉ๋ ๋ฐฐ๊ฒฝ์, ์ด๋ฏธ์ง๋ padding๊น์ง ์ ์ฉ
- Content : ๊ธ์ด๋ ์ด๋ฏธ์ง ๋ฑ ์์์ ์ค์ ๋ด์ฉ
- ๋ด๋ถ ๊ณต๊ฐ์ ๋๋ฆฌ๊ณ ์ถ์ ๋ : padding ์ด์ฉ
- ๋ค๋ฅธ ๊ฒ๊ณผ์ ๊ณต๊ฐ์ ๋๋ฆฌ๊ณ ์ถ์ ๋ : margin ์ด์ฉ
- ์๊ณ ๋ฐฉํฅ์ผ๋ก margin๊ณผ padding์ ์ ์ฉ ์ํฌ ์ ์์!
box-sizing
- ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ์์์ box-sizing์ content-box
- padding์ ์ ์ธํ ์์ contents ์์ญ๋ง์ box๋ก ์ง์
- ๋ค๋ง, ์ฐ๋ฆฌ๊ฐ ์ผ๋ฐ์ ์ผ๋ก ์์ญ์ ๋ณผ ๋๋ border๊น์ง์ ๋๋น๋ฅผ 100px ๋ณด๋ ๊ฒ์ ์ํจ
- ๊ทธ ๊ฒฝ์ฐ box-sizing์ border-box๋ก ์ค์
CSS์์น2
- ๋ชจ๋ ์์๋ ๋ค๋ชจ(๋ฐ์ค๋ชจ๋ธ)์ด๊ณ , ์ข์ธก ์๋จ์ ๋ฐฐ์น
- display์ ๋ฐ๋ผ ํฌ๊ธฐ์ ๋ฐฐ์น๊ฐ ๋ฌ๋ผ์ง๋ค
์ธ๋ผ์ธ, ๋ธ๋ก์์
- dispaly : block
- ์ค ๋ฐ๊ฟ์ด ์ผ์ด๋๋ ์์
- ํ๋ฉด ํฌ๊ธฐ ์ ์ฒด์ ๊ฐ๋ก ํญ์ ์ฐจ์ง
- ๋ธ๋ก ๋ ๋ฒจ ์์ ์์ ์ธ๋ผ์ธ ๋ ๋ฒจ ์์๊ฐ ๋ค์ด๊ฐ ์ ์์.
- display : inline
- ์ค ๋ฐ๊ฟ์ด ์ผ์ด๋์ง ์๋ ํ์ ์ผ๋ถ ์์
- content ๋๋น๋งํผ ๊ฐ๋ก ํญ์ ์ฐจ์ง
- width, height, margin-top,margin-bottom์ ์ง์ ํ ์ ์์.
- ์ํ ์ฌ๋ฐฑ์ line-height๋ก ์ง์
- display : inline-block
- block๊ณผ inline๋ ๋ฒจ ์์์ ํน์ง ๋ชจ๋ ๊ฐ์ง
- inline์ฒ๋ผ ํ ์ค์ ํ์ ๊ฐ๋ฅ, block์ฒ๋ผ width,height,margin์์ฑ ๋ชจ๋ ์ง์ ๊ฐ๋ฅ
- display : none
- ํด๋น ์์๋ฅผ ํ๋ฉด์ ํ์ํ์ง ์๊ณ , ๊ณต๊ฐ์กฐ์ฐจ ๋ถ์ฌ๋์ง ์์
- ์ด์ ๋น์ทํ visibility : hidden์ ํด๋น ์์๊ฐ ๊ณต๊ฐ์ ์ฐจ์งํ๋ ํ๋ฉด์ ํ์๋ง ํ์ง ์๋๋ค.
๋ธ๋ก ๋ ๋ฒจ ์์์ ์ธ๋ผ์ธ ๋ ๋ฒจ ์์
- html 4.1๊น์ง ๋ธ๋ก ๋ ๋ฒจ ์์์ ์ธ๋ผ์ธ ๋ ๋ฒจ ์์ ๊ตฌ๋ถ
- ๋ํ์ ์ธ ๋ธ๋ก ๋ ๋ฒจ ์์
- div/ ul,ol,li/p/hr/form ๋ฑ
- ๋ํ์ ์ธ ์ธ๋ผ์ธ ๋ ๋ฒจ ์์
- span/a/img/input,label/b,em,i,strong๋ฑ
block
- block์ ๊ธฐ๋ณธ ๋๋น๋ ๊ฐ์ง ์ ์๋ ๋๋น์ 100%
- ๋๋น๋ฅผ ๊ฐ์ง ์ ์๋ค๋ฉด ์๋์ผ๋ก margin์ด ๋ถ์ฌ
inline
- ์ปจํ ์ธ ์์ญ๋งํผ์ด ๊ธฐ๋ณธ ๋๋น
CSS position
- ๋ฌธ์ ์์์ ์์ ์์น๋ฅผ ์ง์
- static : ๋ชจ๋ ํ๊ทธ์ ๊ธฐ๋ณธ ๊ฐ(๊ธฐ์ค ์์น)
- ์ผ๋ฐ์ ์ธ ์์์ ๋ฐฐ์น ์์์ ๋ฐ๋ฆ(์ข์ธก ์๋จ)
- ๋ถ๋ชจ ์์ ๋ด์์ ๋ฐฐ์น๋ ๋๋ ๋ถ๋ชจ ์์์ ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐฐ์น๋จ
- ์๋๋ ์ขํ ํ๋กํผํฐ(top, bottom, left, right)๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ ๊ฐ๋ฅ
- relative : ์๋ ์์น
- ์๊ธฐ ์์ ์ static ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ์ด๋ (normal flow)
- ๊ธฐ๋ณธ ์์น(normal position)๋๋น offset
- ๋ ์ด์์์์ ์์๊ฐ ์ฐจ์งํ๋ ๊ณต๊ฐ์ static๊ณผ ๊ฐ์ (normal position ๋๋น offset)
- relative๋ ์๋ณธ์ ๊ทธ๋๋ก ์์ง๋ง ๋ถ์ ๋ง ์์ง์ด๋ ๊ฒ!
- absolute : ์ ๋ ์์น
- ์์๋ฅผ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ํ๋ฆ์์ ์ ๊ฑฐ ํ ๋ ์ด์์์ ๊ณต๊ฐ์ ์ฐจ์ง ํ์ง ์์ (out-of-flow)
- normal flow์์ ๋ฒ์ด๋ ๋ถ๋ชจ/์กฐ์ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ์์น
- static์ด ์๋ ๊ฐ์ฅ ๊ฐ๊น์ด ์๋ ๋ถ๋ชจ/์กฐ์ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ด๋(์๋ ๊ฒฝ์ฐ body)
- fixed : ๊ณ ์ ์์น
- ์์๋ฅผ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ํ๋ฆ์์ ์ ๊ฑฐ ํ ๋ ์ด์์์ ๊ณต๊ฐ์ ์ฐจ์งํ์ง ์์ (out-of-flow)
- normal flow์์ ๋ฒ์ด๋ viewport๊ธฐ์ค์ผ๋ก ์์น
- ๋ถ๋ชจ ์์์ ๊ด๊ณ์์ด viewport๋ฅผ ๊ธฐ์ค์ผ๋ก ์ด๋
- ์คํฌ๋กค ์์๋ ํญ์ ๊ฐ์ ๊ณณ์ ์์น
- sticky์ ๋น์ทํ๋ฐ ํน์ ์์น์ ์์ ๊ณ ์ ๋์ด์๋ ๊ฒ
- sticky
- ๋ณธ์ฒด๋ ๊ทธ๋๋ก์ธ๋ฐ ๋ถ์ ๋ง ์์ง์ด๋๊ฒ!
- ์๋จ ๋ฉ๋ด์ ์ ์ฉํ ์ ์์
- relative : ์๋ ์์น
- position
- ๋ธ๋ผ์ฐ์ ๊ธฐ์ค : sticky, fixed
- ๋ค๋ชจ ์ ๋ค๋ชจ : absolute
๐ก CSS์์น 1,2 : Normal flow
๋ชจ๋ ์์๋ ๋ค๋ชจ(๋ฐ์ค๋ชจ๋ธ), ์ข์ธก ์๋จ์ ๋ฐฐ์น
display์ ๋ฐ๋ผ ํฌ๊ธฐ์ ๋ฐฐ์น๊ฐ ๋ฌ๋ผ์ง
CSS์์น 3
position์ผ๋ก ์์น์ ๊ธฐ์ค์ ๋ณ๊ฒฝ
relative : ๋ณธ์ธ์ ์๋ ์์น
absolute : ํน์ ๋ถ๋ชจ์ ์์น
fixed : ํ๋ฉด์ ์์น
Flex Box
๐ก ์ฌ์ฉํ๋ ์ด์ ๋?
์ด์ ๊น์ง normal flow๋ฅผ ๋ฒ์ด๋๋ ์๋จ์ float ๋ position
๊ทธ๋ ์ง๋ง (์๋ ๊ฐ ๋ถ์ฌ์์ด) ์์ง์ ๋ ฌ, ์์ดํ
์ ๋๋น์ ๋์ด ํน์ ๊ฐ๊ฒฉ์ ๋์ผํ๊ฒ ๋ฐฐ์น๊ฐ ์ด๋ ค์ ์.
ํ๊ณผ ์ด ํํ๋ก ์์ดํ ๋ค์ ๋ฐฐ์นํ๋ 1์ฐจ์ ๋ ์ด์์ ๋ชจ๋ธ
- ์ถ
- main axis(๋ฉ์ธ ์ถ)
- cross axis(๊ต์ฐจ ์ถ)
- ๊ตฌ์ฑ ์์
- Flex Container(๋ถ๋ชจ ์์)
- flexbox ๋ ์ด์์์ ํ์ฑํ๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ชจ๋ธ
- Flex item๋ค์ด ๋์ฌ์๋ ์์ญ
- display์์ฑ์ flex ํน์ inline-fliex๋ก ์ง์
.flex-container { display: flex; } ๋ถ๋ชจ ์์์ display:flex ํน์ inline-flex
- Flex Item(์์์์)
- ์ปจํ ์ด๋์ ์ํด ์๋ ์ปจํ ์ธ (๋ฐ์ค)
- Flex Container(๋ถ๋ชจ ์์)
'Language > HTML & CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
HTML (0) | 2022.05.06 |
---|
๋๊ธ