๊ด€๋ฆฌ ๋ฉ”๋‰ด

JiYoung Dev ๐Ÿ–ฅ

CSS ํ•ต์‹ฌ ๊ฐœ๋… ๋ณธ๋ฌธ

full stack/HTML, CSS

CSS ํ•ต์‹ฌ ๊ฐœ๋…

Shinjio 2023. 3. 3. 17:41

2023.03.01 ~ 2023.03.03 ์ฝ”๋“œ์ž‡ ํ•™์Šต๋‚ด์šฉ

 

๐Ÿ”Ž CSS ๊ทœ์น™

HTMLํƒœ๊ทธ์— ์Šคํƒ€์ผ ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์Šคํƒ€์ผ์„ ์ž…ํž ์ˆ˜ ์žˆ์—ˆ์Œ. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฐฉ๋ฒ•์€ ๋™์ผํ•œ ์†์„ฑ์„ ์ฃผ๊ณ  ์‹ถ์€ ํƒœ๊ทธ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ผ ๋•Œ ์Šคํƒ€์ผ์„ ์ž…ํžˆ๋Š” ๊ฒŒ ๋ฒˆ๊ฑฐ๋กœ์›Œ์ง. ๋”ฐ๋ผ์„œ ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ(seperation of concerns)๋ฅผ ์ง„ํ–‰ํ•จ. ์ฆ‰, ๋‚ด์šฉ๊ณผ ์Šคํƒ€์ผ์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ. ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋ถ„๋ฆฌํ•˜๋ฉด ๋‚ด์šฉ๊ณผ ์Šคํƒ€์ผ์„ ๋”ฐ๋กœ ๊ณ ์น˜๊ธฐ ํŽธํ•˜๊ณ , CSS ํŒŒ์ผ์„ ๋”ฐ๋กœ ์ €์žฅํ•˜๊ธฐ ํŽธํ•จ. ๋”ฐ๋ผ์„œ CSS ์†์„ฑ์„ ํ•˜๋‚˜ํ•˜๋‚˜ ํƒœ๊ทธ์— ๋„ฃ๊ธฐ๋ณด๋‹ค๋Š” CSS ๊ทœ์น™์„ ์ •ํ•ด ๋†“๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•จ

๊ธฐ๋ณธ ๋ฌธ๋ฒ•:
์„ ํƒ์ž {

    ์†์„ฑ: ์†์„ฑ๊ฐ’;
    ์†์„ฑ: ์†์„ฑ๊ฐ’;
}

์ž‘์„ฑ ์˜ˆ:
h3 {
    color: #ffffff;
    font-size: 20px
}

 

๐Ÿ”Ž CSS ์„ ํƒ์ž

๊ทœ์น™์—์„œ ์š”์†Œ๋ฅผ ์„ ํƒํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ถ€๋ถ„์œผ๋กœ ํƒœ๊ทธ ์ด๋ฆ„, id, class๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Œ

 

๐Ÿ“– ํƒœ๊ทธ์ด๋ฆ„

h1, div ๊ฐ™์€ ํƒœ๊ทธ๋ฅผ ์„ ํƒ์ž๋กœ ์“ฐ๋ฉด ๊ทธ ํƒœ๊ทธ์— ํ•ด๋‹นํ•˜๋Š” ์š”์†Œ ์ „์ฒด์— ๋ชจ๋‘ ์Šคํƒ€์ผ์„ ์ ์šฉํ•จ

h3 {
    font-size: 24px
}

 

๐Ÿ“– ์•„์ด๋””(id)

๋งจ ์•ž์— ์ƒพ์„ ๋ถ™์—ฌ์„œ #์•„์ด๋””_์ด๋ฆ„๊ณผ ๊ฐ™์€ ๋ฌธ๋ฒ•์œผ๋กœ ์‚ฌ์šฉ. ์•„์ด๋””๋Š” ํ•œ ํŽ˜์ด์ง€ ์•ˆ์—์„œ ์ค‘๋ณตํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ(ํƒœ๊ทธ ํ•˜๋‚˜๋ฐ–์— ์„ ํƒํ•  ์ˆ˜ ์—†์Œ)

html ์ฝ”๋“œ
<h3>์šฐ๋„</h3>
<h3 id="hallasan">ํ•œ๋ผ์‚ฐ ๊ตญ๋ฆฝ๊ณต์›</h3>
<h3>์„ฑ์‚ฐ ์ผ์ถœ๋ด‰</h3>
<h3>๊ตฐ์‚ฐ ์˜ค๋ฆ„</h3>

CSS ์ฝ”๋“œ
#hallasan{
    color: #f56513;
}

 

๐Ÿ“– ํด๋ž˜์Šค(class)

ํƒœ๊ทธ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์„ ํƒํ•˜์—ฌ ์Šคํƒ€์ผ์„ ์ ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ. ๋งจ ์•ž์— ๋งˆ์นจํ‘œ๋ฅผ ๋ถ™์—ฌ์„œ .ํด๋ž˜์Šค_์ด๋ฆ„๊ณผ ๊ฐ™์€ ๋ฌธ๋ฒ•์œผ๋กœ ์”€. 

HTML ์ฝ”๋“œ
<h3 class="place">์šฐ๋„</h3>
<h3 class="place" id="hallasan">ํ•œ๋ผ์‚ฐ ๊ตญ๋ฆฝ๊ณต์›</h3>
<h3 class="place">์„ฑ์‚ฐ ์ผ์ถœ๋ด‰</h3>
<h3 class="place">๊ตฐ์‚ฐ ์˜ค๋ฆ„</h3>

CSS ์ฝ”๋“œ
.place{
    font-size: 16px;
    font-weight: 400;
}

 

๐Ÿ”Ž CSS ํŒŒ์ผ ์ €์žฅํ•˜๋Š” ๋ฒ•

HTML ํŒŒ์ผ์— CSS ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋ณด๊ธฐ ์–ด๋ ค์›€. ๋”ฐ๋ผ์„œ CSSํŒŒ์ผ์„ ๋”ฐ๋กœ ์ €์žฅํ•จ.

โ‘  ํŒŒ์ผ๋ช….css ์ด๋ฆ„์œผ๋กœ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์ €์žฅ

โ‘ก html ๋ฌธ์„œ์—์„œ <link> (ํ˜„์žฌ ๋ฌธ์„œ ๋ฐ”๊นฅ์— ์žˆ๋Š” ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ํƒœ๊ทธ) ํ™œ์šฉํ•ด CSS ์ฝ”๋“œ html์— ์ ์šฉ

<link rel="stylesheet" href="ํŒŒ์ผ๋ช….css">

rel์€ relation์˜ ์•ฝ์ž๋กœ ๋ถˆ๋Ÿฌ์˜ค๋Š” ํŒŒ์ผ๊ณผ html ํŒŒ์ผ๊ณผ์˜ ๊ด€๊ณ„๋ฅผ ๋œปํ•จ

href๋Š” ๊ฒฝ๋กœ (๋งŒ์•ฝ ๊ฐ™์€ ํด๋”์— ์žˆ์œผ๋ฉด ํŒŒ์ผ๋ช…๋งŒ ์ž‘์„ฑํ•˜๋ฉด ๋จ. ๋‹ค๋ฅธ ํด๋”์— ์žˆ์œผ๋ฉด ๊ฒฝ๋กœ ์ž‘์„ฑํ•ด์•ผ ํ•จ)

 

๐Ÿ”Ž ์ƒ‰์ƒ, ํฌ๊ธฐ ๋‹จ์œ„

๐Ÿ“– ์ƒ‰์ƒ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ• 

โš™ ์ƒ‰์ƒ ์ด๋ฆ„ (color names)

red, yellow, white ๋“ฑ๊ณผ ๊ฐ™์ด ํ‘œํ˜„

์„ธ์„ธํ•œ ์ƒ‰๊น”์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ํž˜๋“ค์–ด ์ž˜ ์‚ฌ์šฉ ์•ˆ ํ•จ 

 

โš™ ์ƒ‰์ƒ ์ฝ”๋“œ (color codes)

css์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹

#์œผ๋กœ ์‹œ์ž‘ํ•˜๊ณ  ์ˆซ์ž์™€ ๋ฌธ์ž(a~f)๋กœ ์กฐํ•ฉํ•œ ์—ฌ์„ฏ ์ž๋ฆฌ

 

์ƒ‰์ƒ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์—๋Š” 2๊ฐ€์ง€๊ฐ€ ์žˆ์Œ. CMYK๋ฐฉ์‹(๋ฌผ๊ฐ)๊ณผ RGB(๋น›) ๋ฐฉ์‹
CMYK ์•ˆ๋ฃŒ์˜ ์‚ผ์›์ƒ‰์€ yellow, cyan, magenta
RGB ๋ฐฉ์‹์˜ ์‚ผ์›์ƒ‰์€ red, green, blue

CSS์—์„œ๋Š” ๋ชจ๋‹ˆํ„ฐ์—์„œ ๋ณด์ด๋Š” ์ƒ‰์ƒ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ๋น›์˜ ์‚ผ์›์ƒ‰์ธ RGB๋ฅผ ์‚ฌ์šฉ
RGB 3์›์ƒ‰ ์ค‘ red๋Š” rgb(255, 0, 0)
green์€ rgb(0, 255, 0)
blue๋Š” rgb(0, 0, 255)
red์™€ green์„ ์„ž์œผ๋ฉด yellow๊ฐ€ ๋˜๋ฏ€๋กœ yellow์˜ RGB๋Š” rgb(255, 255, 0)
red, green, yellow๋ฅผ ๋ชจ๋‘ ์„ž์œผ๋ฉด white๊ฐ€ ๋˜๋ฏ€๋กœ white์˜ RGB๋Š” rgb(255, 255, 255)

์ด๋ ‡๊ฒŒ rgb์˜ ๊ฐ’์„ 16์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ์„ ์ƒ‰์ƒ์ฝ”๋“œ๋ผ ํ•จ
0 → 00
64 → 40
128 → 80
192 → c0
255 → ff

์ด๋ฅผ ์ด์šฉํ•˜์—ฌ RGB ์ƒ‰์ƒ์„ ์ƒ‰์ƒ ์ฝ”๋“œ๋กœ ํ‘œํ˜„ํ•˜๋ฉด
red๋Š” ff0000
green์€ 00ff00
blue๋Š” 0000ff
yellow๋Š” ffff00
white๋Š” ffffff

 

โš™ RGB

๋นจ๊ฐ•, ์ดˆ๋ก, ํŒŒ๋ž‘ ๊ฐ’์„ 10์ง„์ˆ˜๋กœ ์จ์„œ ์ƒ‰์ƒ์„ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ

 

โš™ RGBA

RGB์— ์•ŒํŒŒ(๋ถˆํˆฌ๋ช…๋„)๋ฅผ ์ถ”๊ฐ€ํ•œ ๊ฒƒ

๋ถˆํˆฌ๋ช…๋„๋Š” 0~1 ์‚ฌ์ด์˜ ์†Œ์ˆ˜์  ์ˆซ์ž (0 ์™„์ „ ํˆฌ๋ช… 0.5 ๋ฐ˜ํˆฌ๋ช… 1 ๋ถˆํˆฌ๋ช…)

 

๐Ÿ“– ๋‹ค์–‘ํ•œ ํฌ๊ธฐ ๋‹จ์œ„

โš™ ์ ˆ๋Œ€์ ์ธ ๋‹จ์œ„ : ํ”ฝ์…€

ํ™”๋ฉด์„ ํ‘œ์‹œํ•˜๋Š” ๊ธฐ์ค€์ด ๋˜๋Š” ๊ฐ€์žฅ ์ž‘์€ ์ •์‚ฌ๊ฐํ˜•

PPI(picxel per inch) : ๋ชจ๋‹ˆํ„ฐ์—์„œ 1์ธ์น˜ ์ •์‚ฌ๊ฐํ˜• ์•ˆ์— ํ”ฝ์…€์ด ๋ช‡ ๊ฐœ๋‚˜ ๋“ค์–ด๊ฐ€๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‹จ์œ„๋กœ ์ด˜์ด˜ํ•œ ๋ชจ๋‹ˆํ„ฐ์ผ์ˆ˜๋ก ํ•ด์ƒ๋„๊ฐ€ ๋†’์Œ

 

โš™ ์ƒ๋Œ€์ ์ธ ๋‹จ์œ„ : ํผ์„ผํŠธ(%), em, rem

ํผ์„ผํŠธ(%)

๋ถ€๋ชจ ํƒœ๊ทธ์— ๋Œ€ํ•œ ์ƒ๋Œ€์ ์ธ ํฌ๊ธฐ. ํฌ๊ธฐ๋ฅผ ๋ฐ”๊พธ๊ณ  ์‹ถ์„ ๋•Œ ๋ถ€๋ชจ์˜ ํฌ๊ธฐ๋งŒ ๋ฐ”๊พธ๋ฉด ๋จ

 

em, rem

๊ธ€์ž ํฌ๊ธฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ƒ๋Œ€์ ์ธ ํฌ๊ธฐ

- em

์ธ์‡„์—์„œ ์ „ํ†ต์ ์œผ๋กœ ๋Œ€๋ฌธ์ž M์˜ ํฌ๊ธฐ

CSS์—์„œ 1em = ๋ถ€๋ชจ ํƒœ๊ทธ์˜ font-size

- rem

1rem = <html> ์ตœ์ƒ์œ„ ํƒœ๊ทธ์˜ font - size

๊ธ€์ž ํฌ๊ธฐ์— ๋งž์ถฐ ์—ฌ๋ฐฑ์„ ์ฃผ๊ณ  ์‹ถ์„ ๋•Œ์— ์ž์ฃผ ์‚ฌ์šฉ

 

โ€ป CSS์—์„œ ์ฝ”๋ฉ˜ํŠธ ๋‹ฌ๊ธฐ : /* ๋‚ด์šฉ */

 

๐Ÿ”Ž ์ž์ฃผ ์“ฐ์ด๋Š” CSS ์†์„ฑ

๐Ÿ“– ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€ ๋„ฃ๊ธฐ

url ์•ˆ์—๋Š” ํŒŒ์ผ ์ฃผ์†Œ๋‚˜ ๊ฒฝ๋กœ๋ฅผ ๋„ฃ๊ณ , ๋”ฐ์˜ดํ‘œ๋Š” ์—†์–ด๋„ ๊ดœ์ฐฎ์ง€๋งŒ ํŠน์ˆ˜ ๋ฌธ์ž๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋”ฐ์˜ดํ‘œ๊ฐ€ ํ•„์š”ํ•จ

๋ฐฐ๊ฒฝ์ด๋ฏธ์ง€๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํƒ€์ผ ํ˜•ํƒœ๋กœ ๊น”๋ฆผ

๋˜ํ•œ, ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ๋„ฃ์„ ์ˆ˜๋„ ์žˆ์Œ

๊ธฐ๋ณธ ๋ฌธ๋ฒ•:
background-image: url('ํŒŒ์ผ๋ช…');

๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ๋„ฃ์„ ๋•Œ:
background-image:
    url('a.png'),   /* ์ œ์ผ ์œ„์— ๋ณด์ด๋Š” ์ด๋ฏธ์ง€ */
    url('b.png'),
    url('c.png');

 

โš™ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€๋ฅผ ๊ฝ‰ ์ฐจ๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ• : ๋ฐฐ๊ฒฝ์˜ ๋ฐ˜๋ณต

background-repeat: no-repeat;  /* ๋ฐ˜๋ณต ์•ˆ ํ•จ*/
background-repeat: repeat; /*๊ธฐ๋ณธ๊ฐ’*/
repeat-x๋Š” ๊ฐ€๋กœ๋งŒ ๋ฐ˜๋ณต
repeat-y๋Š” ์„ธ๋กœ๋งŒ ๋ฐ˜๋ณต

 

โš™ ๋ฐฐ๊ฒฝ์˜ ์œ„์น˜

์ด๋ฏธ์ง€๋ฅผ ์–ด๋–ค ์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ• ์ง€

background-position: center; 
bottom, left, right, top ๋“ฑ ์œ„์น˜ ๊ธฐ์ค€์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Œ

 

โš™ ๋ฐฐ๊ฒฝ์˜ ํฌ๊ธฐ

background-size: cover;   
background-size: 40px 30px   /* ๊ฐ€๋กœ 40px, ์„ธ๋กœ 30px */

cover - ๋น„์œจ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ๊ฝ‰ ์ฐจ๊ฒŒ. ์ด๋ฏธ์ง€๊ฐ€ ์ž˜๋ฆด ์ˆ˜ ์žˆ์Œ
contain - ๋น„์œจ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์ตœ๋Œ€ํ•œ ํฌ๊ฒŒ. ์ด๋ฏธ์ง€๊ฐ€ ์ž˜๋ฆฌ์ง€ ์•Š์Œ

 

๐Ÿ“– ๊ทธ๋ผ๋””์–ธํŠธ(gradient)

background-image ์†์„ฑ ์‚ฌ์šฉ

์œ„์—์„œ ์•„๋ž˜๋กœ ๊ฐˆ์ˆ˜๋ก ํˆฌ๋ช…ํ•ด์ง
background-image: linear-gradient(rgba(0,0,0,1), rgba(0,0,0,0)    

๊ฐ๋„๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์œผ๋ฉด ์ƒ‰์ƒ ์•ž์— ๊ฐ๋„ ์ถ”๊ฐ€
background-image: linear-gradient(90deg, rgba(0,0,0,1), rgba(0,0,0,0) 

๊ทธ๋ผ๋””์–ธํŠธ์˜ ๋‹จ๊ณ„๋งˆ๋‹ค ๋น„์œจ์„ ๋‹ค๋ฅด๊ฒŒ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ค‘๊ฐ„์— 40% ์ด๋Ÿฐ ์‹์œผ๋กœ ์ ์–ด์ฃผ๋ฉด ๋จ
background-image: linear-gradient(90deg, rgba(0,0,0,1), 40%, rgba(0,0,0,0) 

 

๊ทธ๋ผ๋””์–ธํŠธ๋Š” ์ด๋ ‡๊ฒŒ ์ง์ ‘ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” css gradient generator๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŽธํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Œ

 

CSS Gradient — Generator, Maker, and Background

As a free css gradient generator tool, this website lets you create a colorful gradient background for your website, blog, or social media profile.

cssgradient.io

 

์ด๋ฏธ์ง€ ์œ„์— ๋ฐ˜ํˆฌ๋ช…ํ•œ ๊ทธ๋ผ๋””์–ธํŠธ ๊ฒน์น˜๋Š” ๋ฐฉ๋ฒ•

background-image:
    linear-gradient(90deg, rgba(0,0,0,1), 40%, rgba(0,0,0,0),
    url('pizza.png');

 

๐Ÿ“– ๊ทธ๋ฆผ์ž (box-shadow)

box-shadow: 10px 15px rgbs(0, 0, 0, 0.4)
๊ทธ๋ฆผ์ž๊ฐ€ ๊ฐ€๋กœ๋กœ๋Š” 10px, ์„ธ๋กœ๋กœ๋Š” 15px ์ƒ๊น€

ํ๋ฆผ ํšจ๊ณผ ๋„ฃ๊ธฐ 
box-shadow: 10px 15px 20px rgbs(0, 0, 0, 0.4)

๊ทธ๋ฆผ์ž๊ฐ€ ์–ผ๋งˆ๋‚˜ ํผ์งˆ์ง€ (ํผ์ง€๋Š” ํฌ๊ธฐ)
box-shadow: 10px 15px 20px 5px rgbs(0, 0, 0, 0.4)

 

๐Ÿ“– ๋ถˆํˆฌ๋ช…๋„

๊ฐ’์ด 1์— ๊ฐ€๊นŒ์šธ์ˆ˜๋ก ๋ถˆํˆฌ๋ช…, 0์— ๊ฐ€๊นŒ์šธ์ˆ˜๋ก ํˆฌ๋ช…

์š”์†Œ ์ „์ฒด๊ฐ€ ๋ฐ˜ํˆฌ๋ช…ํ•ด์ง

๋ฐฐ๊ฒฝ์ƒ‰๋งŒ ๋ฐ˜ํˆฌ๋ช…ํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด rgba๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋จ

opacity: 0.5 

 

๐Ÿ”Ž ๋ฐ•์Šค ๋ชจ๋ธ (box model)

์›นํŽ˜์ด์ง€์—์„œ ๋ชจ๋“  ์š”์†Œ๋“ค์€ ๋ฐ•์Šค ๋ชจ๋ธ์„ ๋”ฐ๋ฆ„. ๋ฐ–์—์„œ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ๋ฐ”๊นฅ ์—ฌ๋ฐฑ์ธ ๋งˆ์ง„, ํ…Œ๋‘๋ฆฌ์ธ ๋ณด๋”, ํ…Œ๋‘๋ฆฌ์™€ ์‹ค์ œ ๋‚ด์šฉ ์‚ฌ์ด์˜ ์—ฌ๋ฐฑ์ธ ํŒจ๋”ฉ, ๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ ๋‚ด์šฉ์ด ๋“ค์–ด๊ฐ€๋Š” ์ฝ˜ํ…์ธ  ๋ฐ•์Šค๊ฐ€ ์žˆ์Œ

 

๐Ÿ“– padding : ์˜์—ญ ์•ˆ์ชฝ์— ์—ฌ๋ฐฑ์„ ๋„ฃ์„ ๋•Œ ์‚ฌ์šฉ

padding: 16px 8px 24px 10px;

<padding ์†์„ฑ> - ์œ„์™€ ๋™์ผํ•œ ์ฝ”๋“œ
padding-top: 16px;
padding-right: 8px;
padding-bottom: 24px;
padding-left: 10px;

 

๐Ÿ“– margin : ์˜์—ญ ๋ฐ”๊นฅ์ชฝ ์—ฌ๋ฐฑ์„ ๋„ฃ์„ ๋•Œ ์‚ฌ์šฉ

margin์€ ๋„ˆ๋น„๋ฅผ ์„ค์ •ํ•ด ์ฃผ๊ณ  ๊ฐ€๋กœ ์—ฌ๋ฐฑ์„ auto๋กœ ์ž‘์„ฑํ•˜์—ฌ ๋ฐ”๊นฅ ์—ฌ๋ฐฑ์„ ์ž๋™์œผ๋กœ ์ฑ„์šฐ๋Š” ์„ค์ •์„ ํ•  ์ˆ˜ ์žˆ์Œ

margin: 16px 8px 24px 10px;

<margin ์†์„ฑ> - ์œ„์™€ ๋™์ผํ•œ ์ฝ”๋“œ
margin-top: 16px;
margin-right: 8px;
margin-bottom: 24px;
margin-left: 10px;

 

๐Ÿ“– border์™€ border-radius

์ฃผ๋กœ ๊ตต๊ธฐ, ํ…Œ๋‘๋ฆฌ ์ข…๋ฅ˜(solid, dotted, dashed), ์ƒ‰์ƒ ์ˆœ์„œ๋กœ ์ž‘์„ฑ

border-radius ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ•์Šค ๋ชจ๋ธ์˜ ๋ชจ์„œ๋ฆฌ๋ฅผ ๋‘ฅ๊ธ€๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ. border ์†์„ฑ์ด ์—†์–ด๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ. ๊ฐ’์ด ์ปค์งˆ์ˆ˜๋ก ๋‘ฅ๊ธ€์–ด์ง

border: 1px solid #dedede
border-radius: 8px

 

๐Ÿ“– box-sizing

๊ธฐ๋ณธ์ ์œผ๋กœ width์™€ ๊ฐ™์ด ์š”์†Œ์— ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ทธ ํฌ๊ธฐ๋Š” ๋ฐ•์Šค ๋ชจ๋ธ์—์„œ ์ฝ˜ํ…ํŠธ ์˜์—ญ์˜ ํฌ๊ธฐ๋ฅผ ์˜๋ฏธํ•จ. 

border์™€ padding์„ ํฌํ•จํ•œ ํฌ๊ธฐ๋Š” box-sizing: border-box (border๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฐ•์Šค ์‚ฌ์ด์ฆˆ๋ฅผ ์ง€์ •)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋จ

#box {
    margin:20px;
    padding:30px;
    width:100px;
    box-sizing: border-box;
}

 

๋ชจ๋“  ์š”์†Œ์— ๊ฐ™์€ ์Šคํƒ€์ผ ์ ์šฉํ•˜๋ ค๋ฉด * ์‚ฌ์šฉ

* {

}

 

๐Ÿ“– overflow

๋ฐ•์Šค์˜ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ–ˆ์„ ๋•Œ ๋‚ด์šฉ์ด ๋งŽ์•„์„œ ๋ฐ•์Šค ๋ฐ–์œผ๋กœ ๋„˜์น˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Œ. ์ด๋ฅผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋ผ๊ณ  ํ•จ. 

์ด๋Ÿด ๋•Œ๋Š” ๋‚ด์šฉ์„ ๊ฐ์ถ”๊ฑฐ๋‚˜ ์Šคํฌ๋กค์„ ์ ์šฉํ•ด ์ฃผ๋ฉด ๋จ

overflow: hidden; (๋„˜์น˜๋Š” ๋‚ด์šฉ ์ˆจ๊ธฐ๊ธฐ) 
overflow: auto; (๋„˜์น˜๋ฉด ์Šคํฌ๋กค)

overflow: scroll; (๋„˜์น˜๋Š” ๋‚ด์šฉ ํ•ญ์ƒ ์Šคํฌ๋กค)

๊ฐ€๋กœ ์Šคํฌ๋กค ์ ์šฉ

white-space: nowrap; ์ž‘์„ฑ

 

๐Ÿ“– ๋งˆ์ง„ ์ƒ์‡„

์ผ๋ฐ˜์ ์œผ๋กœ ์„ธ๋กœ๋กœ ๋งˆ์ง„๊ฐ’์ด ๋“ค์–ด๊ฐ”์„ ๋•Œ ๋งˆ์ง„ ์ƒ์‡„๊ฐ€ ์ผ์–ด๋‚จ. ์ด์›ƒํ•˜๋Š” ์š”์†Œ๋“ค๋ผ๋ฆฌ์—๋Š” ๋งˆ์ง„ ์ƒ์‡„๊ฐ€ ์ผ์–ด๋‚˜๊ณ , ๋ถ€๋ชจ ์ž์‹ ์‚ฌ์ด์—๋„ ๋งˆ์ง„ ์ƒ์‡„๊ฐ€ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ์Œ. ์ด๋•Œ ๋ถ€๋ชจ์— padding์ด๋‚˜ border๊ฐ€ ์žˆ์œผ๋ฉด ๊ฒฝ๊ณ„๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์„ธ๋กœ ๋งˆ์ง„์„ ๊ฒน์น˜์น˜ ์•Š์Œ

 

๐Ÿ”Ž ๋””์Šคํ”Œ๋ ˆ์ด (Display)

๋””์Šคํ”Œ๋ ˆ์ด ์†์„ฑ์—๋Š” ๋ธ”๋ก๊ณผ ์ธ๋ผ์ธ์ด ์žˆ์Œ

 

๐Ÿ“– ๋ธ”๋ก(block)

์œ„์—์„œ ์•„๋ž˜๋กœ ์ฐจ๋ก€๋Œ€๋กœ ๋ฐฐ์น˜๋˜๋Š” ์š”์†Œ๋กœ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Œ

<p>,  <h1>~<h6>, <div>

 

๐Ÿ“– ์ธ๋ผ์ธ(inline)

๊ธ€์„ ์“ฐ๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์ค„์ด ๋ฐ”๋€Œ๋ฉด์„œ ๋ฐฐ์น˜๋˜๋ฉฐ ๋ธ”๋ก๊ณผ ๋‹ฌ๋ฆฌ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์—†์Œ. (๋‹จ, img๋Š” ์˜ˆ์™ธ์ ์œผ๋กœ ํฌ๊ธฐ ์ง€์ • ๊ฐ€๋Šฅ)

<a>, <br>, <img>, <span>

 

๐Ÿ“– ์ธ๋ผ์ธ ๋ธ”๋ก(inline block)

๋ฐฐ์น˜๋Š” ์ธ๋ผ์ธ์ฒ˜๋Ÿผ ๋˜์ง€๋งŒ ๋ธ”๋ก์ฒ˜๋Ÿผ ํฌ๊ธฐ๊ฐ€ ์žˆ๋Š” ์š”์†Œ

display: inline-block;
display: none    → css์—์„œ html ์ฝ”๋“œ๋ฅผ ์•ˆ ๋ณด์ด๊ฒŒ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ

 

๐Ÿ“– float

์š”์†Œ๋ฅผ ํŽ˜์ด์ง€ ์™ผ์ชฝ์ด๋‚˜ ์˜ค๋ฅธ์ชฝ์— ์‚ฝํ™”์ฒ˜๋Ÿผ ๋ฐฐ์น˜ํ•˜๊ณ , ๊ทธ ์ฃผ๋ณ€์œผ๋กœ ์ธ๋ผ์ธ ์š”์†Œ๋“ค์„ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์Œ

float: right;      ๋ธ”๋ก ๋งจ ์˜ค๋ฅธ์ชฝ์— ๋ฐฐ์น˜ํ•˜๊ณ  ๋‚˜๋จธ์ง€ ์ธ๋ผ์ธ๋“ค์ด ์ž๋ฆฌ๋ฅผ ๋น„์ผœ์คŒ
float: left;        ๋ธ”๋ก ๋งจ ์™ผ์ชฝ์— ๋ฐฐ์น˜ํ•˜๊ณ  ๋‚˜๋จธ์ง€ ์ธ๋ผ์ธ๋“ค์ด ์ž๋ฆฌ๋ฅผ ๋น„์ผœ์คŒ

 

๋ธ”๋ก, ์ธ๋ผ์ธ ๋ธ”๋ก, ์ธ๋ผ์ธ ๋น„๊ต

  ๋ธ”๋ก ์ธ๋ผ์ธ๋ธ”๋ก ์ธ๋ผ์ธ
๊ธฐ๋ณธ ํฌ๊ธฐ ์ขŒ์šฐ๋กœ ๊ฝ‰ ์ฐธ ์ฝ˜ํ…ํŠธ์— ๋”ฑ ๋งž๊ฒŒ ์ฝ˜ํ…ํŠธ์— ๋”ฑ ๋งž๊ฒŒ
๋ฐฐ์น˜ ์œ„์—์„œ ์•„๋ž˜๋กœ ๊ธ€ ์“ฐ๋Š” ๋ฐฉํ–ฅ ๊ธ€ ์“ฐ๋Š” ๋ฐฉํ–ฅ
width์™€ height O O X
margin๊ณผ padding O O ์ธ๋ผ์ธ ์ง„ํ–‰ ๋ฐฉํ–ฅ(=๊ฐ€๋กœ)๋งŒ ์ œ๋Œ€๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

 

๐Ÿ”Ž ์„ ํƒ์ž (selector)

๐Ÿ“– ์„ ํƒ์ž ๋ชฉ๋ก (selector list)

์ฝค๋งˆ( , )๋กœ ์„ ํƒ์ž๋ฅผ ์—ฐ๊ฒฐํ•˜๋ฉด ์—ฌ๋Ÿฌ ์„ ํƒ์ž์— ๊ฐ™์€ ๊ทœ์น™์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Œ

์„ ํƒ์ž1,
์„ ํƒ์ž2 {
    ...
}

 

๐Ÿ“– ์„ ํƒ์ž ๋ถ™์—ฌ์“ฐ๊ธฐ

์—ฌ๋Ÿฌ ์กฐ๊ฑด์„ ๋™์‹œ์— ๋งŒ์กฑํ•˜๋Š” ์š”์†Œ๋ฅผ ์„ ํƒํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ

 

html์—์„œ ์—ฌ๋Ÿฌ ํด๋ž˜์Šค ์ž‘์„ฑํ•˜๊ธฐ
<h2 id="mongolia" class="large title">๋ชฝ๊ณจ ๋Œ€์ž์—ฐ์œผ๋กœ ๋– ๋‚˜๋Š” ์—ฌํ–‰</h2>
- ์—ฌ๋Ÿฌ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ๋„์–ด์“ฐ๊ธฐ๋ฅผ ํ•˜๋ฉด ๋จ

css์—์„œ ์—ฌ๋Ÿฌ ์กฐ๊ฑด์„ ๋™์‹œ์— ๋งŒ์กฑํ•˜๋Š” ์š”์†Œ ์„ ํƒํ•˜์—ฌ ์Šคํƒ€์ผ ์ž…ํžˆ๊ธฐ
1. ์•„์ด๋”” + ํด๋ž˜์Šค
#mongolia.title
2. ํด๋ž˜์Šค + ํด๋ž˜์Šค
.large.title
3. ํƒœ๊ทธ + ์•„์ด๋”” + ํด๋ž˜์Šค
h2#mongolia.large.title

 

๐Ÿ“– ์ž์‹ ๊ฒฐํ•ฉ์ž (child combinator)

์˜ค๋ฅธ์ชฝ ๊บพ์‡ ๋กœ ์„ ํƒ์ž๋ฅผ ์ด์–ด์คŒ. 

 

<div class="article">
    <img src="...">
    ...
</div>

๋ถ€๋ชจ ์„ ํƒ์ž article ์•„๋ž˜ ์ž์‹ ์„ ํƒ์ž img๋ฅผ ์„ ํƒํ•˜๋ ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ž์‹ ๊ฒฐํ•ฉ์ž ์‚ฌ์šฉ ๊ฐ€๋Šฅ

.article > img {
   width: 100%;
}

 

๐Ÿ“– ์ž์† ๊ฒฐํ•ฉ์ž (descendant combinator)

์ŠคํŽ˜์ด์Šค(๋„์–ด์“ฐ๊ธฐ)๋กœ ์„ ํƒ์ž๋ฅผ ์ด์–ด์ฃผ๋ฉด ๋จ. ๋ณดํ†ต ์ž์‹ ๊ฒฐํ•ฉ์ž๋ณด๋‹ค ์ž์† ๊ฒฐํ•ฉ์ž๋ฅผ ๋งŽ์ด ์‚ฌ์šฉ. 

 

<div class="article">
    <img src="...">
    ...
</div>

๋ถ€๋ชจ ์„ ํƒ์ž article ์•„๋ž˜ ์ž์† ์„ ํƒ์ž img๋ฅผ ์„ ํƒํ•˜๋ ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ž์† ๊ฒฐํ•ฉ์ž ์‚ฌ์šฉ ๊ฐ€๋Šฅ

.article img {
   width: 100%;
}

 

โ€ป ์ž์‹๊ณผ ์ž์†์˜ ์ฐจ์ด

์ž์‹์€ ๋ถ€๋ชจ ๋ฐ”๋กœ ๋ฐ‘์— ์žˆ๋Š” ์ž์† ํƒœ๊ทธ๋ฅผ ๋งํ•˜๋ฉฐ, ์ž์†์€ ๋ถ€๋ชจ ๋ฐ‘์— ์žˆ๋Š” ๋ชจ๋“  ํ•˜์œ„ ํƒœ๊ทธ๋ฅผ ๋งํ•จ. ๋”ฐ๋ผ์„œ ์ž์† > ์ž์‹์œผ๋กœ ์ž์†์˜ ๋ฒ”์œ„๊ฐ€ ๋” ํผ. ์ฆ‰, ์–ด๋–ค ํƒœ๊ทธ์˜ ๋ชจ๋“  ํ•˜์œ„ ํƒœ๊ทธ์— ์ ์šฉํ•˜๊ณ  ์‹ถ์œผ๋ฉด ์ž์† ์„ ํƒ์ž๋ฅผ, ์–ด๋–ค ํƒœ๊ทธ์˜ ์ž์‹ ํƒœ๊ทธ์—๋งŒ ์ ์šฉํ•˜๊ณ  ์‹ถ์œผ๋ฉด ์ž์‹ ์„ ํƒ์ž๋ฅผ ์‚ฌ์šฉ

 

โ€ป n๋ฒˆ์งธ ์ž์‹ ์„ ํƒ์ž (n-th child selector)

:nth-child() ์‚ฌ์šฉํ•˜์—ฌ ๊ด„ํ˜ธ() ์•ˆ์— ๋ช‡ ๋ฒˆ์งธ ์ž์‹์„ ์„ ํƒํ•  ๊ฒƒ์ธ์ง€ ๋„ฃ์œผ๋ฉด ๋จ. even, odd, 2n ๊ฐ’๋„ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์Œ

์„ธ ๋ฒˆ์งธ ์ž์‹
.gallary :th-child(3)

์ง์ˆ˜ ๋ฒˆ์งธ ์ž์‹
.gallary :nth-child(even)
.gallary :nth-child(2n)

ํ™€์ˆ˜ ๋ฒˆ์งธ ์ž์‹
.gallary :nth-child(odd)
.gallary :nth-child(2n+1)

์ฒซ ๋ฒˆ์งธ ์ž์‹
.gallary :first-child

๋งˆ์ง€๋ง‰ ์ž์‹
.gallary :last-child

 

๐Ÿ“– ๊ฐ€์ƒ ํด๋ž˜์Šค (pseudo-class)

์š”์†Œ์˜ ์ƒํƒœ๋ฅผ ์„ ํƒํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค๋กœ ๋Œ€ํ‘œ์ ์œผ๋กœ :hover (๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ ธ์„ ๋•Œ), :active (ํด๋ฆญํ•œ ์ƒํƒœ), :visited (๋ฐฉ๋ฌธํ•œ ์ ์ด ์žˆ๋Š” ๋งํฌ), :focus (ํฌ์ปค์‹ฑ ๋˜์—ˆ์„ ๋•Œ) ๋“ฑ์ด ์žˆ์Œ. 

 

์˜ˆ. ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ ธ์„ ๋•Œ ๋ฐ‘์ค„์ด ์ƒ๊ธฐ๊ฒŒ ํ•˜๋Š” ์ฝ”๋“œ

a {
    text-decoration: none;
}
a:hover {
    text-decoration: underline;
}

 

๐Ÿ”Ž ์บ์Šค์ผ€์ด๋“œ (cascade)

์ตœ์ข…์ ์œผ๋กœ ์ ์šฉํ•  CSS ์†์„ฑ๋“ค์„ ๊ฒฐ์ •ํ•  ๋•Œ, ๊ณ„๋‹จ์‹ ํญํฌ์ฒ˜๋Ÿผ CSS ๊ทœ์น™์„ ์ˆœ์„œ์— ๋”ฐ๋ผ ํ•ฉ์ณ์„œ ์ ์šฉํ•˜๋Š” ๊ฒƒ. ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ๊ทœ์น™์ผ์ˆ˜๋ก ์šฐ์„ ์ ์œผ๋กœ ์†์„ฑ์„ ์ ์šฉํ•จ.

 

๐Ÿ“– ์บ์Šค์ผ€์ด๋“œ ์ˆœ์„œ

โš™ ์Šคํƒ€์ผ ์‹œํŠธ์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ฅธ ์ˆœ์„œ

์šฐ๋ฆฌ๊ฐ€ ์ž‘์„ฑํ•œ CSS ์Šคํƒ€์ผ ์‹œํŠธ > ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ์Šคํƒ€์ผ์‹œํŠธ (user agent stylesheet)

 

โš™ ์ฝ”๋“œ ์ƒ์˜ ์ˆœ์„œ

์ฝ”๋“œ์—์„œ ์•„๋ž˜์ชฝ์— ์“ด ์ฝ”๋“œ์ผ์ˆ˜๋ก ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์Œ

 

โš™ ๋ช…์‹œ๋„ (specificity)์— ๋”ฐ๋ฅธ ์ˆœ์„œ

๋ช…์‹œ๋„๋ž€ ์•„์ด๋””์˜ ๊ฐœ์ˆ˜, ํด๋ž˜์Šค ๊ฐœ์ˆ˜, ํƒœ๊ทธ ๊ฐœ์ˆ˜๋ฅผ ์ ์–ด ์ ์ˆ˜๋ฅผ ๋น„๊ตํ•œ ๊ฐ’์œผ๋กœ ์ ์ˆ˜๊ฐ€ ๋†’์„์ˆ˜๋ก ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์Œ

a.order {      /* ์•„์ด๋”” 0, ํด๋ž˜์Šค 1, ํƒœ๊ทธ 1 = ๋ช…์‹œ๋„ 0 1 1 */
    ...
}

a#info {      /* ์•„์ด๋”” 1, ํด๋ž˜์Šค, ํƒœ๊ทธ 1 = ๋ช…์‹œ๋„ 1 0 1 */
    ....
}

a#info.order {     /* ์•„์ด๋”” 1, ํด๋ž˜์Šค 1, ํƒœ๊ทธ 1 = ๋ช…์‹œ๋„ 1 1 1 */
    ....
}

 

๐Ÿ“– ์ƒ์†

๋ถ€๋ชจ ํƒœ๊ทธ์— ์ ์šฉ๋œ CSS ๊ทœ์น™์€ ์ž์†์—๊ฒŒ๋„ ์ƒ์†๋จ. ๋ชจ๋“  ์†์„ฑ์ด ์ƒ์†๋˜๋Š” ๊ฑด ์•„๋‹ˆ๊ณ , ์ƒ์†๋˜๋Š” ์†์„ฑ์ด ์ •ํ•ด์ ธ ์žˆ์Œ

๊ฐ€๊นŒ์šด ์กฐ์ƒ์—๊ฒŒ ๋ฌผ๋ ค๋ฐ›์€ ์†์„ฑ์ผ์ˆ˜๋ก ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์Œ

์ƒ์†๋˜๋Š” ์†์„ฑ๋“ค : color, font-family, font-size, font-weight, line-height, text-align, ...