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

[CSS3]가상 클래슀 μ„ νƒμž: CSS λ””μžμΈμ˜ λΉ„λ°€ ν‚€

by YJ Dev 2024. 5. 23.
728x90
λ°˜μ‘ν˜•
SMALL

가상 클래슀 μ„ νƒμžλŠ” CSS μŠ€νƒ€μΌλ§μ„ λ”μš± λ‹€μ±„λ‘­κ²Œ λ§Œλ“€μ–΄μ£ΌλŠ” λ„κ΅¬μž…λ‹ˆλ‹€. 이듀은 HTML μš”μ†Œμ˜ νŠΉμ • μƒνƒœλ₯Ό μ„ νƒν•˜μ—¬ μŠ€νƒ€μΌμ„ μ μš©ν•˜λ©°, μ‚¬μš©μž μƒν˜Έμž‘μš©μ΄λ‚˜ μš”μ†Œμ˜ ꡬ쑰에 따라 λ™μ μœΌλ‘œ μŠ€νƒ€μΌμ„ λ³€κ²½ν•  수 있게 ν•©λ‹ˆλ‹€.

가상 클래슀 μ„ νƒμž



링크 가상 클래슀 μ„ νƒμžβœ…

링크 가상 μ„ νƒμžλŠ” μ›Ή νŽ˜μ΄μ§€μ˜ 링크에 μŠ€νƒ€μΌμ„ μ μš©ν•  λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€. 이 μ„ νƒμžλ“€μ€ 링크의 μƒνƒœμ— 따라 λ‹€λ₯Έ μŠ€νƒ€μΌμ„ 지정할 수 있게 ν•΄ μ€λ‹ˆλ‹€. 주둜 λ‹€μŒκ³Ό 같은 μƒνƒœλ₯Ό λ‹€λ£Ήλ‹ˆλ‹€.

:link

  • λ°©λ¬Έν•˜μ§€ μ•Šμ€ 링크에 μ μš©λ©λ‹ˆλ‹€.
  • μ‚¬μš©μžκ°€ ν•΄λ‹Ή 링크λ₯Ό λ°©λ¬Έν•˜κΈ° 전에 μ μš©λ˜λŠ” μŠ€νƒ€μΌμ„ 지정할 λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€.
  • 예λ₯Ό λ“€μ–΄, μ‚¬μš©μžκ°€ 아직 λ°©λ¬Έν•˜μ§€ μ•Šμ€ 링크의 색상을 λ³€κ²½ν•˜κ±°λ‚˜ 효과λ₯Ό μΆ”κ°€ν•˜λŠ” 데 μ‚¬μš©λ  수 μžˆμŠ΅λ‹ˆλ‹€.

:visited

  • 이미 λ°©λ¬Έν•œ 링크에 μ μš©λ©λ‹ˆλ‹€.
  • μ‚¬μš©μžκ°€ 이미 λ°©λ¬Έν•œ 링크λ₯Ό μ‹λ³„ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ©λ‹ˆλ‹€.
  • 예λ₯Ό λ“€μ–΄, 이미 λ°©λ¬Έν•œ 링크의 색상을 λ³€κ²½ν•˜μ—¬ μ‚¬μš©μžμ—κ²Œ μ–΄λ””λ₯Ό 이미 λ°©λ¬Έν–ˆλŠ”μ§€ μ‹œκ°μ μœΌλ‘œ μ•Œλ €μ€„ 수 μžˆμŠ΅λ‹ˆλ‹€.

링크 가상 클래슀 μ„ νƒμž 예제

λ°©λ¬Έν•˜μ§€ μ•Šμ€ λ§ν¬λŠ” 밑쀄이 μ—†λŠ” νŒŒλž€μƒ‰μœΌλ‘œ, 이미 λ°©λ¬Έν•œ λ§ν¬μ—λŠ” 밑쀄이 μžˆλŠ” λ³΄λΌμƒ‰μœΌλ‘œ μŠ€νƒ€μΌμ΄ μ μš©λ©λ‹ˆλ‹€.

/* λ°©λ¬Έν•˜μ§€ μ•Šμ€ 링크에 λŒ€ν•œ μŠ€νƒ€μΌ */
a:link {
    color: #0066cc; /* 링크 색상 */
    text-decoration: none; /* 밑쀄 제거 */
}

/* 이미 λ°©λ¬Έν•œ 링크에 λŒ€ν•œ μŠ€νƒ€μΌ */
a:visited {
    color: #660099; /* λ°©λ¬Έν•œ 링크 색상 */
    text-decoration: underline; /* 밑쀄 μΆ”κ°€ */
}


μ΄λŸ¬ν•œ 가상 μ„ νƒμžλ₯Ό μ‚¬μš©ν•˜μ—¬ λ°©λ¬Έν•˜μ§€ μ•Šμ€ 링크와 이미 λ°©λ¬Έν•œ 링크에 λŒ€ν•΄ μ„œλ‘œ λ‹€λ₯Έ μŠ€νƒ€μΌμ„ μ μš©ν•¨μœΌλ‘œμ¨ μ‚¬μš©μž κ²½ν—˜μ„ ν–₯상할 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μ‚¬μš©μžκ°€ λ°©λ¬Έν•œ 링크와 λ°©λ¬Έν•˜μ§€ μ•Šμ€ 링크λ₯Ό κ΅¬λΆ„ν•˜μ—¬ μ‚¬μš©μžκ°€ 이미 λ°©λ¬Έν•œ 링크λ₯Ό μ‰½κ²Œ 찾을 수 μžˆλ„λ‘ 도와쀄 수 μžˆμŠ΅λ‹ˆλ‹€.

동적 클래슀 μ„ νƒμžπŸ’ƒ

동적 가상 클래슀 μ„ νƒμžλŠ” μ‚¬μš©μžμ˜ μƒν˜Έμž‘μš©μ— 따라 μš”μ†Œμ˜ μƒνƒœλ₯Ό λ³€κ²½ν•˜μ—¬ μŠ€νƒ€μΌμ„ μ μš©ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 이λ₯Ό 톡해 마우슀 ν˜Έλ²„, 클릭 λ“±μ˜ μƒν™©μ—μ„œ μš”μ†Œμ˜ μŠ€νƒ€μΌμ„ λ™μ μœΌλ‘œ λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

:hover

:hover 가상 클래슀 μ„ νƒμžλŠ” λ§ˆμš°μŠ€κ°€ μš”μ†Œ μœ„λ‘œ μ˜¬λΌκ°”μ„ λ•Œ μ μš©λ©λ‹ˆλ‹€. 이λ₯Ό μ΄μš©ν•˜λ©΄ μš”μ†Œμ— ν˜Έλ²„ 효과λ₯Ό μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 주둜 λ§ν¬λ‚˜ λ²„νŠΌ λ“±μ˜ μš”μ†Œμ— μ‚¬μš©λ˜λ©°, 마우슀λ₯Ό 올리면 μŠ€νƒ€μΌμ΄ λ³€κ²½λ©λ‹ˆλ‹€.

button:hover {
    background-color: #FF5733; /* ν˜Έλ²„ μ‹œ 배경색 λ³€κ²½ */
    color: #ffffff; /* ν˜Έλ²„ μ‹œ κΈ€μžμƒ‰ λ³€κ²½ */
    cursor: pointer; /* 마우슀 μ»€μ„œ λͺ¨μ–‘ λ³€κ²½ */
}

:active

:active 가상 클래슀 μ„ νƒμžλŠ” μš”μ†Œκ°€ ν™œμ„±ν™”λ˜μ—ˆμ„ λ•Œ(ν΄λ¦­λ˜μ—ˆμ„ λ•Œ) μ μš©λ©λ‹ˆλ‹€. 주둜 λ²„νŠΌμ΄λ‚˜ 링크 클릭 μ‹œμ— μ‚¬μš©λ˜λ©°, ν΄λ¦­ν•˜λŠ” λ™μ•ˆμ˜ μŠ€νƒ€μΌμ„ λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

button:active {
    transform: translateY(2px); /* 클릭 μ‹œ μš”μ†Œλ₯Ό μ•„λž˜λ‘œ 이동 */
}

μ΄λŸ¬ν•œ 동적 가상 클래슀 μ„ νƒμžλ₯Ό ν™œμš©ν•˜λ©΄ μ‚¬μš©μžμ™€μ˜ μΈν„°λž™μ…˜μ— 따라 μ›Ή μš”μ†Œμ˜ λͺ¨μŠ΅μ„ λ™μ μœΌλ‘œ λ³€ν™”μ‹œν‚¬ 수 μžˆμ–΄ μ‚¬μš©μž κ²½ν—˜μ„ ν–₯μƒν•˜λŠ” 데 도움이 λ©λ‹ˆλ‹€.

μž…λ ₯ μš”μ†Œ 가상 클래슀 μ„ νƒμžβœ

μž…λ ₯ μš”μ†Œ 가상 클래슀 μ„ νƒμžλŠ” HTML의 μž…λ ₯ μš”μ†Œλ“€μ˜ νŠΉμ • μƒνƒœμ— 따라 μŠ€νƒ€μΌμ„ μ μš©ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 이듀 μ„ νƒμžλŠ” μž…λ ₯ μš”μ†Œκ°€ μ‚¬μš©μž μƒν˜Έμž‘μš©μ— μ˜ν•΄ λ³€ν•  λ•Œ μ μš©λ˜λŠ”λ°, 예λ₯Ό λ“€μ–΄ μ‚¬μš©μžκ°€ ν…μŠ€νŠΈ ν•„λ“œλ₯Ό ν΄λ¦­ν•˜κ±°λ‚˜ 포컀슀λ₯Ό μ£Όκ±°λ‚˜, μ²΄ν¬λ°•μŠ€λ₯Ό μ„ νƒν•˜κ±°λ‚˜ ν•΄μ œν•  λ•Œ λ“±μ˜ 상황에 μ μš©λ©λ‹ˆλ‹€.
μž…λ ₯ μš”μ†ŒλŠ” μ‚¬μš©μžκ°€ ν…μŠ€νŠΈλ₯Ό μž…λ ₯ν•˜λŠ” input νƒœκ·Έμ™€ textarea νƒœκ·Έλ‘œ μƒμ„±λ©λ‹ˆλ‹€. μƒν˜Έμž‘μš© μš”μ†ŒλŠ” μž…λ ₯ μš”μ†Œμ™€ μ²΄ν¬λ°•μŠ€λ₯Ό ν¬ν•¨ν•˜μ—¬ λͺ¨λ“  μƒν˜Έμž‘μš©μ΄ κ°€λŠ₯ν•œ μš”μ†Œλ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€. μ²΄ν¬λ°•μŠ€λŠ” input νƒœκ·Έμ˜ type 속성값이 checkbox인 μš”μ†Œλ₯Ό λ§ν•©λ‹ˆλ‹€.
μž…λ ₯ μš”μ†Œμ™€ κ΄€λ ¨λœ λ‚΄μš©μ„ 더 μ•Œκ³  μ‹Άλ‹€λ©΄ μ•„λž˜ ν¬μŠ€νŒ…μ„ μ°Έκ³ ν•΄ μ£Όμ„Έμš”πŸ˜

""

[HTML5]HTML form μ™„λ²½ κ°€μ΄λ“œ: form κ΄€λ ¨ νƒœκ·Έ, ν•„μˆ˜ 속성뢀터 κ³ κΈ‰ ν™œμš©κΉŒμ§€

≣ λͺ©μ°¨form νƒœκ·ΈπŸŽinput νƒœκ·Έμ™€ μ£Όμš” μ†μ„±βœ¨label νƒœκ·ΈπŸ”–fieldset와 legend νƒœκ·ΈπŸŽ¨textarea νƒœκ·ΈπŸ“‘select, option, optgroup νƒœκ·Έβœ…butoon νƒœκ·ΈπŸ‘†form κ΄€λ ¨ νƒœκ·Έμ˜ μΆ”κ°€ μ†μ„±πŸŒˆform νƒœκ·Έ 예제πŸͺ‚핡심 λ‚΄μš©πŸ‘€HTML

creativevista.tistory.com

μž…λ ₯ μš”μ†Œ 가상 클래슀 μ„ νƒμžλŠ”μ£Όλ‘œ λ‹€μŒκ³Ό 같은 μƒνƒœλ₯Ό λ‹€λ£Ήλ‹ˆλ‹€.

:focus

  • μž…λ ₯ μš”μ†Œκ°€ 포컀슀λ₯Ό λ°›μ•˜μ„ λ•Œ μ μš©λ©λ‹ˆλ‹€.
  • μ‚¬μš©μžκ°€ ν•΄λ‹Ή μž…λ ₯ μš”μ†Œλ₯Ό ν΄λ¦­ν•˜κ±°λ‚˜ νƒ­ ν‚€λ‘œ 포컀슀λ₯Ό μ£Όμ—ˆμ„ λ•Œ μ μš©λ©λ‹ˆλ‹€.
input:focus {
  border-color: #00ff00;
}

μœ„ μ½”λ“œλŠ” μž…λ ₯ 양식(input)에 초점이 λ§žμΆ°μ‘Œμ„ λ•Œ, μž…λ ₯ μ–‘μ‹μ˜ ν…Œλ‘λ¦¬ 색상을 μ΄ˆλ‘μƒ‰μœΌλ‘œ λ³€κ²½ν•©λ‹ˆλ‹€.

:checked

  • 체크 μƒνƒœμΈ μž…λ ₯ μš”μ†Œμ— μ μš©λ©λ‹ˆλ‹€. (예: μ²΄ν¬λ°•μŠ€, λΌλ””μ˜€ λ²„νŠΌ)
  • μ‚¬μš©μžκ°€ ν•΄λ‹Ή μž…λ ₯ μš”μ†Œλ₯Ό μ„ νƒν–ˆμ„ λ•Œ μ μš©λ©λ‹ˆλ‹€.
input[type="checkbox"]:checked + label {
  text-decoration: line-through;
}

μœ„ μ½”λ“œλŠ” μ²΄ν¬λ°•μŠ€(checkbox)κ°€ μ„ νƒλ˜μ—ˆμ„ λ•Œ, ν•΄λ‹Ή μ²΄ν¬λ°•μŠ€μ™€ μ—°κ²°λœ 라벨(label)의 ν…μŠ€νŠΈμ— μ·¨μ†Œμ„ μ„ μΆ”κ°€ν•©λ‹ˆλ‹€.

:disabled

  • λΉ„ν™œμ„±ν™”λœ μž…λ ₯ μš”μ†Œμ— μ μš©λ©λ‹ˆλ‹€.
  • ν•΄λ‹Ή μž…λ ₯ μš”μ†Œκ°€ λΉ„ν™œμ„±ν™”λ˜μ–΄ μžˆμ„ λ•Œ μ μš©λ©λ‹ˆλ‹€.
input:disabled {
  opacity: 0.5;
}

μž…λ ₯ 양식이 λΉ„ν™œμ„±ν™”λ˜μ—ˆμ„ λ•Œ, μž…λ ₯ μ–‘μ‹μ˜ 뢈투λͺ…도(opacity)λ₯Ό 0.5둜 μ„€μ •ν•˜λŠ” μ½”λ“œμž…λ‹ˆλ‹€.

:enabled

  • ν™œμ„±ν™”λœ μž…λ ₯ μš”μ†Œμ— μ μš©λ©λ‹ˆλ‹€.
  • ν•΄λ‹Ή μž…λ ₯ μš”μ†Œκ°€ ν™œμ„±ν™”λ˜μ–΄ μžˆμ„ λ•Œ μ μš©λ©λ‹ˆλ‹€.
input:enabled {
  background-color: #e0e0e0;
}

μž…λ ₯ 양식이 ν™œμ„±ν™”λ˜μ—ˆμ„ λ•Œ, μž…λ ₯ μ–‘μ‹μ˜ 배경색을 νšŒμƒ‰μœΌλ‘œ μ„€μ •ν•˜λŠ” CSS μ½”λ“œμž…λ‹ˆλ‹€.

μ΄λŸ¬ν•œ 가상 클래슀 μ„ νƒμžλ₯Ό μ‚¬μš©ν•˜μ—¬ μž…λ ₯ μš”μ†Œμ˜ λ‹€μ–‘ν•œ μƒνƒœμ— 따라 μŠ€νƒ€μΌμ„ μ μš©ν•¨μœΌλ‘œμ¨ μ‚¬μš©μžμ—κ²Œ 더 λ‚˜μ€ μ‚¬μš©μž κ²½ν—˜μ„ μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ꡬ쑰적 가상 클래슀 μ„ νƒμžπŸ‘©‍

ꡬ쑰적 가상 클래슀 μ„ νƒμžλŠ” HTML λ¬Έμ„œμ˜ ꡬ쑰λ₯Ό 기반으둜 λ‹€λ₯Έ νƒœκ·Έμ™€μ˜ 관계에 따라 νŠΉμ • μš”μ†Œλ₯Ό μ„ νƒν•˜λŠ” CSS μ„ νƒμžμž…λ‹ˆλ‹€.

μ„ νƒμž μ„€λͺ…
:first-child λΆ€λͺ¨ μš”μ†Œμ˜ 첫번째 μžμ‹ μš”μ†Œλ₯Ό μ„ νƒμžλ‘œ 지정
:last-child λΆ€λͺ¨ μš”μ†Œμ˜ λ§ˆμ§€λ§‰ μžμ‹ μš”μ†Œλ₯Ό μ„ νƒμžλ‘œ 지정
:nth-child(n) λΆ€λͺ¨ μš”μ†Œμ˜ n번째 μžμ‹ μš”μ†Œλ₯Ό μ„ νƒμžλ‘œ 지정
:nth-last-child(n) λ’€μ—μ„œλΆ€ν„° n번째 μžμ‹ μš”μ†Œλ₯Ό μ„ νƒμžλ‘œ 지정
:nth-of-type(n) ν˜•μ œμš”μ†Œ 쀑 n번째 μš”μ†Œλ₯Ό μ„ νƒμžλ‘œ 지정
:nth-last-of-type(n) λ’€μ—μ„œλΆ€ν„° ν˜•μ œμš”μ†Œ 쀑 n번째 μš”μ†Œλ₯Ό μ„ νƒμžλ‘œ 지정
:first-of-type(n) 첫번째둜 λ“±μž₯ν•˜λŠ” μš”μ†Œλ₯Ό μ„ νƒμžλ‘œ 지정
:last-of-type(n) λ§ˆμ§€λ§‰μœΌλ‘œ λ“±μž₯ν•˜λŠ” μš”μ†Œλ₯Ό μ„ νƒμžλ‘œ 지정

nth-child(n)와 nth-of-type(n)의 차이점

nth-child(n)

  • nth-child(n)은 λΆ€λͺ¨ μš”μ†Œμ˜ λͺ¨λ“  μžμ‹ μš”μ†Œ μ€‘μ—μ„œ n번째 μš”μ†Œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
  • HTML ꡬ쑰에 관계없이 λͺ¨λ“  μžμ‹ μš”μ†Œ μ€‘μ—μ„œ μˆœμ„œμ— 따라 μ„ νƒν•©λ‹ˆλ‹€.
  • 예λ₯Ό λ“€μ–΄, ul li:nth-child(2)λŠ” ul μ•ˆμ— μžˆλŠ” λͺ¨λ“  li μ€‘μ—μ„œ 두 번째 li μš”μ†Œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€. μ΄λ•Œ ul의 μžμ‹μ΄ μ•„λ‹ˆλΌ κ·Έλƒ₯ li의 μˆœμ„œλ₯Ό λ”°λ¦…λ‹ˆλ‹€.

nth-of-type(n)

  • nth-of-type(n)은 λΆ€λͺ¨ μš”μ†Œμ˜ νŠΉμ • μœ ν˜•(type)의 μžμ‹ μš”μ†Œ μ€‘μ—μ„œ n번째 μš”μ†Œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
  • νŠΉμ • μœ ν˜•(type)의 μš”μ†Œλ“€ μ€‘μ—μ„œ μˆœμ„œμ— 따라 μ„ νƒν•©λ‹ˆλ‹€.
  • 예λ₯Ό λ“€μ–΄, ul li:nth-of-type(2)λŠ” ul μ•ˆμ— μžˆλŠ” li μ€‘μ—μ„œ 두 번째 li μš”μ†Œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€. μ—¬κΈ°μ„œ μ€‘μš”ν•œ 점은 ul μ•ˆμ—μ„œμ˜ li μš”μ†Œ μ€‘μ—μ„œ μˆœμ„œλ₯Ό λ”°λ¦…λ‹ˆλ‹€.

κ°„λ‹¨νžˆ λ§ν•΄μ„œ, nth-child(n)은 λͺ¨λ“  μžμ‹ μš”μ†Œ μ€‘μ—μ„œ μˆœμ„œλ₯Ό 따라 μ„ νƒν•˜λŠ” 반면, nth-of-type(n)은 νŠΉμ • μœ ν˜•(type)의 μžμ‹ μš”μ†Œ μ€‘μ—μ„œ μˆœμ„œλ₯Ό 따라 μ„ νƒν•©λ‹ˆλ‹€.

ꡬ쑰적 가상 클래슀 μ„ νƒμž 예제

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Structural Pseudo-class Selectors Example</title>
<style>
/* 첫 번째 μžμ‹ μš”μ†Œμ— μŠ€νƒ€μΌ 적용 */
ul li:first-child {
    color: blue;
}

/* λ§ˆμ§€λ§‰ μžμ‹ μš”μ†Œμ— μŠ€νƒ€μΌ 적용 */
ul li:last-child {
    color: red;
}

/* 짝수 번째 μžμ‹ μš”μ†Œμ— μŠ€νƒ€μΌ 적용 */
ul li:nth-child(even) {
    background-color: lightgray;
}

/* ν™€μˆ˜ 번째 μžμ‹ μš”μ†Œμ— μŠ€νƒ€μΌ 적용 */
ul li:nth-child(odd) {
    background-color: lightblue;
}

/* 두 번째 μžμ‹ μš”μ†ŒλΆ€ν„° λ‹€μ„― 번째 μžμ‹ μš”μ†ŒκΉŒμ§€μ— μŠ€νƒ€μΌ 적용 */
ul li:nth-child(n+2):nth-child(-n+5) {
    font-weight: bold;
}

/* μœ μΌν•œ μžμ‹ μš”μ†Œμ— μŠ€νƒ€μΌ 적용 */
div:only-child {
    border: 1px solid black;
}
</style>
</head>
<body>

<ul>
    <li>첫 번째</li>
    <li>두 번째</li>
    <li>μ„Έ 번째</li>
    <li>λ„€ 번째</li>
    <li>λ‹€μ„― 번째</li>
    <li>μ—¬μ„― 번째</li>
</ul>

<div>
    <p>μœ μΌν•œ μžμ‹ μš”μ†Œμž…λ‹ˆλ‹€.</p>
</div>

</body>
</html>

μ„ νƒμžλ₯Ό ν™œμš©ν•œ μ˜ˆμ‹œπŸŒˆ

링크 μŠ€νƒ€μΌλ§

/* 링크에 ν˜Έλ²„ 효과 μΆ”κ°€ */
a:hover {
    color: #FF5733; /* ν˜Έλ²„ μ‹œ κΈ€μž 색상 λ³€κ²½ */
    text-decoration: underline; /* ν˜Έλ²„ μ‹œ 밑쀄 μΆ”κ°€ */
}

폼 μš”μ†Œ μŠ€νƒ€μΌλ§

/* μž…λ ₯ μš”μ†Œμ— 포컀슀 효과 μΆ”κ°€ */
input:focus {
    border: 2px solid #4CAF50; /* 포컀슀 μ‹œ ν…Œλ‘λ¦¬ 색상 λ³€κ²½ */
    background-color: #f0f0f0; /* 포컀슀 μ‹œ 배경색 λ³€κ²½ */
}

리슀트 μŠ€νƒ€μΌλ§

/* 리슀트 μ•„μ΄ν…œμ— μŠ€νƒ€μΌ 적용 */
ul li:nth-child(odd) {
    background-color: #f2f2f2; /* ν™€μˆ˜ 번째 리슀트 μ•„μ΄ν…œ 배경색 λ³€κ²½ */
}
ul li:nth-child(even) {
    background-color: #dddddd; /* 짝수 번째 리슀트 μ•„μ΄ν…œ 배경색 λ³€κ²½ */
}

핡심 λ‚΄μš©πŸ‘€

링크 가상 클래슀 μ„ νƒμž 동적 가상 클래슀 μ„ νƒμž
μž…λ ₯ μš”μ†Œ 가상 클래슀 μ„ νƒμž
ꡬ쑰적 가상 클래슀 μ„ νƒμž

728x90
λ°˜μ‘ν˜•