๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ‘ฉ‍๐Ÿ’ป ๊ฐœ๋ฐœ ๊ณต๋ถ€/ํ•œ๊ฒฝxํ† ์Šค ๋ถ€ํŠธ์บ ํ”„(Fullstack)

[ํ•œ๊ฒฝxToss] 3์ฃผ์ฐจ ์š”์•ฝ : CSS ์ค‘๊ธ‰ ๋ฐ Javascript

728x90

 

* ๊ฐœ์ธ์˜ ํ•™์Šต ๋‚ด์šฉ ๊ธฐ๋ก ์ค‘, ๊ทนํžˆ ์ผ๋ถ€์˜ ๋‚ด์šฉ๋งŒ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

3์ฃผ์ฐจ ์‹ค์Šต


CSS ์ค‘๊ธ‰

 

์ด๋ฏธ์ง€ ์ž˜๋ผ์„œ ๋ฐฐ๊ฒฝ์œผ๋กœ ์“ฐ๊ธฐ : background-position

๊ฐ€์ƒ์š”์†Œ ์„ ํƒ์ž before/after

 

li ๊ฐ€๋กœ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ

list-style: none;
display:inline-block;
padding: 10px;

 

๋ณ€ํ™˜ํšจ๊ณผ - transition ์†์„ฑ

 

์†์„ฑ ์ข…๋ฅ˜

transition-delay : ์ง€์—ฐ์‹œ๊ฐ„

  • duration : ๋ณ€ํ™˜์‹œ๊ฐ„
  • property : ๋Œ€์ƒ ์†์„ฑ
  • timing-function : ๋ณด๊ฐ„ ํƒ€์ž… (์ธํ„ฐํด๋ ˆ์ด์…˜, ์‹œ๊ฐ„์˜ ๊ฐ„๊ฒฉ์„ ์ฑ„์›€)

cubic-bezier()

๋ฐฐ์ง€์–ด ๊ณก์„  - ์ˆ˜ํ•™์ž ๋ฒ ์ง€์–ด๊ฐ€ ์ œ์•ˆํ•œ ๋‘ ์ ๋งŒ์œผ๋กœ ๊ณก์„ ์„ ์ •์˜ํ•˜๋Š” ๊ณต์‹

๋ณ€ํ˜• ์†์„ฑ - transform ์†์„ฑ

 

CSS ์ดˆ๊ธฐํ™” ์ฝ”๋“œ

: Eric Meyer’s CSS Reset

/* http://meyerweb.com/eric/tools/css/reset/ */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, 
p, blockquote, pre, a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var,
b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, 
embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, 
section, summary, time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
    display: block;
}
body {
    line-height: 1;
}
ol, ul {
    list-style: none;
}
blockquote, q {
    quotes: none;
}
blockquote:before, blockquote:after, q:before, q:after {
    content: '';
    content: none;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}

์ˆ˜ํ‰/์ˆ˜์ง์ •๋ ฌ (align)

ํ•˜์œ„์š”์†Œ ์ค‘์•™์ •๋ ฌ

display: flex;
justify-content: center;
align-items: center;

 

๋ฐ˜์‘ํ˜• ์›น - ๋ฏธ๋””์–ด์ฟผ๋ฆฌ ์†์„ฑ

 

Flex : ์˜์—ญ ๋ถ„๋ฐฐํ•˜๊ธฐ (๋น„์œจ)

 

@media

 

๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค

  • ์›น๋ธŒ๋ผ์šฐ์ €์— ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ๋‚˜์˜ฌ๋•Œ
  • ํ‘œ์ค€ํ™”๊ฐ€ ์™„๋ฃŒ๋˜๊ธฐ ์ „ ์ค‘๊ฐ„๋‹จ๊ณ„๋กœ vender prefix(์ ‘๋‘์–ด)๋ฅผ ์ œ๊ณตํ•จ

๋ธŒ๋ผ์šฐ์ € ๊ณ ๋ ค ์‚ฌํ•ญ 4๊ฐ€์ง€ : ํฌ๋กฌ, ์—ฃ์ง€, ์‚ฌํŒŒ๋ฆฌ, ํŒŒ์ด์–ดํญ์Šค

 

๋ธŒ๋ผ์šฐ์ € ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค ์˜ˆ์‹œ

Chrome, Safari -webkit- -webkit-transform

Firefox -moz- -moz-border-radius

Internet Explorer -ms- -ms-user-select


Lorem ๊ฟ€ํŒ :

  loerm5 ์ž…๋ ฅ ์‹œ 5๊ฐœ ๋‹จ์–ด๊ฐ€ ์ƒ์„ฑ๋จ - ๋‹จ์–ด ์ˆ˜ ์ง€์ • ๊ฐ€๋Šฅ

  lorem*2 ์ž…๋ ฅ ์‹œ lorem ๋ฌธ์žฅ 2๊ฐœ๊ฐ€ ์ƒ์„ฑ๋จ - ๋ฌธ์žฅ ๊ฐฏ์ˆ˜ ์ง€์ • ๊ฐ€๋Šฅ

 

Emmet

(= Zen Coding)

VSCode Emmet ๋ฌธ๋ฒ•์€ HTML, CSS ๋“ฑ์˜ ์ฝ”๋“œ๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ๊ธฐ๋Šฅ.

Emmet์€ ์ถ•์•ฝ๋œ ๋ฌธ๋ฒ•์„ ํ†ตํ•ด ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋ฉฐ, VSCode์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Œ

 

Tailwind CSS

html์„ ๋– ๋‚˜์ง€ ์•Š๊ณ  ๋น ๋ฅด๊ฒŒ ๋นŒ๋“œํ•˜๋Š” CSS ํ…œํ”Œ๋ฆฟ

 

 

์–ด๋ ค์šด ๊ฒƒ) ํ…Œ์ผ์œˆ๋“œ์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ rem ๋‹จ์œ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์ด๊ฒŒ ๋˜๊ฒŒ ์ถ”์ƒ์ ์ด๋ผ ..
%๋‚˜ px ๋‹จ์œ„๊ฐ€ ํŽธํ•ด์„œ ๊ฑฐ์˜ ์•ˆ์“ธ ๊ฒƒ ๊ฐ™๊ธดํ•œ๋ฐ ๊ทธ๋ž˜๋„ ์จ๋ณด๋ฉด์„œ ์ตํ˜€์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค.

 

 

 

md(๋ฏธ๋””์–ด์ฟผ๋ฆฌ, ๋ฐ˜์‘ํ˜•)

Breakpoint prefix   Minimum width CSS

sm   640px   @media (min-width: 640px) { ... }

md   768px   @media (min-width: 768px) { ... }

lg   1024px   @media (min-width: 1024px) { ... }

xl   1280px   @media (min-width: 1280px) { ... }

2xl   1536px   @media (min-width: 1536px) { ... }


daisyUI

  • Tailwind CSS๋ฅผ ํ™•์žฅํ•˜๋Š” UI ์ปดํฌ๋„ŒํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • ๋ฏธ๋ฆฌ ์„ค๊ณ„๋œ UI ์š”์†Œ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ์Šคํƒ€์ผ๋ง๋œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ

 

JavaScript

 

๊ณต์‹๋ช…์นญ์€ ECMA Script

Java์™€ JavaScript๋Š” ์•„์˜ˆ ๋‹ค๋ฆ„

ES6(ECMA Script 6)์—์„œ ์–ธ์–ด์ ์œผ๋กœ ์™„์„ฑ๋จ.

 

ํŠน์ง•

: ์›น๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง€์›ํ•˜๋Š” ์œ ์ผํ•œ ์–ธ์–ด

: ๊ณผ๊ฑฐ Basic์–ธ์–ด : ๊ตฌ๊ธ€์—์„œ JS V8 ์—”์ง„์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ , ์˜คํ”ˆ ์†Œ์Šค๋กœ ๋ฐฐํฌ

 

JS๋ฅผ ์„ ์–ธํ•˜๋Š” 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•

  1. scriptํƒœ๊ทธ์•ˆ์—์„œ - head,bodyํƒœ๊ทธ
  2. htmlํƒœ๊ทธ ์†์„ฑ์œผ๋กœ - onclick,href
  3. ๋ณ„๋„์˜ jsํŒŒ์ผ import / linkํ•ด์„œ

js ๋ณ€์ˆ˜ ์„ ์–ธ : var, let, const

  1. var : ๋ณ€์ˆ˜, ๊ฐ™์€์ด๋ฆ„ ์žฌ์„ ์–ธ ๊ฐ€๋Šฅ, ํƒ€์ž… ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
  2. let : ๋ณ€์ˆ˜, ์ตœ๊ทผ์— ์ถ”๊ฐ€๋จ(ES6), ๊ฐ™์€์ด๋ฆ„ ์žฌ์„ ์–ธ ๋ถˆ๊ฐ€
  3. const : ์ƒ์ˆ˜

 

JavaScript๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋™๊ธฐ ์–ธ์–ด (์ˆœ์ฐจ ์‹คํ–‰)

ํ•˜์ง€๋งŒ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง€์› (์ด๋ฒคํŠธ ๋ฃจํ”„, ์ฝœ๋ฐฑ ํ•จ์ˆ˜, ํ”„๋กœ๋ฏธ์Šค(Promise), async/await ๋“ฑ์„ ์ œ๊ณต)

 

ํ˜•๋ณ€ํ™˜

NaN (Not a Number)

์—ฐ์‚ฐ์ž

์—ฐ์‚ฐ์ž์˜ ์šฐ์„ ์ˆœ์œ„ : ์—ฐ์‚ฐ์ž๊ฐ€ ํ•œ ์ค„์— ์žˆ์„ ๋•Œ, ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ์ˆœ์ฐจ์  ์—ฐ์‚ฐ ์ง„ํ–‰

(๋‹จํ•ญ > ์ดํ•ญ > ์‚ผํ•ญ > ๋Œ€์ž…)


๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž

์กฐ๊ฑด๋ฌธ - if/switch

 

๋Š๋‚€์  :
์นœ๊ตฌ์˜ ์ฝ”๋“œ๋ฅผ ํ•œ๋ฒˆ ๋ดค๋Š”๋ฐ ์•„๋ฌด๋ž˜๋„ ์ฝ”๋”ฉ์„ ์›๋ž˜ ํ•˜๋˜ ์‚ฌ๋žŒ๋“ค์ด๋‹ค๋ณด๋‹ˆ ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์ธ๋ฐ๋„ ์ฝ”๋“œ๊ฐ€ ์ •๋ง ๋‹ฌ๋ž๋‹ค.
์ด๊ฒŒ ๋ฐ”๋กœ ํ”ํžˆ ๋งํ•˜๋Š” ์ฝ”๋”ฉ ์Šคํƒ€์ผ์ธ๊ฐ€ …
์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•  ๋•Œ, ์„  ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋กœ returnํ•˜์—ฌ ๋กœ์ง์„ ์ตœ๋Œ€ํ•œ ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“œ๋Š”๊ฒŒ ์ •์„์ด๊ณ 
๊ทธ ๋’ค์—๋Š” if๋ฅผ ์“ฐ๊ฑฐ๋‚˜ ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ์“ฐ๊ฑฐ๋‚˜ ์ทจํ–ฅ ์ฐจ์ด์ธ ๋Š๋‚Œ

 

Random ํ•จ์ˆ˜

- 0 ์ด์ƒ N ๋ฏธ๋งŒ์˜ ์ •์ˆ˜

    Math.floor(Math.random() * N);

  • floor : ์ˆซ์ž ๋‚ด๋ฆผ (์†Œ์ˆซ์  ๋ฒ„๋ฆผ)
  • random : 0.0 ~ 0.999999 ๊นŒ์ง€์˜ ์ž„์˜ ์ˆ˜ ๋ฐœ์ƒ

- 1 ์ด์ƒ 10 ์ดํ•˜์˜ ์ •์ˆ˜

    → Math.floor(Math.random() * 10)+1;

 

๋ฐ˜๋ณต๋ฌธ  - for, while, do-while

๋น„๊ต์—ฐ์‚ฐ์ž

Break/Continue

728x90