λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
CSS

css μ„ νƒμž, κΈ°λ³Έ μ„ νƒμž, 볡합 μ„ νƒμž, 가상 클래슀, 가상 μš”μ†Œ ::before, ::after, 속성 μ„ νƒμž

by HAPPYRIN 2023. 8. 9.

css μ„ νƒμž

- κΈ°λ³Έ, 볡합, 가상 클래슀, 가상 μš”μ†Œ, 속성

- μ„ νƒμžλŠ” λ’€μ—μ„œλΆ€ν„° 해석해주면 이해가 쉽닀

 

1. κΈ°λ³Έ μ„ νƒμž

  • * 전체 μ„ νƒμž : λͺ¨λ“  μš”μ†Œλ₯Ό 선택
  • abc νƒœκ·Έ μ„ νƒμž : νƒœκ·Έ 이름이 abc인 μš”μ†Œ 선택
  • .abc 클래슀 μ„ νƒμž : html class μ†μ„±μ˜ 값이 abc인 μš”μ†Œ 선택
  • #abc 아이디 μ„ νƒμž : html id μ†μ„±μ˜ 값이 abc인 μš”μ†Œ 선택

κΈ°λ³Έ μ„ νƒμžλŠ” ν•΄λ‹Ή μˆœμ„œλŒ€λ‘œ κΈ°μ–΅ν•˜κΈ°! 

 

2. 볡합 μ„ νƒμž

  • abcxyz 일치 μ„ νƒμž : μ„ νƒμž abc와 xyzλ₯Ό λ™μ‹œμ— λ§Œμ‘±ν•˜λŠ” μš”μ†Œ 선택
  • abc > xyz μžμ‹ μ„ νƒμž : μ„ νƒμž abc의 μžμ‹ μš”μ†Œ xyz 선택
    ex) ul > .orange { }
  • abc xyz ν•˜μœ„(후손) μ„ νƒμž : μ„ νƒμž abc의 ν•˜μœ„ μš”μ†Œ xyz 선택, '띄어쓰기'κ°€ μ„ νƒμžμ˜ κΈ°ν˜Έμ΄λ‹€.
  • abc + xyz 인접 ν˜•μ œ μ„ νƒμž : μ„ νƒμž abc의 λ‹€μŒ ν˜•μ œ μš”μ†Œ xyz ν•˜λ‚˜λ₯Ό 선택, 같은 λΆ€λͺ¨λ₯Ό κ³΅μœ ν•˜λŠ” μš”μ†Œ
  • abc ~ xyz 일반 ν˜•μ œ μ„ νƒμž : μ„ νƒμž abc의 λ‹€μŒ ν˜•μ œ μš”μ†Œ xyz λͺ¨λ‘λ₯Ό 선택

3. 가상 클래슀 μ„ νƒμž(1)

μ–΄λ– ν•œ 행동을 ν–ˆμ„λ•Œ λ– μ˜€λ₯΄λŠ” λ™μž‘

  • abc:hover : μ„ νƒμž abc μš”μ†Œμ— 마우슀 μ»€μ„œκ°€ μ˜¬λΌκ°€ μžˆλŠ” λ™μ•ˆ 선택
  • abc:active : μ„ νƒμž abc μš”μ†Œμ— 마우슀λ₯Ό ν΄λ¦­ν•˜κ³  μžˆλŠ” λ™μ•ˆ 선택
  • abc:focus : μ„ νƒμž abc μš”μ†Œκ°€ 포컀슀 되면 선택
    focusκ°€ κ°€λŠ₯ν•œ μš”μ†Œμ—λ§Œ μ‚¬μš©μ΄ κ°€λŠ₯함
    focusκ°€ 될 수  μžˆλŠ” μš”μ†ŒλŠ” html λŒ€ν™”ν˜• μ½˜ν…μΈ κ°€ ν•΄λ‹Ήλœλ‹€. input, a, button, label, select λ“± μ—¬λŸ¬ μš”μ†Œκ°€ 있고 html λŒ€ν™”ν˜• μ½˜ν…μΈ  μš”μ†Œκ°€ μ•„λ‹ˆλ”λΌλ„ tabindex 속성을 μ‚¬μš©ν•œ μš”μ†Œλ„ focusκ°€ 될 수 μžˆλ‹€.
    tabindex = "" : 속성을 톡해 focusκ°€ 될 수 μžˆλŠ” μš”μ†Œλ₯Ό λ§Œλ“€ 수 μžˆλ‹€. μ΄λ¦„μ—μ„œλ„ μ•Œ 수 μžˆλ“―μ΄ tabν‚€λ₯Ό μ‚¬μš©ν•΄ focus ν•  수 μžˆλŠ” μˆœμ„œλ₯Ό μ§€μ •ν•˜λŠ” μ†μ„±μœΌλ‘œ μˆœμ„œ(κ°’)둜 -1이 μ•„λ‹Œ λ‹€λ₯Έ 값을 λ„£λŠ” 것은 논리적 흐름을 λ°©ν•΄ν•˜κΈ° λ•Œλ¬Έμ— ꢌμž₯ν•˜μ§€ μ•ŠλŠ”λ‹€.
    https://developer.mozilla.org/ko/docs/Web/HTML/Content_categories

3. 가상 클래슀 μ„ νƒμž(2)

  • abc:first-child : μ„ νƒμž abcκ°€ ν˜•μ œ μš”μ†Œ 쀑 첫째라면 선택
  • abc:last-child : μ„ νƒμž abcκ°€ ν˜•μ œ μš”μ†Œ 쀑 막내라면 선택
  • abc:nth-child(n) : μ„ νƒμž abcκ°€ ν˜•μ œ μš”μ†Œ 쀑 (n)째라면 선택
    .fruit *:nth-child(2n) 짝수 번째
    .fruit *:nth-child(2n+1) ν™€μˆ˜ 번째
    .fruit *:nth-child(n+2) 2번째 μš”μ†ŒλΆ€ν„°.. μ‹œμž‘, 2번째 μš”μ†Œ 이후 μ‹œμž‘
    n은 0λΆ€ν„° μ‹œμž‘ν•œλ‹€! (zero-base numbering)
  • abc:not(xyz) λΆ€μ • μ„ νƒμž : μ„ νƒμž xyzκ°€ μ•„λ‹Œ abc μš”μ†Œ 선택

4. 가상 μš”μ†Œ μ„ νƒμž

  • abc::before : μ„ νƒμž abc μš”μ†Œμ˜ λ‚΄λΆ€ μ•žμ— λ‚΄μš©μ„ μ‚½μž…
  • abc::aftrer : μ„ νƒμž abc μš”μ†Œμ˜ λ‚΄λΆ€ 뒀에 λ‚΄μš©μ„ μ‚½μž…
.box::before {
content: "";
}

μ΄λ ‡κ²Œ content: ""; λ₯Ό λΉ„μ›Œλ‘λ”λΌλ„ before와 afterλŠ” contentλ₯Ό μ‚¬μš©ν•΄μ•Ό λ™μž‘μ„ ν•œλ‹€!

 

5. 속성 μ„ νƒμž

  • [abc] : 속성 abc을 ν¬ν•¨ν•œ μš”μ†Œ 선택
  • [abc="xyz"] : 속성 abc을 ν¬ν•¨ν•˜κ³  값이 xyz인 μš”μ†Œ 선택