πŸ“„HTML/CSS

1 minute read

λ„μž…

μ—­μ‹œλ‚˜ μ“°λ©΄μ„œ μ΅νžˆλŠ” 것이 μ œμΌμ΄λ‹€. κ·Έλž˜μ„œ μ²΄κ³„μ μœΌλ‘œ μ •λ¦¬ν•˜μ§€λŠ” μ•Šκ³  λ©”λͺ¨μ²˜λŸΌ μΆ”κ°€ν•΄ λ‚˜κ°ˆ μ˜ˆμ •μ΄λ‹€. ν•„μš”μ‹œ κ΅¬κΈ€λ§ν•΄μ„œ μ°Ύκ² μ§€λ§Œ w3school 말고 mdnμ—μ„œ 찾아보기λ₯Ό μΆ”μ²œν•œλ‹€.

HTML

  • <head>: Meta νƒœκ·Έλ‘œμ„œ λ³΄μ΄μ§€λŠ” μ•Šμ§€λ§Œ μ—¬λŸ¬κ°€μ§€λ₯Ό μ„ΈνŒ…ν•  수 μžˆλ‹€. 예λ₯Ό λ“€μ–΄ 검색 엔진에 λ…ΈμΆœλ  컨텐츠λ₯Ό μ •ν•˜λŠ” 일도 κ°€λŠ₯ν•˜λ‹€.
<meta property="og:image" content="~~">  
  • Attibute의 κ°’ 섀정은 true, false 이외에도 enabled둜 μ„€μ •ν•  μˆ˜λ„ μžˆλ‹€. (ex) autoplay="enabled"
  • νƒœκ·ΈλŠ” block νƒ€μž…κ³Ό inline νƒ€μž…μœΌλ‘œ λ‚˜λ‰˜λŠ”λ° block νƒ€μž…μ€ 쀄이 λ„˜μ–΄κ°€κ³  μ˜†μ— μœ„μΉ˜ν•˜μ§€ μ•ŠλŠ”λ‹€. <div>λ‚˜ <p> 같은 νƒœκ·Έλ“€μ΄ 보톡 block νƒ€μž…μ΄λ‹€.
  • Html μž‘μ„±μ‹œ !λ₯Ό 치면 μžλ™μ™„μ„±μœΌλ‘œ 기본폼을 μž‘μ„±ν•  수 μžˆλ‹€.
  • Htmlμ—μ„œ scriptλŠ” <body>의 λ§ˆμ§€λ§‰μ— 넣도둝 ν•œλ‹€. κ·Έλž˜μ•Ό μœ„μ— 넣은 것듀이 λ³€ν™˜λ˜μ–΄ μ μš©λœλ‹€.
  • <input type="submit">처럼 μ†μ„±μœΌλ‘œ μž…λ ₯ 포맷을 μ •ν•  수 μžˆλ‹€.
  • formμ—μ„œ action에 html νŒŒμΌμ„ 적으면 submitλ•Œ μ΄λ™ν•˜κ²Œ 되고 methodλŠ” GETμ΄λ‚˜ POST이닀.

CSS

  • Cascading Style Sheet: Cascading은 μœ„μ—μ„œ μ•„λž˜λ‘œ 흐λ₯Έλ‹€λŠ” λœ»μ΄λ‹€. 즉, μœ„μ—μ„œ μ•„λž˜λ‘œ λΈŒλΌμš°μ €κ°€ μ½μ–΄μ„œ μ μš©ν•œλ‹€λŠ” 뜻이고 κ·Έλž˜μ„œ 같은 속성이 μ—¬λŸ¬κ°œ μžˆμ–΄λ„ 제일 λ§ˆμ§€λ§‰μ— μ •μ˜λœ 녀석이 μ μš©λœλ‹€.

  • CSSλ₯Ό μΆ”κ°€ν•˜λŠ” 방법

    1. Htmlμ•ˆμ—μ„œ μΆ”κ°€ν•˜λ €λ©΄
    2. μ™ΈλΆ€ CSSλ₯Ό link νƒœκ·Έλ‘œ μ—°κ²°ν•œλ‹€(External CSS)

display μ†μ„±μœΌλ‘œ block, inline을 μ„€μ •ν•  수 μžˆλŠ”λ° inline은 width, height등을 κ°€μ§ˆ 수 μ—†λ‹€. κ·Έλž˜μ„œ <div>λ₯Ό inline으둜 바꿔보면 ν™”λ©΄μ—μ„œ μ‚¬λΌμ§€λŠ” 것을 확인할 수 μžˆλ‹€. inline은 쒌우둜만 margin, padding을 κ°€μ§ˆ 수 μžˆλ‹€.

  • margin 속성은 μ‹œκ³„λ°©ν–₯으둜 μœ„, 였λ₯Έμͺ½, μ•„λž˜, μ™Όμͺ½ μˆœμ„œμ΄λ‹€.
  • display: inline-block; λΈ”λ‘μ΄λ©΄μ„œ κ°€λ‘œλ‘œ λ°°μ—΄λœλ‹€. ν•˜μ§€λ§Œ λΉ„μΆ”μ²œμœΌλ‘œ 이런 μš©λ„λΌλ©΄ flexλ₯Ό μ“°μž.

  • Collapsing margin: https://developer.mozilla.org/ko/docs/Web/CSS/CSS_Box_Model/Mastering_margin_collapsing

  • * {속성} μ΄λ ‡κ²Œν•˜λ©΄ λͺ¨λ“  νƒœκ·Έμ— 적용이 κ°€λŠ₯ν•˜λ‹€.
  • height: 100vh;: Viewport height(ν™”λ©΄ 크기)의 100λ°°

  • Pseudo Selector: span:nth-child(3n+2) {…}
  • Combinator
    1. div>span {...}κ³Ό 같은 ν˜•νƒœλŠ” <div>의 μžμ†μ΄ μ•„λ‹Œ μžμ‹μΈ μ—κ²Œ μŠ€νƒ€μΌμ„ μ μš©μ‹œν‚¨λ‹€.
    2. p+span {...}κ³Ό 같은 ν˜•νƒœλŠ” <p>와 같은 μœ„μƒμ˜ λ°”λ‘œ 뒀에 μžˆλŠ” ν˜•μ œμ—κ²Œ μŠ€νƒ€μΌμ„ μ μš©μ‹œν‚¨λ‹€.
    3. 같은 μœ„μƒμ΄λ˜ μ•ˆ λΆ™μ–΄μžˆλ‹€λ©΄ p~span {...}
  • focus-within은 μžμ‹μ΄ 포컀슀 λ˜μ—ˆμ„ λ•Œ λΆ€λͺ¨κ°€ λ°”λ€ŒλŠ” 것이닀. form이 있고 κ·Έ μ•ˆμ— input이 μžˆμ„ λ•ŒλΌλ˜μ§€ λ°˜λŒ€λ„ κ°€λŠ₯ν•˜λ‹€.

μ„ νƒμž 정리

h1 {  
    color : red;  
}  
  • * 전체 μ„ νƒμž : body보닀 넓은 κ°œλ…μ΄λ‹€.
  • - Pseudo-class selector: :둜 ν™•μž₯ν•˜λŠ”κ±Έ κ°€μƒν΄λž˜μŠ€ μ„ νƒμžλΌκ³  ν•œλ‹€.
  • - Pseudo-element selector: ::은 κ°€μƒμš”μ†Œ μ„ νƒμžλΌκ³  ν•œλ‹€.
  • # 아이디 μ„ νƒμž
  • . 클래슀 μ„ νƒμž: μ—¬λŸ¬ 개 μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ‹€.
<h1 class="aaa bbb">  
  • κΈ°λ³Έ 속성 μ„ νƒμž: λŒ€κ΄„ν˜Έ μ•ˆμ— 속성과 값을 λ„£μ–΄ ν•œμ •μ‹œν‚¬ 수 μžˆλ‹€.
input[type=text] {  
    background: red;  
}  
  • 후손 μ„ νƒμž: 말 κ·ΈλŒ€λ‘œ μžμ‹μ„ ν¬ν•¨ν•΄μ„œ 더 ν›„μ†κΉŒμ§€ μ μš©μ‹œν‚¬ 수 μžˆλ‹€.
#header h1 {  
    color:blue;  
}  

(아이디가 header인 νƒœκ·Έμ˜ 후손인 h1 선택)

  • μžμ† μ„ νƒμž: μ„ νƒμžA > μ„ νƒμžB. λ°”λ‘œ μ•„λž˜ μžμ†λ§Œ μ μš©μ‹œν‚¨λ‹€.

  • λ™μœ„ μ„ νƒμž: μ„ νƒμžA + μ„ νƒμžB. λ°”λ‘œ 뒀에 μžˆλŠ” λ™μœ„ νƒœκ·Έμ— μ μš©μ‹œν‚¨λ‹€.

  • λ°˜μ‘μ„ νƒμž
    :active
    :hover

  • μƒνƒœμ„ νƒμž
    :checked
    :focus
    :enabled
    :disabled

  • κ΅¬μ‘°μ„ νƒμž

li:nth-child(2n+1)  
  • 쀑 μ € μˆ˜μ—΄μ— ν•΄λ‹Ήν•˜λŠ” μ• λ“€λ§Œ μ μš©λœλ‹€.
  • 의 μžμ‹μ€‘μ΄ μ•„λ‹ˆλΌ
  • μ€‘μ΄λΌλŠ”κ²ƒμ„ μ£Όμ˜ν•œλ‹€.