πŸ“ƒ Front-End/CSS

πŸ“ƒ Front-End/CSS

Sass(SCSS)

CSS μ „μ²˜λ¦¬κΈ°λ‘œμ„œ CSS의 ν•œκ³„λ‚˜ 단점을 λ³΄μ™„ν•˜κΈ° μœ„ν•΄ λ§Œλ“€μ–΄μ‘ŒμŠ΅λ‹ˆλ‹€. SASS 에 SCSSκ°€ ν¬ν•¨λ˜μ–΄ μžˆλŠ”λ°, SCSSλŠ” SASS 3번째 λ²„μ „μ—μ„œ μΆ”κ°€λ˜μ—ˆκ³ , SASS의 λͺ¨λ“  κΈ°λŠ₯을 μ§€μ›ν•˜λ©΄μ„œ CSS ꡬ문과 μ™„μ „νžˆ ν˜Έν™˜λ˜λ„λ‘ λ§Œλ“€μ–΄μ‘ŒμŠ΅λ‹ˆλ‹€. μ£Όμš” κΈ°λŠ₯ λ³€μˆ˜ μ„€μ • $ν‘œμ‹œλ₯Ό μ‚¬μš©ν•˜μ—¬ λ³€μˆ˜λͺ…을 지정할 수 μžˆμŠ΅λ‹ˆλ‹€. $hongsi-1: 1; $HONGSI_2 : 2; $hongsi: 'hongsi'; 반볡적으둜 μ‚¬μš©λ˜λŠ” ν°νŠΈλ‚˜ 색상 등을 λ³€μˆ˜λ‘œ 지정해 κ°„λ‹¨ν•˜κ²Œ μ œμ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ·œμΉ™ 문자λ₯Ό 넣을 λ•Œ '' μ‚¬μš© μœ μ˜μ‚¬ν•­ : μ•ŒνŒŒλ²³, -, _, 123 μ‚¬μš© κ°€λŠ₯ λŒ€μ†Œλ¬Έμž ꡬ뢄 숫자둜 λ³€μˆ˜λͺ… μ‹œμž‘ X Nesting(쀑첩) SASSμ—μ„œλŠ” Nesting κΈ°λŠ₯을 μ‚¬μš©ν•΄ μƒμœ„ μ„ νƒμžμ˜ λ°˜λ³΅μ„ ν”Όν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ..

πŸ“ƒ Front-End/CSS

background-img 경둜

ν”„λ‘œμ νŠΈ 진행 쀑 경둜 문제 발견 배경에 이미지λ₯Ό λ„£μ–΄μ•Ό ν•˜λŠ”λ° λœ¨μ§€ μ•Šμ•„μ„œ μ˜€νƒ€μΈκ°€, μ•„λ‹ˆλ©΄ 크기 지정인가 문제λ₯Ό μ°Ύλ‹€κ°€ 경둜 λ¬Έμ œλΌλŠ” 사싀을 μ•Œκ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 경둜 μ„€μ • 방법 μ ˆλŒ€κ²½λ‘œ μ§€μ •λ˜μ–΄ μžˆμ–΄ λ³€κ²½ ν•  수 μ—†λŠ” 경둜 νŽ˜μ΄μ§€ μ•ˆμ— λ‹€λ₯Έ μ„œλ²„μ— μžˆλŠ” μ΄λ―Έμ§€λ‚˜ νŽ˜μ΄μ§€ λ“±μ˜ νŒŒμΌμ„ μ—°κ²° ν•  λ•Œ μ‚¬μš© ν•©λ‹ˆλ‹€. λ°”λ‘œκ°€κΈ° μƒλŒ€κ²½λ‘œ μƒλŒ€μ μœΌλ‘œ λ³€κ²½ 될 수 μžˆλŠ” 경둜 1. ν˜„μž¬ νŒŒμΌμ„ κΈ°μ€€μœΌλ‘œ 동일 μœ„μΉ˜λ‘œ μ—°κ²°λ˜λŠ” 경우 index.html 파일이 μ €μž₯된 μœ„μΉ˜λ₯Ό κΈ°μ€€μœΌλ‘œ background.png νŒŒμΌμ€ λ™μΌν•œ μœ„μΉ˜μ— 있기 λ•Œλ¬Έμ— 파일λͺ…κ³Ό ν™•μž₯자λ₯Ό ν•¨κ»˜ μ“°λ©΄ λ©λ‹ˆλ‹€. 2. ν˜„μž¬ νŒŒμΌμ„ κΈ°μ€€μœΌλ‘œ ν•˜μœ„ ν΄λ”λ‘œ μ—°κ²°λ˜λŠ” 경우 index.html 파일이 μ €μž₯된 μœ„μΉ˜λ₯Ό κΈ°μ€€μœΌλ‘œ logo.png νŒŒμΌμ„ μ°Ύμ•„κ°ˆ 수 μžˆλ„λ‘ κ²½..

πŸ“ƒ Front-End/CSS

CSS μ „μ²˜λ¦¬κΈ°

CSS μ „μ²˜λ¦¬κΈ°λ₯Ό μ‚¬μš©ν•˜λ©΄ 개발적인 μΈ‘λ©΄μ—μ„œ μœ μ§€λ³΄μˆ˜μ„±κ³Ό λ™μΌν•œ μŠ€νƒ€μΌμ„ μ μš©ν•΄μ•Όν•˜λŠ” λŒ€μƒμ„ 보닀 μ‰½κ²Œ 관리할 수 μžˆμŠ΅λ‹ˆλ‹€. CSS μ „μ²˜λ¦¬κΈ°μ˜ μž₯점 μž¬μ‚¬μš©μ„± 곡톡 μš”μ†Œ λ˜λŠ” 반볡적인 ν•­λͺ©μ„ λ³€μˆ˜ λ˜λŠ” ν•¨μˆ˜λ‘œ λŒ€μ²΄ μ‹œκ°„μ  λΉ„μš© κ°μ†Œ μž„μ˜ ν•¨μˆ˜ 및 Built-in(λ‚΄μž₯) ν•¨μˆ˜λ‘œ 인해 개발 μ‹œκ°„μ  λΉ„μš© μ ˆμ•½ μœ μ§€ 관리 쀑첩, 상속과 같은 μš”μ†Œλ‘œ 인해 κ΅¬μ‘°ν™”λœ μ½”λ“œλ‘œ μœ μ§€ 및 관리가 용이 CSS μ „μ²˜λ¦¬κΈ°μ˜ 단점 λΈŒλΌμš°μ €λŠ” CSS만 λ™μž‘ν•˜κΈ° λ•Œλ¬Έμ— μ „μ²˜λ¦¬κΈ°λŠ” 직접 λ™μž‘μ‹œν‚¬ μˆ˜κ°€ μ—†μŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ CSS둜 컴파일 ν›„ λ™μž‘μ‹œμΌœμ•Ό ν•©λ‹ˆλ‹€. CSS μ „μ²˜λ¦¬κΈ° μ’…λ₯˜ Sass Less Stylus μ°Έκ³  MDN, css_preprocessor https://fathory.tistory.com/30 https://kdydesig..

πŸ“ƒ Front-End/CSS

CSS μ• λ‹ˆλ©”μ΄μ…˜κ³Ό JS μ• λ‹ˆλ©”μ΄μ…˜μ˜ 차이점

λ§Žμ€ μ›Ήμ‚¬μ΄νŠΈμ—μ„œ μ• λ‹ˆλ©”μ΄μ…˜ 효과λ₯Ό λΆ€μ—¬ν•  λ•Œ CSS의 transition/animation 속성을 μ‚¬μš©ν•  수 있고 JavaScript의 setInterval()/requestAnimationFrame() 을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ 각각을 μ‚¬μš©ν•  λ•Œμ˜ νŠΉμ§•μ΄ λ‹€λ₯΄κ³  μž₯단점이 λ‹€λ¦…λ‹ˆλ‹€. CSS μ• λ‹ˆλ©”μ΄μ…˜ κ°„λ‹¨ν•˜κ²Œ μ²˜λ¦¬ν•˜λŠ” μ• λ‹ˆλ©”μ΄μ…˜μ˜ 경우 CSS둜 처리 ν•©λ‹ˆλ‹€. transform 의 translate λ₯Ό μ‚¬μš©ν•΄μ„œ κ΅¬ν˜„ν•  수 μžˆλŠ” μ• λ‹ˆλ©”μ΄μ…˜μ„ JavaScript의 style.top κ³Ό style.left 속성을 λ³€ν™” μ‹œν‚€κ²Œ 되면 λΈŒλΌμš°μ € λ Œλ”λ§ κ³Όμ •μ—μ„œ layout μ΄λ‚˜ paint 단계λ₯Ό 거쳐야 ν•  κ²½μš°κ°€ 생길 수 있기 λ•Œλ¬Έμ— μ„±λŠ₯ κ°œμ„ μ— νš¨μœ¨μ μ΄μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. CSS μ• λ‹ˆλ©”μ΄μ…˜ νŠΉμ§• μ™ΈλΆ€ 라이..

πŸ“ƒ Front-End/CSS

Resettingκ³Ό Normalizing CSS

μ›Ή λΈŒλΌμš°μ €λ§ˆλ‹€ 각자의 HTMLμš”μ†Œμ˜ κΈ°λ³Έ μŠ€νƒ€μΌμ„ 가지고 μžˆμŠ΅λ‹ˆλ‹€. CSS μŠ€νƒ€μΌλ§μ„ μ μš©ν• λ•Œ μ΄λŸ¬ν•œ κΈ°λ³Έ μŠ€νƒ€μΌλ§λ“€μ΄ λ°©ν•΄λ₯Ό ν•  λΏλ”λŸ¬, λΈŒλΌμš°μ €λ§ˆλ‹€ λ‹€λ₯Έ HTML μš”μ†Œμ— λŒ€ν•œ κΈ°λ³Έ κ°’ λ•Œλ¬Έμ— μΌμ–΄λ‚˜λŠ” 크둜슀 λΈŒλΌμš°μ§• 을 막기 μœ„ν•΄μ„œ μž…λ‹ˆλ‹€. Reset CSS μ™„μ „νžˆ CSS λ₯Ό 아무것도 μ—†λŠ” λ°±μ§€μ²˜λŸΌ μ΄ˆκΈ°ν™” ν•©λ‹ˆλ‹€. μ£Όμ†Œ : https://meyerweb.com/eric/tools/css/reset/ μž₯점 λ‹€λ₯Έ 뢀뢄에 신경을 쓰지 μ•Šμ•„λ„ λ˜λŠ” μž₯점이 μžˆμŠ΅λ‹ˆλ‹€. -> λͺ¨λ“  것을 resetν•˜κ³  μ‹œμž‘ν•˜κΈ° λ•Œλ¬Έμ— κ³ λ €ν•΄μ•Όν•  λ³€μˆ˜κ°€ μ μŠ΅λ‹ˆλ‹€. 단점 μ μš©λ˜λŠ” μŠ€νƒ€μΌμ΄ ν•˜λ‚˜λ„ μ—†κΈ° λ•Œλ¬Έμ— 였히렀 μ½”λ“œμ˜ 길이가 κΈΈμ–΄μ§ˆ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. λΈŒλΌμš°μ €λŠ” 계속 ν•΄μ„œ μ—…λ°μ΄νŠΈλ˜κ³  μžˆλŠ” 반면, 리셋 CSS의 졜근 μ—…λ°μ΄νŠΈλŠ” 20..

πŸ“ƒ Front-End/CSS

CSS μš°μ„ μˆœμœ„

CSS μš°μ„ μˆœμœ„ 속성 κ°’ 뒀에 !important λ₯Ό 뢙인 속성 HTML μ—μ„œ style을 직접 μ§€μ •ν•œ 속성(inline 방식) #id 둜 μ§€μ •ν•œ 속성 .class 둜 μ§€μ •ν•œ 속성 νƒœκ·Έμ΄λ¦„ 으둜 μ§€μ •ν•œ 속성 μƒμœ„ 객체에 μ˜ν•΄ 상속 된 속성

πŸ“ƒ Front-End/CSS

z-index

z-index 속성은 κ²ΉμΉ˜λŠ” μš”μ†Œμ˜ μŒ“μž„ μˆœμ„œλ₯Ό μ œμ–΄ ν•©λ‹ˆλ‹€. z-index λŠ” position 의 absolute, relative, fixed 일 λ•Œλ§Œ λ™μž‘ν•˜λ©° 음수λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 즉, position: static 이 μ•„λ‹Œ 값을 κ°–λŠ” μš”μ†Œμ—λ§Œ 영ν–₯을 μ€λ‹ˆλ‹€. z-index κ·œμΉ™ position 속성이 μ—†λŠ” νƒœκ·Έλ“€μ€ λ‚˜μ˜€λŠ” μˆœμ„œλŒ€λ‘œ μŒ“μž…λ‹ˆλ‹€. position 속성이 μžˆλŠ” νƒœκ·Έλ“€μ€ μ—†λŠ” νƒœκ·Έλ“€λ³΄λ‹€ μœ„μ— λ‚˜μ˜€λŠ” μˆœμ„œλŒ€λ‘œ μŒ“μž…λ‹ˆλ‹€. position 속성에 z-indexκΉŒμ§€ μžˆλ‹€λ©΄ z-indexκ°€ 큰 νƒœκ·Έκ°€ μœ„μ— μŒ“μž…λ‹ˆλ‹€. z-index이 같은 값일 경우 HTML ꡬ쑰상 μ•„λž˜μΈ 것이 λ¨Όμ € 적용 λ©λ‹ˆλ‹€. z-indexκ°€ 아무리 크더라도 λΆ€λͺ¨ νƒœκ·Έμ˜ z-indexκ°€ 더 μš°μ„ μž…λ‹ˆλ‹€. z-index μ’…λ₯˜ ..

πŸ“ƒ Front-End/CSS

em & rem

μƒλŒ€μ μΈ λ°˜μ‘ν˜• μœ λ‹› 기본적으둜 λΈŒλΌμš°μ €μ—μ„œ HTML에 ν• λ‹Ή λ˜λŠ” 폰트 μ‚¬μ΄μ¦ˆλŠ” 16px μž…λ‹ˆλ‹€. μ‚¬μš©ν•˜λŠ” 이유 ? 폰트 μ‚¬μ΄μ¦ˆλ₯Ό px λ§Œμ„ μ‚¬μš©ν•˜μ—¬ λ‚˜νƒ€λ‚΄λ©΄ μ»¨ν…Œμ΄λ„ˆμ˜ μ‚¬μ΄μ¦ˆκ°€ λ³€κ²½λ˜μ–΄λ„ 컨텐츠가 κ·ΈλŒ€λ‘œ κ³ μ •λœ κ°’μœΌλ‘œ μœ μ§€λ©λ‹ˆλ‹€. λ˜ν•œ, μ‚¬μš©μžκ°€ λΈŒλΌμš°μ €μ—μ„œ 폰트 μ‚¬μ΄μ¦ˆ 섀정을 바꿔도 μ „ν˜€ λ°˜μ‘ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. em νƒ€μ΄ν¬κ·Έλž˜ν”Όμ—μ„œ ν˜„μž¬ μ§€μ •λœ 포인트 μ‚¬μ΄μ¦ˆλ₯Ό λ‚˜νƒ€λ‚΄λŠ” λ‹¨μœ„ μž…λ‹ˆλ‹€. em 의 경우 ν•΄λ‹Ή λ‹¨μœ„κ°€ μ‚¬μš©λ˜κ³  μžˆλŠ” λΆ€λͺ¨μš”μ†Œμ˜ font-size 속성 값이 κΈ°μ€€ μž…λ‹ˆλ‹€. Parent Child .parent{ font-size : 8em; } .child{ font-size : 0.5em; } κ°€μž₯ μœ„μ—μ„œ "기본적으둜 λΈŒλΌμš°μ €μ—μ„œ HTML에 ν• λ‹Ή λ˜λŠ” 폰트 μ‚¬μ΄μ¦ˆλŠ” 16px μž…λ‹ˆλ‹€." 라고 μ„€λͺ… ν–ˆ..

HoHo.dev
'πŸ“ƒ Front-End/CSS' μΉ΄ν…Œκ³ λ¦¬μ˜ κΈ€ λͺ©λ‘