Skip to content

Clone page implemented with reference during Yanolja boot camp

Notifications You must be signed in to change notification settings

NamgungJongMin/Yanolja_FE_HTML-CSS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

31 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ–จ"The Armor Bearer" ํŽ˜์ด์ง€ ํด๋ก 

์›๋ณธ ํŽ˜์ด์ง€: https://abtr.co.kr/

ํด๋ก  ํŽ˜์ด์ง€: https://strong-seahorse-4965f1.netlify.app/

๐Ÿ’ป์‚ฌ์šฉ ๊ธฐ์ˆ 

๐Ÿ“ƒํŽ˜์ด์ง€ ๊ธฐ๋Šฅ

1. ์Šคํฌ๋กค ๊ธฐ๋ฐ˜ ์• ๋‹ˆ๋ฉ”์ด์…˜

animation

ํŽ˜์ด์ง€ ์Šคํฌ๋กค๋ง ์‹œ ํ˜„์žฌ window์˜ scrollY ๊ฐ’์„ ์ฝ์–ด ์ง€์ •ํ•œ ์Šคํฌ๋กค ์œ„์น˜์—์„œ ๋ ˆ์ด์•„์›ƒ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์‹คํ–‰


2. hover ๋Œ€์ƒ ๋ณ€ํ™”

hover

๋Œ€์ƒ์—๊ฒŒ ๋งˆ์šฐ์Šค hover์‹œ ์ƒํƒœ๊ฐ€ ๋ณ€ํ™”ํ•˜๋Š” transform ์ ์šฉ


3. ์บ๋Ÿฌ์…€ ์Šฌ๋ผ์ด๋“œ

carousel

index ์บ๋Ÿฌ์…€์˜ ๊ฒฝ์šฐ ๋ฒ„ํŠผ element ์š”์†Œ์˜ dataset์„ ์ฝ์–ด์™€ ๋ณด์ด๊ณ  ์‹ถ์€ ์œ„์น˜์˜ ๊ฐ’์„ ์ง€์ •
๋ฌดํ•œ ์บ๋Ÿฌ์…€ ๊ตฌํ˜„์€ javascript๋กœ ๊ธฐ์กด ์Šฌ๋ผ์ด๋“œ ๋ฐฐ์—ด [1,2,3,4]๋ฅผ [4,1,2,3,4,1]๋กœ ๋ฐฐ์—ดํ•˜๊ณ  ์–‘์ชฝ ๋์— ๊ฐ”์„ ๋•Œ duration ์†์„ฑ๊ฐ’์„ 0์„ ์ฃผ๊ณ  ๋ฐ˜๋Œ€์ชฝ ๊ฐ™์€ ์ธ๋ฑ์Šค๋กœ ๋ฐ”๊พผ๋’ค ์ง€์†ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•˜๋ ค ํ–ˆ์Œ

html/css ๊ณผ์ œ์—์„œ ๊ณผ๋„ํ•œ js์‚ฌ์šฉ์ด๋ผ ํŒ๋‹จ๋˜์–ด html ๋ฌธ์„œ์— ๊ธฐ๋ณธ ์Šฌ๋ผ์ด๋“œ ๋ฐฐ์—ด์„ ๋งˆํฌ์—…ํ•˜๊ณ  ๊ฐ ์Šฌ๋ผ์ด๋“œ๋ฅผ javascript์™€ ์—ฐ๊ฒฐํ•˜์—ฌ ์ด๋™ํ•˜๋Š” ํšจ๊ณผ๋งŒ ๋ƒ„


4. ๋ฐ˜์‘ํ•˜๋Š” ๋ฐฐ๊ฒฝ

bgmove

ํ•ด๋‹น ๋ ˆ์ด์•„์›ƒ์˜ ๋ฐฐ๊ฒฝ์ด๋ฏธ์ง€๊ฐ€ ์Šคํฌ๋กค์˜ ์ƒํƒœ์— ๋”ฐ๋ผ ๋ณ€ํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ
overflow๋ฅผ hidden ์‹œํ‚จ ๋’ค background-attachment: fixed ์™€ background-size: cover๋ฅผ ์ด์šฉํ•ด ๊ตฌํ˜„.


5. ๋ฐ˜์‘ํ˜• ๋””์ž์ธ

rwd

๋ธŒ๋ผ์šฐ์ € width ๊ฐ’์ด ์ง€์ •๋œ width ๊ฐ’๋ณด๋‹ค ์ž‘์•„์งˆ ๊ฒฝ์šฐ flex์™€ Media Query๋ฅผ ์ด์šฉํ•œ ๋ ˆ์ด์•„์›ƒ์˜ ๋ณ€๊ฒฝ
width ๊ฐ’์ด ์ง€์ •ํ•œ ๋งŒํผ ์ž‘์•„์กŒ์„ ๋•Œ header๋ฅผ display: none์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ๋ฉ”๋‰ด ๋ฒ„ํŠผ ์ถ”๊ฐ€
๋ฉ”๋‰ด ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ์ƒˆ๋กœ์šด navigation์ด ํ™œ์„ฑํ™”

๐Ÿ”์ฝ”๋“œ ์ž‘์„ฑ ์‹œ ๊ณ ๋ คํ•œ ์ 

1. CSS ๋ฐฉ๋ฒ•๋ก 

image

sass์˜ ์ค‘์ฒฉ ๊ทœ์น™์„ ํ™œ์šฉํ•˜๋Š”๋ฐ์— ์žˆ์–ด์„œ BEM ๋ฐฉ๋ฒ•๋ก ์ด ๊ต‰์žฅํžˆ ํšจ์œจ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•จ
block ๋ณ„๋กœ ์š”์†Œ ๋‹จ์œ„๋ฅผ ์ชผ๊ฐœ๊ณ  ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์—๋Š” ์ข‹์•˜์ง€๋งŒ ์ž˜๋ชปํ•˜๋‹ค๊ฐ„ ํด๋ž˜์Šค ๋ช…์ด ๋„ˆ๋ฌด ๊ธธ์–ด์งˆ ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์—ฌ ๋ชป์ผ๋˜ ์ ๋„ ์žˆ์Œ
'์œ ์ง€๋ณด์ˆ˜๋ฉด์—์„œ ํšจ์œจ์ ์ธ ์ฝ”๋“œ๊ฐ€ ๋ฌด์—‡์ผ๊นŒ'๋ผ๋Š” ๊ณ ๋ฏผ์„ ํ•˜๊ฒŒ ๋˜์—ˆ๊ณ  ์กฐ๋งŒ๊ฐ„ ์ƒ๊ฐํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜์—ฌ ํฌ์ŠคํŒ… ํ•  ์˜ˆ์ •

2. ์›น ์ ‘๊ทผ์„ฑ

image

์›น ์‚ฌ์ดํŠธ๋ฅผ ์ด์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์Šคํฌ๋ฆฐ๋ฆฌ๋” ๊ธฐ๋Šฅ์— ์˜์ง€ํ•  ๋•Œ ํ˜„์žฌ ๋ฌด์Šจ ๋ถ€๋ถ„์„ ํ™•์ธํ•˜๊ณ  ์žˆ๋Š”์ง€๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๊ธฐ๋Šฅ
accessibility hidden style์„ ์ด์šฉํ•˜์—ฌ ์‹œ๊ฐ์ ์œผ๋กœ ๋ณด์ด์ง€๋Š” ์•Š์ง€๋งŒ ์Šคํฌ๋ฆฐ๋ฆฌ๋”๊ฐ€ ๋ฌธ์žฅ์„ ์ฝ์–ด์ฃผ๊ฒŒ ๋จ.

image

๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ) ๋””์ž์ธ์ ์ธ ์š”์†Œ๋กœ ๋„ฃ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์Šคํฌ๋ฆฐ๋ฆฌ๋” ์‚ฌ์šฉ์ž์—๊ฒŒ ์ฝ์–ด์ค„ ํ•„์š”๊ฐ€ ์—†๋Š” ์š”์†Œ๋Š” WAI-ARIA๋ฅผ ์‚ฌ์šฉ

image

javascript ์ž‘์„ฑ ์‹œ์—๋„ ๊ฐ€์ ธ์˜จ DOM ์š”์†Œ๊ฐ€ ๋น„ํ™œ์„ฑํ™” ์ƒํƒœ๋กœ toggleํ•ด์ค„ ๋•Œ ariaHidden ํ”„๋กœํผํ‹ฐ์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ด์คŒ

3. Mixin

image

Sass์˜ ๋งค์šฐ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์ด์ž ์ฝ”๋“œ์˜ ์ปดํฌ๋„ŒํŠธํ™”๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๊ธฐ๋Šฅ
์ค‘๋ณต ์ฝ”๋“œ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ  ์ฝ”๋“œ์˜ ์œ ์ง€ ๋ณด์ˆ˜์„ฑ์„ ๋งค์šฐ ๋†’์—ฌ์ฃผ๋Š” ์—„์ฒญ๋‚œ ๊ธฐ๋Šฅ

๋‹ค๋งŒ ํ•œ๊ฐœ์˜ ํŽ˜์ด์ง€๋ฅผ ํ•˜๋Š” ์ด๋ฒˆ ๊ณผ์ œ ๊ฐ™์€ ๊ฒฝ์šฐ ๊ทธ ํšจ์œจ์„ฑ์— ๋Œ€ํ•œ ์ฒด๊ฐ๋ณด๋‹ค๋Š” ์„ค์ • ๋‹จ๊ณ„์—์„œ์˜ ๋ฒˆ๊ฑฐ๋กœ์›€์ด ๋” ํฌ๊ฒŒ ๋А๊ปด์ง„๋‹ค.

4. ์›น ์„ฑ๋Šฅ

1) Style ์ตœ์ ํ™”

๋ Œ๋”๋ง ๊ณผ์ •์—์„œ์˜ ์ž์› ํšจ์œจ์„ฑ์„ ์ƒ๊ฐํ•˜์—ฌ ๋” ์ ํ•ฉํ•œ ๋ฐฉ๋ฒ•์„ ์„ ํƒ

  • ์ ˆ๋Œ€์ขŒํ‘œ์˜ ๊ฐ’์€ ๋ ˆ์ด์•„์›ƒ ๋‹จ๊ณ„์˜ ๋ณ€ํ™”. Reflow์™€ Repaint ๋ฐœ์ƒ
  • translate() ํ•จ์ˆ˜๋Š” composite ๋ ˆ์ด์–ด์—์„œ ๋ณ€ํ™”๊ฐ€ ์žˆ์–ด Reflow์™€ Repaint๋Š” ์‹คํ–‰ํ•˜์ง€ ์•Š์Œ

๊ทธ๋Ÿฌ๋‚˜ ๋ ˆ์ด์•„์›ƒ ์ดˆ๊ธฐ๊ฐ’ ์„ค์ •์—์„œ transform์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ถˆํ•„์š”ํ•œ ์ž์›์„ ์†Œ๋ชจํ•˜๊ธฐ ๋•Œ๋ฌธ์—
์• ๋‹ˆ๋ฉ”์ด์…˜ ํšจ๊ณผ์˜ ๋ชฉ์ ์ผ ๋•Œ๋Š” translate() ํ•จ์ˆ˜ ์‚ฌ์šฉ, ์ดˆ๊ธฐ๊ฐ’ ์„ค์ •์—์„œ๋Š” ์ ˆ๋Œ€์ขŒํ‘œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐ

2) ์ด๋ฏธ์ง€ ์ตœ์ ํ™”

๋ Œ๋”๋ง ๊ณผ์ •์—์„œ ๋งŽ์€ ์ž์› ์†Œ๋ชจ๊ฐ€ ์ผ์–ด๋‚˜๋Š” ๊ฒƒ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ
sprite image๋ฅผ ์ƒ์„ฑํ•˜๊ณ  background-position ๊ฐ’์„ ์„ค์ •ํ•˜์—ฌ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์›น ์„ฑ๋Šฅ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Œ

๐Ÿ””LightHouse

image

๐Ÿ˜ƒ๋А๋‚€์  & ๐Ÿ˜“๋ฐ˜์„ฑํ•  ์ 

๋ญ”๊ฐ€ ์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์› ๋˜ ๊ฒƒ๋“ค์„ ์ „๋ถ€ ์‚ฌ์šฉํ•ด์„œ ๋งŽ์€ ๊ฒƒ์„ ํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ ๋ง‰์ƒ ์‹ค์ „์— ๋“ค์–ด๊ฐ€๋‹ˆ ๋ง‰ํžˆ๋Š” ๊ฒƒ์ด ๋งŽ์•˜๋‹ค. ๋ง‰ํž ๋•Œ๋งˆ๋‹ค ๊ตฌ๊ธ€๋ง์„ ํ†ตํ•ด ํ™•์ธํ•˜๊ณ  ์—ฌ๋Ÿฌ ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ๊ฑฐ์น˜๊ฒŒ ๋˜๋ฉด์„œ ๊ณ„ํšํ–ˆ๋˜ ๊ทธ๋‚ ์˜ ์‹œ๊ฐ„๋“ค์ด ๋ชจ์กฐ๋ฆฌ ๊นจ์ง€๋Š” ๊ฒƒ์„ ๋ณด๋ฉด์„œ ๋‹จ์ˆœ ๊ฐ•์˜๋ฅผ ๋ณด๊ณ  ๋ฐฐ์šฐ๋Š” ๊ฒƒ๋ณด๋‹ค ์‹ค์ œ๋กœ ๋‚ด๊ฐ€ ๊ณ ๋ฏผํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ณธ ์ฝ”๋“œ๋“ค์ด ๋‚ด ์‹ค๋ ฅ์œผ๋กœ ๋‚จ๋Š”๋‹ค๋Š” ๊ฒƒ์„ ๋А๋ผ๊ฒŒ ๋˜์—ˆ๋‹ค.

Sass๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ mixin์„ ์‹ค์ œ๋กœ ์จ๋ณด๋‹ˆ ์–ด๋–ค ์ฝ”๋“œ๊นŒ์ง€๋ฅผ ์ค‘๋ณต์œผ๋กœ ํŒ๋‹จํ•ด์•ผ ํ• ์ง€ ๋ชฐ๋ผ์„œ ๊ณ ๋ฏผํ•˜๋ฉฐ ์‹œ๊ฐ„์„ ๋ณด๋‚ด๊ธฐ๋„ ํ–ˆ๊ณ , html์˜ ์ ‘๊ทผ์„ฑ์„ ๊ณต๋ถ€ํ•˜๊ณ  ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์งค ๋•Œ ํ•ญ์ƒ ์ƒ๊ฐํ•˜๊ณ  ์ž‘์„ฑํ–ˆ์ง€๋งŒ ์‹ค์ œ ์ž๋™ ๊ฐ์‚ฌ ๋„๊ตฌ์—์„œ๋Š” ์•ˆ์ข‹์€ ์ ์ˆ˜๋ฅผ ๋งž๊ธฐ๋„ ํ–ˆ๋‹ค. ๋˜ํ•œ sprite-image์˜ ํ™œ์šฉ์ด๋‚˜ ๊ธฐํš์— ๊ธฐ๋ฐ˜ํ•œ style ์ž‘์„ฑ ๋“ฑ ์ดˆ๊ธฐ์— ๊ณ„ํšํ–ˆ๋˜ ๊ฒƒ๋“ค๊ณผ ์‹ค์ œ ๋‚ด๊ฐ€ ํ–‰ํ•œ 5์ผ์€ ๋งŽ์€ ์ฐจ์ด๊ฐ€ ์žˆ์—ˆ๋‹ค. sprite-image๋Š” ์ดํ•ด๊ฐ€ ๋ถ€์กฑํ•˜์—ฌ ์ถฉ๋ถ„ํžˆ ํ™œ์šฉํ•˜์ง€ ๋ชปํ–ˆ๊ณ , Media Query ๊ฐ™์€ ๊ฒฝ์šฐ์—๋„ ์ฒ˜์Œ ๊ธฐํšํ•œ ์ฝ”๋“œ ๊ตฌ์„ฑ๊ณผ ๊ฑฐ๋ฆฌ๊ฐ€ ๋„ˆ๋ฌด ๋ฉ€์—ˆ๋‹ค. ์‹œ๊ฐ„์— ์ซ“๊ธฐ๊ณ  ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ๋ฐ˜๋ณตํ•˜๋‹ค ๋ณด๋‹ˆ ๋งˆ์Œ์ด ๊ธ‰ํ•ด์กŒ๊ณ , ์ฝ”๋“œ ๋˜ํ•œ ๊ธฐํš๊ฐ€ ๋‹ฌ๋ฆฌ ์ ์  ์ง€์ €๋ถ„ํ•ด์ ธ๊ฐ”๋‹ค. ๊ฒฐ๊ตญ ์ค‘์š”ํ•œ๊ฑด ๊ฒฝํ—˜๊ณผ ์‹ค๋ ฅ์ด๊ณ  ๊ทธ๊ฒƒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ข€๋” ํ˜„์‹ค์ ์ด๊ณ  ์™„์ „ํ•œ ๊ธฐํš์„ ํ•˜๊ณ  ์ฝ”๋“œ ์ž‘์„ฑ์„ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ๋”์šฑ ์—ด์‹ฌํžˆ ํ•ด๋‚˜๊ฐ€์•ผ๊ฒ ๋‹ค.

์˜์™ธ๋กœ ์‹œ๊ฐ„์„ ๋งŽ์ด ์†Œ๋ชจํ•˜๊ฒŒ ๋œ ๊ฒƒ์ด ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ตฌ์กฐ๋‚˜ ํ•œ/์˜ font-face ๊ตฌ๋ณ„๊ณผ ๊ฐ™์€ ์ดˆ๊ธฐ ์„ธํŒ… ๊ด€๋ จํ•œ ๋ถ€๋ถ„์ด์—ˆ๋Š”๋ฐ ๋‹ค์‹œ ํ•œ๋ฒˆ ์ฒ ์ €ํ•œ ๊ธฐํš์˜ ์ค‘์š”์„ฑ์„ ๊นจ๋‹ซ๋Š” ๊ณ„๊ธฐ๊ฐ€ ๋˜์—ˆ๋‹ค.

About

Clone page implemented with reference during Yanolja boot camp

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published