CSS[ Cascading Style Sheet ]

HTML์€ ๋ฌธ์žฅ์˜ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค๊ณ 
CSS๋Š” ๋ฌธ์žฅ์„ ๋ธŒ๋ผ์šฐ์ €์— ์–ด๋–ป๊ฒŒ ๋ณด์—ฌ์ค„์ง€ ์ง€์ •ํ•˜๋Š” ์–ธ์–ด

๐Ÿ‘ฉโ€๐ŸŽจCSS ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

  • HTML ์•ˆ์—์„œ Style ์†์„ฑ์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• - ์ธ๋ผ์ธ ์Šคํƒ€์ผ
  • style ํƒœ๊ทธ๋ฅผ ํ†ตํ•ด HTML ๋ฌธ์„œ ๋‚ด๋ถ€์—์„œ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• - ๋‚ด๋ถ€ ์Šคํƒ€์ผ ์‹œํŠธ
  • ๋ณ„๋„๋กœ CSS ํŒŒ์ผ์„ ๋ถ„๋ฆฌํ•˜์—ฌ HTML์˜ ๋ฌธ์„œ์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ• - ์™ธ๋ถ€ ์Šคํƒ€์ผ ์‹œํŠธ

๐Ÿฅ‡์Šคํƒ€์ผ ์ ์šฉ์˜ ์šฐ์„  ์ˆœ์œ„

โœจ์ธ๋ผ์ธ ์Šคํƒ€์ผ > ๋‚ด๋ถ€ ์Šคํƒ€์ผ ์‹œํŠธ > ์™ธ๋ถ€ ์Šคํƒ€์ผ ์‹œํŠธ > ์›น ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ณธ ์Šคํƒ€์ผ

์ด๋Ÿฌํ•œ ์Šคํƒ€์ผ ์ ์šฉ ๋ฐฉ๋ฒ•๋“ค์ด ํ˜ผํ•ฉ๋˜์–ด ์‚ฌ์šฉ๋  ๊ฒฝ์šฐ
๋‚ด๋ถ€๋‚˜ ์™ธ๋ถ€ ์Šคํƒ€์ผ ์‹œํŠธ์™€ ์ƒ๊ด€์—†์ด ๋ฌด์กฐ๊ฑด ์ธ๋ผ์ธ ์Šคํƒ€์ผ์ด ์ ์šฉ๋จ๐Ÿ‘Œ

๐Ÿค“CSS์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ

๐ŸŒˆ์ƒ‰ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•

์ด๊ฑธ ๋งŒ๋“ค์–ด์ฃผ๋Š” ํˆด์ด ์žˆ์Œ

๐Ÿ“์ˆ˜์น˜ ๊ฐ’์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•

em์€ ์ƒ์œ„์— ์žˆ๋Š” ์š”์†Œ ๊ธฐ์ค€์œผ๋กœ, rem์€ ์ตœ์ƒ์œ„๊ฐ€ ๊ธฐ์ค€๐Ÿคฉ

html ์ตœ์ƒ์œ„์— ์•„๋ฌด๊ฒƒ๋„ ์ง€์ • ์•ˆ ํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋ณธ ๊ฐ’์ธ 16px์ด ์ ์šฉ๋จโœ”

transition( ์Šค๋ฌด์Šค ํ•ด์ง ) 3์ดˆ๊ฐ€ ๋‹ค ๋ผ์•ผ opacity: 0.7์ด ์ ์šฉ๋˜๋Š” ๊ฒƒ

active๋Š” ํด๋ฆญํ•  ๋•Œ ์ ์šฉ

ease ~ ease-in-out์€ ๋งŒ๋“ค์–ด์ ธ ์žˆ๋Š” ๊ฒƒ๋“ค,
๋”ฐ๋กœ ๋งŒ๋“ค์–ด์„œ ์ปจํŠธ๋กคํ•˜๊ณ  ์‹ถ์œผ๋ฉด cubic-bezier ์ด์šฉํ•˜๋ฉด ๋จ๐Ÿ˜Ž
๐Ÿ‘‰ cubic-bezier ์‚ฌ์ดํŠธ


๐ŸŽฎ๊ฐ€์ƒ ํด๋ž˜์Šค( ์˜์‚ฌ ํด๋ž˜์Šค ) & ๊ฐ€์ƒ ์š”์†Œ( ์˜์‚ฌ ์š”์†Œ )

  • ๊ฐ€์ƒ ํด๋ž˜์Šค : ๋ณ„๋„์˜ class ์ง€์ •ํ•˜์ง€ ์•Š์•„๋„ ์ง€์ •ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์š”์†Œ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Œ
  • ๊ฐ€์ƒ ์š”์†Œ : ๊ฐ€์ƒ ํด๋ž˜์Šค์ฒ˜๋Ÿผ ์„ ํƒ์ž์— ์ถ”๊ฐ€๋˜๋ฉฐ,
    ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์š”์†Œ๋ฅผ ์กด์žฌํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ถ€์—ฌํ•˜์—ฌ ๋ฌธ์„œ์˜ ํŠน์ • ๋ถ€๋ถ„ ์„ ํƒ์ด ๊ฐ€๋Šฅ

Float & Clear

float : ์ปจํ…Œ์ด๋„ˆ์˜ ์™ผ์ชฝ ๋˜๋Š” ์˜ค๋ฅธ์ชฝ์— ์š”์†Œ๋ฅผ ๋ฐฐ์น˜ํ•˜์—ฌ
ํ…์ŠคํŠธ ๋ฐ ์ธ๋ผ์ธ ์š”์†Œ๊ฐ€ ์ฃผ์œ„๋ฅผ ๋‘˜๋Ÿฌ์Œ€ ์ˆ˜ ์žˆ๋„๋ก ํ•จ
float ํšจ๊ณผ ์ง€์›Œ๋ฒ„๋ฆฌ๋Š” ๊ฒƒ์ด clear๐Ÿงน
float๊ฐ€ left์ด๋ฉด clear๋„ ๋˜‘๊ฐ™์ด left๋กœ ํ•ด์ค˜์•ผํ•จ

์š”์ฆ˜์€ ์›น ํŽ˜์ด์ง€์—์„œ ๋ ˆ์ด์•„์›ƒ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ
ํ›จ์”ฌ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ Flexbox ๋ฐ Grid๋ฅผ ์‚ฌ์šฉํ•จ๐Ÿ‘

๐Ÿฑโ€๐Ÿ‘คbox-shadow

์ฒซ๋ฒˆ์งธ 5px์€ offset-x๋‹ˆ๊นŒ +์ด๋ฏ€๋กœ ์˜ค๋ฅธ์ชฝ์— 5px ๊ทธ๋ฆผ์ž์ฃผ๊ณ 
๋‘๋ฒˆ์งธ 5px์€ offset-y๋‹ˆ๊นŒ +์ด๋ฏ€๋กœ ์•„๋ž˜์ชฝ์— 5px ๊ทธ๋ฆผ์ž์ฃผ๊ณ 
์„ธ๋ฒˆ์งธ 10px์€ blur ํšจ๊ณผ ์ˆซ์ž ๋†’๊ฒŒ ์ค„์ˆ˜๋ก ๋” ํ๋ ค์งˆ ๊ฒƒ
๋„ค๋ฒˆ์งธ ์ƒ‰์ƒ rgba ์ฃผ๋Š”๊ฑฐ์ž„

Margin & Padding & Border( CSS Box Model )

๐Ÿ“ฆCSS Box Modelโžก๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  HTML ์š”์†Œ๋ฅผ ๊ฐ์‹ธ๋Š” ์ƒ์ž
์—ฌ๋ฐฑ, ํ…Œ๋‘๋ฆฌ, ํŒจ๋”ฉ ๋ฐ ์‹ค์ œ ์ฝ˜ํ…์ธ ๋กœ ๊ตฌ์„ฑ

โž–์Œ์ˆ˜๋„ ๊ฐ€๋Šฅโญ•

๋งˆ์ง„ํ•˜๊ณ  ๋‹ค๋ฅธ ์ ์€ ํŒจ๋”ฉ์€ ์Œ์ˆ˜ ์˜ํ–ฅโŒ

๐Ÿ–ŒText ์Šคํƒ€์ผ๋ง

bold๋Š” 700( weight ), ๋ณดํ†ต์€ 400, semi-bold๋Š” 500

underline์€ ๋ฐ‘์ค„, none์€ ์—†๊ฒŒ ํ•˜๋Š” ๊ฒƒ


๐ŸŽ Image

alt ์†์„ฑ์€ ๋‹จ์ˆœํžˆ ์ด๋ฏธ์ง€๊ฐ€ ๊นจ์กŒ์„ ๋•Œ๋งŒ ์“ฐ๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ,
์Šคํฌ๋ฆฐ ๋ฆฌ๋” ์‚ฌ์šฉ์ž์—๊ฒŒ๋„ ํฐ ๋„์›€์ด ๋˜๋Š” ์ค‘์š”ํ•œ ์š”์†Œ๐ŸŽฏ

โœ”object-fit

๐Ÿ‘‰ ์ปจํ…Œ์ด๋„ˆ์— ๋งž๊ฒŒ img ๋˜๋Š” video ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ง€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ

  • fill : ๊ธฐ๋ณธ ๊ฐ’, ์ด๋ฏธ์ง€๋Š” ์ฃผ์–ด์ง„ ์น˜์ˆ˜๋ฅผ ์ฑ„์šฐ๋„๋ก ํฌ๊ธฐ๊ฐ€ ์กฐ์ •๋จ
    ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ด๋ฏธ์ง€์— ๋งž๊ฒŒ ๋Š˜์–ด๋‚˜๊ฑฐ๋‚˜ ์ฐŒ๊ทธ๋Ÿฌ์ง
  • contain : ์ด๋ฏธ์ง€๋Š” ์ข…ํšก๋น„๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ์ฃผ์–ด์ง„ ์น˜์ˆ˜์— ๋งž๊ฒŒ ํฌ๊ธฐ๊ฐ€ ์กฐ์ •๋จ
  • cover : ์ด๋ฏธ์ง€๊ฐ€ ์ข…ํšก๋น„๋ฅผ ์œ ์ง€ํ•˜์ง€๋งŒ ์ฃผ์–ด์ง„ ์น˜์ˆ˜๋ฅผ ์ฑ„์›€, ์ด๋ฏธ์ง€์— ๋งž๊ฒŒ ์ž˜๋ฆผ
    cover ์งค๋ฆฐ ๋ถ€๋ถ„์—์„œ ์ด๋ถ€๋ถ„ ๋ง๊ณ  ๋‹ค๋ฅธ ๋ถ€๋ถ„์„ ์ž๋ฅด๊ณ  ์‹ถ์œผ๋ฉด position์„ ์ง€์ •ํ•ด์ฃผ๋ฉด ๋จ
    right๋กœ ์ฃผ๋ฉด ์™ผ์ชฝ๋ถ€๋ถ„ ์•ˆ ๋ณด์ด๊ณ  ์˜ค๋ฅธ์ชฝ ๋ถ€๋ถ„๋งŒ ๋ณด์ด๊ฒŒ ๋จ
  • none : ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๊ฐ€ ์กฐ์ •๋˜์ง€ ์•Š์Œ
  • scale-down : ์ด๋ฏธ์ง€๊ฐ€ none ๋˜๋Š” ํฌํ•จ์˜ ๊ฐ€์žฅ ์ž‘์€ ๋ฒ„์ „์œผ๋กœ ์ถ•์†Œ๋จ

โŒจInput

๐Ÿ‘พTransform

transform ์ด๋ž‘ animation ํ•˜๊ณ  ๊ฐ™์ด ๋งŽ์ด ์‚ฌ์šฉํ•จ

๐Ÿค—transform-functions

  • scale( ) : ์š”์†Œ์˜ ํฌ๊ธฐ์— ์˜ํ–ฅ์„ ์คŒ
    ์š”์†Œ์˜ ๊ธ€๊ผด ํฌ๊ธฐ, ํŒจ๋”ฉ, ๋†’์ด ๋ฐ ๋„ˆ๋น„์—๋„ ์ ์šฉ๋จ
    scaleX ๋ฐ scaleY ํ•จ์ˆ˜์˜ ์–‘์‹ ํ•จ์ˆ˜์ด๊ธฐ๋„ ํ•จ
    ํฌ๊ฒŒํ•˜๊ณ  ์ž‘๊ฒŒํ•˜๋Š” ๊ฒƒ
  • skewX( ) ๋ฐ skewY( ) : ์š”์†Œ๋ฅผ ์™ผ์ชฝ ๋˜๋Š” ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๊ธฐ์šธ์ž„
    skew( )๋Š” ๋‘ ๊ฐ’์„ ๋ชจ๋‘ ์ˆ˜์šฉํ•˜์—ฌ skewX( )์™€ skewY( )๋ฅผ ๊ฒฐํ•ฉํ•œ ์ถ•์•ฝํ˜•

  • translate( ) : ์š”์†Œ๋ฅผ ์˜†์œผ๋กœ ๋˜๋Š” ์œ„์•„๋ž˜๋กœ ์ด๋™ํ•จ

    x, y์ถ• ๊ฐ™์ด ์„ค์ •ํ•ด์ค˜์„œ ๋Œ€๊ฐ์„ ์œผ๋กœ ์ด๋™ํ•œ ๊ฒƒ
  • rotate( ) : ์š”์†Œ๋ฅผ ํ˜„์žฌ ์œ„์น˜์—์„œ ์‹œ๊ณ„ ๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „

  • matrix( ) : ์†์œผ๋กœ ์ž‘์„ฑํ•˜๋„๋ก ์˜๋„๋œ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ๋ชจ๋“  ๋ณ€ํ™˜์„ ํ•˜๋‚˜๋กœ ๊ฒฐํ•ฉํ•˜๋Š” ํ•จ์ˆ˜
  • perspective( ) : ์š”์†Œ ์ž์ฒด์—” ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์ง€๋งŒ
    ํ•˜์œ„ ์š”์†Œ์˜ 3D ๋ณ€ํ™˜์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฏ€๋กœ ๋ชจ๋“  ์š”์†Œ๊ฐ€ ์ผ๊ด€๋œ ๊นŠ์ด ๊ด€์ ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ

๐Ÿ“บanimation CSS

๐Ÿ‘‰ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋จผ์ € ์• ๋‹ˆ๋ฉ”์ด์…˜์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ keyframes ์ง€์ •ํ•ด์•ผํ•จ
โœ… keyframe์€ ํŠน์ • ์‹œ๊ฐ„์— ์š”์†Œ์˜ ์Šคํƒ€์ผ์„ ์œ ์ง€ํ•จ

@keyframes ์˜†์— ์ด๋ฆ„ํ•˜๊ณ  animation์— ์“ด ํ”„๋กœํผํ‹ฐ ์ด๋ฆ„ํ•˜๊ณ  ๊ฐ™์•„์•ผํ•จโšก

3s๋Š” 3์ดˆ๊ฐ€ ๋์„ ๋•Œ 100% ๋ผ๋Š” ๊ฒƒ, 3์ดˆ ์ดํ›„์—” ๋‹ค์‹œ 0%๋กœ ๋Œ์•„์™€์„œ ๋˜ 3s๋˜๋ฉด 100%๋กœ๐Ÿ‘Œ
๐Ÿ‘‰ ์ด๊ฑธ ์–ผ๋งˆ๋‚˜ ๋ฐ˜๋ณตํ• ๊ฑด์ง€๋Š” infinite( ๋ฌดํ•œ์ • ) ์ด๋ถ€๋ถ„์— ํ•ด๋‹น๋จ

div {
	width: 100px;
    height: 100px;
    background-color: red;
    position: relative;
    // 2์ดˆ ๋’ค์— ์• ๋‹ˆ๋ฉ”์ด์…˜ ์‹œ์ž‘๋จ
    // linear->์ผ์ •ํ•˜๊ฒŒ, infinite->๋ฌดํ•œ, alternate->์‹œ๊ณ„๋ฐ˜ํ–ฅ์œผ๋กœ ํ–ˆ๋‹ค๊ฐ€ ๋ฐ˜์‹œ๊ณ„
    animation: animationName 5s linear 2s infinite alternate;
}

@keyframes animationName {
	0% {
    	background-color: lightblue;
        left: 0px;
        top: 0px;
    }
    
    25% {
    	background-color: lightcoral;
        left: 150px;
        top: 0px;
    }
    
    50% {
    	background-color: lightcyan;
        left: 150px;
        top: 150px;
    }
    
    75% {
    	background-color: lightgray;
        left: 0px;
        top: 150px;
    }
    
    100% {
    	background-color: lightgray;
        left: 0px;
        top: 0px;
    }
}

โฌ›background-clip

์š”์†Œ ๋‚ด์—์„œ ๋ฐฐ๊ฒฝ( ์ƒ‰์ƒ ๋˜๋Š” ์ด๋ฏธ์ง€ )์ด ํ™•์žฅ๋˜์–ด์•ผ ํ•˜๋Š” ๊ฑฐ๋ฆฌ๋ฅผ ์˜๋ฏธ

border-box : ํ…Œ๋‘๋ฆฌ & ์•ˆ์ชฝ ์˜์—ญ ๋‹ค ์ฑ„์›Œ์คŒ( border ๊นŒ์ง€ )
padding-box : ์•ˆ์ชฝ ์˜์—ญ ๋ถ€๋ถ„๋งŒ ์ฑ„์›Œ์คŒ( padding ๊นŒ์ง€ )
content-box : ์ปจํ…์ธ  ๋ถ€๋ถ„๋งŒ ์ฑ„์›Œ์คŒ( content ๊นŒ์ง€ )

profile
์•ˆ๋…•ํ•˜์„ธ์š”! ํผ๋ธ”๋ฆฌ์‹ฑ & ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ๊ณต๋ถ€ ๋ธ”๋กœ๊ทธ ์ž…๋‹ˆ๋‹ค!

0๊ฐœ์˜ ๋Œ“๊ธ€