Unit6 - [HTML/CSS] ν™œμš©

μ˜ˆμ§„Β·2022λ…„ 8μ›” 29일
0

πŸ”₯ λ ˆμ΄μ•„μ›ƒ

: 각각의 μš”μ†Œλ₯Ό λͺ©μ μ— 맞게 λ°°μΉ˜ν•˜λŠ” 것

1. μ™€μ΄μ–΄ν”„λ ˆμž„(Wireframe)

: μ›Ή λ˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ°œλ°œν•  λ•Œ λ ˆμ΄μ•„μ›ƒμ˜ λΌˆλŒ€λ₯Ό κ·Έλ¦¬λŠ” 단계
μ™€μ΄μ–΄ν”„λ ˆμž„μ„ 보고, μ–΄λ–€ λͺ©μ μ„ 가진 ν”„λ‘œκ·Έλž¨μΈμ§€ μœ μΆ”ν•  수 μžˆλ„λ‘ ν•΄μ•Όν•œλ‹€.

λͺ©μ—…(Mock-up)
: μ‹€λ¬Ό 크기의 λͺ¨ν˜•, μ‹€μ œ μ œν’ˆμ΄ μž‘λ™ν•˜λŠ” λͺ¨μŠ΅κ³Ό λ™μΌν•˜κ²Œ HTML λ¬Έμ„œλ₯Ό μž‘μ„±

2. 화면을 λ‚˜λˆ„λŠ” 방법

HTML κ΅¬μ„±ν•˜κΈ°
μ½˜ν…μΈ μ˜ 흐름은 μ’Œμ—μ„œ 우, μœ„μ—μ„œ μ•„λž˜λ‘œ 흐λ₯Έλ‹€.
CSS둜 화면을 ꡬ뢄할 λ•ŒλŠ” 수직 λΆ„ν• κ³Ό μˆ˜ν‰ 뢄할을 μ°¨λ‘€λŒ€λ‘œ μ μš©ν•˜μ—¬ μ½˜ν…μΈ μ˜ 흐름을 따라 μž‘μ—…μ„ μ§„ν–‰ν•œλ‹€.

  • 수직 λΆ„ν•  : 화면을 수직으둜 κ΅¬λΆ„ν•˜μ—¬, μ½˜ν…μΈ κ°€ κ°€λ‘œλ‘œ 배치될 수 μžˆλ„λ‘ μš”μ†Œ 배치
  • μˆ˜ν‰ λΆ„ν•  : λΆ„ν• λœ 각각의 μš”μ†Œλ₯Ό μˆ˜ν‰μœΌλ‘œ κ΅¬λΆ„ν•˜μ—¬, μ½˜ν…μΈ κ°€ μ„Έλ‘œλ‘œ 배치될 수 μžˆλ„λ‘ μš”μ†Œ 배치

λ ˆμ΄μ•„μ›ƒ 리셋
HTML λ¬Έμ„œλŠ” 기본적인 μŠ€νƒ€μΌμ„ 가지고 μžˆμ–΄, λ•Œλ•Œλ‘œ λ ˆμ΄μ•„μ›ƒμ„ μž‘λŠ”λ° λ°©ν•΄κ°€ λ˜κΈ°λ„ ν•œλ‹€.

* {
	box-sizing: border-box;
	}

body {
	margin: 0;
    padding: 0;
   }

μœ„ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λ©΄ κΈ°λ³Έ μŠ€νƒ€μΌλ§μ„ μ œκ±°ν•˜μ—¬, λ””μžμΈ ν•˜λŠ”λŒ€λ‘œ λ ˆμ΄μ•„μ›ƒ κ΅¬ν˜„ κ°€λŠ₯ν•˜λ‹€.


πŸ”₯ Flexbox

Flexbox둜 λ ˆμ΄μ•„μ›ƒμ„ κ΅¬μ„±ν•œλ‹€λŠ” 것은 λ°•μŠ€λ₯Ό μœ μ—°ν•˜κ²Œ λŠ˜λ¦¬κ±°λ‚˜ 쀄여 λ ˆμ΄μ•„μ›ƒμ„ μž‘λŠ” 방법

1. Flexbox λ”°λΌν•˜κΈ° - 1

Flexbox 속성듀을 ν™œμš©ν•˜λ©΄ μš”μ†Œμ˜ μ •λ ¬, μš”μ†Œκ°€ μ°¨μ§€ν•˜λŠ” 곡간 μ„€μ • κ°€λŠ₯

display: flex
: λΆ€λͺ¨ λ°•μŠ€ μš”μ†Œμ— μ μš©ν•΄, μžμ‹ λ°•μŠ€μ˜ λ°©ν–₯κ³Ό 크기λ₯Ό κ²°μ •ν•˜λŠ” λ ˆμ΄μ•„μ›ƒ ꡬ성 방법

λΆ€λͺ¨ μš”μ†Œμ— μ μš©ν•΄μ•Όν•˜λŠ” Flexbox 속성 (μžμ‹ μš”μ†Œλ“€μ˜ μ •λ ¬κ³Ό κ΄€λ ¨)

  • flex-direction : μ •λ ¬ μΆ• μ •ν•˜κΈ°
    : λΆ€λͺ¨ μš”μ†Œμ— μ„€μ •ν•΄μ£ΌλŠ” 속성, μžμ‹ μš”μ†Œλ“€μ„ μ •λ ¬ν•  μ •λ ¬ 좕을 μ •ν•œλ‹€.
    ( 아무것도 μ„€μ •ν•˜μ§€ μ•ŠμœΌλ©΄ 기본적으둜 κ°€λ‘œ μ •λ ¬ )
    row(κΈ°λ³Έκ°’, β†’), column(↓), row-reverse(←), column-reverse(↑)

  • flex-wrap : 쀄 λ°”κΏˆ μ„€μ •ν•˜κΈ°
    : ν•˜μœ„ μš”μ†Œλ“€λ“€μ˜ 크기가 μƒμœ„ μš”μ†Œμ˜ 크기λ₯Ό λ„˜μœΌλ©΄ μžλ™μœΌλ‘œ 쀄 λ°”κΏˆμ„ ν•  것인지 μ •ν•œλ‹€. ( 섀정해주지 μ•ŠμœΌλ©΄ 쀄 λ°”κΏˆμ„ ν•˜μ§€ μ•ŠλŠ”λ‹€. )
    nowrap(κΈ°λ³Έκ°’), wrap, wrap-reverse

  • justify-content : μΆ• μˆ˜ν‰ λ°©ν–₯ μ •λ ¬
    : μžμ‹ μš”μ†Œλ“€μ„ μΆ•μ˜ μˆ˜ν‰ λ°©ν–₯으둜 μ–΄λ–»κ²Œ μ •λ ¬ν•  것인지 μ •ν•œλ‹€.
    row(κΈ°λ³Έκ°’, ↔), column(↕️)

  • align-items : μΆ• 수직 λ°©ν–₯ μ •λ ¬
    : μžμ‹ μš”μ†Œλ“€μ„ μΆ•μ˜ 수직 λ°©ν–₯으둜 μ–΄λ–»κ²Œ μ •λ ¬ν•  것인지 μ •ν•œλ‹€.
    row(κΈ°λ³Έκ°’, ↕️), column(↔)

2. Flexbox λ”°λΌν•˜κΈ° - 2

μžμ‹ μš”μ†Œμ— μ μš©ν•΄μ•Όν•˜λŠ” Flexbox 속성 (μš”μ†Œκ°€ μ°¨μ§€ν•˜λŠ” 곡간과 κ΄€λ ¨)

flex μ†μ„±μ˜ κ°’

grow (팽창 μ§€μˆ˜) : μš”μ†Œμ˜ 크기가 λŠ˜μ–΄λ‚˜μ•Ό ν•  λ•Œ μ–Όλ§ˆλ‚˜ λŠ˜μ–΄λ‚  것인지
shrink (μˆ˜μΆ• μ§€μˆ˜) : μš”μ†Œμ˜ 크기가 쀄어듀어야 ν•  λ•Œ μ–Όλ§ˆλ‚˜ 쀄어듀 것인지
basis (κΈ°λ³Έ 크기) : λŠ˜μ–΄λ‚˜κ³  μ€„μ–΄λ“œλŠ” 것과 상관없이 μš”μ†Œμ˜ κΈ°λ³Έ ν¬κΈ°λŠ” μ–Όλ§ˆμΈμ§€

flex: 0 1 auto;  /* κΈ°λ³Έ κ°’ */

flex-grow: 0;
flex-shrink: 1;
flex-basis: auto;  /* flex 속성 μ•ˆμ— μ„Έ 가지 값을 ν•œλ²ˆμ— 섀정해주지 μ•Šμ•„λ„ λœλ‹€. */
  • μžμ‹ μš”μ†Œμ— flex 속성을 λ”°λ‘œ 섀정해주지 μ•ŠμœΌλ©΄ 기본값이 μ μš©λœλ‹€.
  • μ™Όμͺ½μ—μ„œ 였λ₯Έμͺ½μœΌλ‘œ μ½˜ν…μΈ μ˜ 크기만큼 λ°°μΉ˜λœλ‹€.

- grow : μ •λ ¬μΆ• λ°©ν–₯으둜 빈 곡간이 μžˆμ„ λ•Œ, 각 μžμ‹ μš”μ†Œλ“€μ΄ μ–Όλ§ˆλ‚˜ λŠ˜μ–΄λ‚˜μ„œ λ‚¨λŠ” 곡간을 차지할 것인지 λΉ„μœ¨μ„ μ •ν•˜λŠ” 것
μžμ‹ μš”μ†Œμ˜ growκ°’ / μžμ‹ μš”μ†Œλ“€μ˜ growκ°’μ˜ 총합 의 λΉ„μœ¨λ‘œ 빈 곡간을 κ°€μ Έκ°„λ‹€.
=> 팽창 μ§€μˆ˜μ˜ μ ˆλŒ€μ  크기가 μ•„λ‹Œ μ΄ν•©μ—μ„œμ˜ λΉ„μœ¨λ‘œ 빈 곡간을 μ°¨μ§€ν•œλ‹€.

- shrink : grow와 λ°˜λŒ€, μ„€μ •ν•œ λΉ„μœ¨λ§ŒνΌ λ°•μŠ€ 크기가 μž‘μ•„μ§„λ‹€.
(λΉ„μœ¨μ΄ 클수둝 더 많이 쀄어든닀,shrink 속성보닀 grow 속성을 μ‚¬μš©ν•˜λŠ” 것을 ꢌμž₯함)
flex-grow μ†μ„±μœΌλ‘œ λΉ„μœ¨μ„ λ³€κ²½ν•  λ•Œ, flex-shrink 속성은 κΈ°λ³Έκ°’μœΌλ‘œ 둬도 λ¬΄λ°©ν•˜λ‹€.

- basis : μžμ‹ λ°•μŠ€κ°€ growλ‚˜ shrink에 μ˜ν•΄ λŠ˜μ–΄λ‚˜κ±°λ‚˜ 쀄어듀기 전에 κ°€μ§€λŠ” κΈ°λ³Έ 크기
( basis 둜 μ„€μ •λœ 크기가 항상 μœ μ§€λ˜λŠ” 것은 μ•„λ‹ˆλ‹€. )
flex-grow μ†μ„±μ˜ 값이 0인 κ²½μš°μ—λ§Œ flex-basis μ†μ„±μ˜ 값이 μœ μ§€

  • width와 flex-basisλ₯Ό λ™μ‹œμ— μ μš©ν•˜λŠ” 경우, flex-basisκ°€ μš°μ„ μ‹œλœλ‹€.

과제. 계산기 λͺ©μ—… λ§Œλ“€κΈ°

=> html, css μ‚¬μš©ν•΄μ„œ μ•„λž˜ 계산기 λͺ©μ—… κ΅¬ν˜„

github repository


μΆ”κ°€ λ‚΄μš©

μ‚¬μš©μž 지정 CSS 속성 μ‚¬μš©ν•˜κΈ° (λ³€μˆ˜)
λ¬Έμ„œ μ „λ°˜μ μœΌλ‘œ μž¬μ‚¬μš©ν•  μž„μ˜μ˜ 값을 λ‹΄λŠ”λ‹€.
μ „μš© ν‘œκΈ°λ²•μ„ μ‚¬μš©ν•΄ μ •μ˜ν•˜κ³  (--main-color: black;),
var() ν•¨μˆ˜ (color: var(--main-color);)λ₯Ό μ‚¬μš©ν•΄ μ ‘κ·Όν•  수 μžˆλ‹€.

- κΈ°λ³Έ μ‚¬μš©λ²•
: 두 개의 λΆ™μž„ν‘œλ‘œ μ‹œμž‘ν•˜λŠ” μ†μ„±μ˜ 이름과 ν•¨κ»˜ μœ νš¨ν•œ CSS값이라면 μ•„λ¬΄κ±°λ‚˜ κ·Έ κ°’μœΌλ‘œ 지정해 μ„ μ–Έν•œλ‹€.

element {
	--main-bg-color : yellow;
}

:root μ˜μ‚¬ ν΄λž˜μŠ€μ— μ„ μ–Έν•΄ HTML λ¬Έμ„œ μ–΄λ””μ„œλ‚˜ μ‚¬μš©μž 지정 속성에 μ ‘κ·Ό κ°€λŠ₯ν•˜λ„λ‘ ꡬ성

:root {
	--main-bg-color: yellow;
}

μ°Έκ³  - MDN μ‚¬μš©μž 지정 CSS 속성 μ‚¬μš©ν•˜κΈ°

profile
😊

0개의 λŒ“κΈ€