πŸ“ŒLanguage/HTML & CSS

가상 클래슀 (pseudo class) first-child

hellohailie 2022. 4. 17. 23:16

가상 μ„ νƒμž (pseudo selector) = λ¬Έμ„œμ— μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” μš”μ†Œμ— μŠ€νƒ€μΌμ„ λΆ€μ—¬ν•  μˆ˜λ„ 있고, νŠΉμ • μš”μ†Œμ˜ μƒνƒœλ₯Ό 미리 μΆ”μ •ν•΄μ„œ κ°€μƒμ˜ 클래슀둜 μŠ€νƒ€μΌμ„ μ μš©μ‹œν‚¬ μˆ˜λ„ μžˆλŠ” μ„ νƒμžμ΄λ‹€. 

* 가상 클래슀 (pseudo class)

* 가상 μš”μ†Œ (pseudo element)

 

가상 클래슀(pseudo class)

가상 ν΄λž˜μŠ€λŠ” λ―Έλ¦¬ μ •μ˜ν•΄λ†“μ€ 상황에 μ μš©λ˜λ„λ‘ μ•½μ†λœ 보이지 μ•ŠλŠ” ν΄λž˜μŠ€μž…λ‹ˆλ‹€.

μš°λ¦¬κ°€ 직접 μš”μ†Œμ— 클래슀λ₯Ό μ„ μ–Έν•˜λŠ” 것은 μ•„λ‹ˆκ³ , μ•½μ†λœ 상황이 되면 λΈŒλΌμš°μ € 슀슀둜 ν΄λž˜μŠ€λ₯Ό μ μš©ν•΄μ€λ‹ˆλ‹€.

 

예λ₯Ό λ“€μ–΄, <p>κ°€ μžˆλ‹€κ³  κ°€μ •ν•˜κ² μŠ΅λ‹ˆλ‹€.

이 <p>에 마우슀 μ»€μ„œλ₯Ό μ˜¬λ Έμ„ λ•Œλ§Œ νŠΉμ • μŠ€νƒ€μΌμ„ μ£Όκ³  μ‹Άλ‹€κ³  ν•œλ‹€λ©΄ μ–΄λ–»κ²Œ ν•΄μ•Ό ν• κΉŒμš”?

가상 ν΄λž˜μŠ€κ°€ μ—†λ‹€λ©΄ μ΄λŸ° 과정을 거치게 λ©λ‹ˆλ‹€.

  1. μž„μ˜μ˜ 클래슀 μ„ νƒμžλ₯Ό μ„ μ–Έν•˜μ—¬ νŠΉμ • μŠ€νƒ€μΌ κ·œμΉ™μ„ λ§Œλ“ λ‹€.
  2. p μš”μ†Œμ— μ»€μ„œκ°€ μ˜¬λΌκ°€λ©΄ p μš”μ†Œμ— 클래슀λ₯Ό μ§‘μ–΄λ„£λŠ”λ‹€.
  3. p μš”μ†Œμ—μ„œ μ»€μ„œκ°€ 빠지면 p μš”μ†Œμ— 클래슀λ₯Ό μ‚­μ œν•œλ‹€.

μ—¬κΈ°μ„œ 2, 3λ²ˆμ€ λ™μ μœΌλ‘œ λ³€ν™”λ˜μ–΄μ•Ό ν•˜λŠ”λ°, HTMLκ³Ό CSSλŠ” 정적인 언어이기 λ•Œλ¬Έμ— μ²˜λ¦¬ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

μ–΄μ©” 수 없이 λ‹€λ₯Έ μ–Έμ–΄λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•˜λŠ”λ°, μ΄λŠ” 개발 λΉ„μš©μ΄ λ“€μ–΄κ°€λŠ” μΌμž…λ‹ˆλ‹€.

 

κ·Έλž˜μ„œ CSSμ—μ„œλŠ” ν”ν•˜κ²Œ μ‚¬μš©λ˜λŠ” μ—¬λŸ¬ νŒ¨ν„΄μ— λŒ€ν•΄μ„œ 미리 μ •μ˜ν•΄λ†“κ³ , 가상 클래슀둜 μ œμ–΄ν•  수 있게 ν–ˆμŠ΅λ‹ˆλ‹€.

/* Any button over which the user's pointer is hovering */
button:hover {
  color: blue;
}

μœ„μ²˜λŸΌ 가상 ν΄λž˜μŠ€λŠ” :(콜둠) 기호λ₯Ό μ¨μ„œ λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 가상 클래슀λ₯Ό μ΄μš©ν•˜λ©΄ μ•„λž˜μ˜ κ²½μš°μ—λ„ CSS만으둜 μ²˜λ¦¬κ°€ κ°€λŠ₯ν•˜λ―€λ‘œ 훨씬 νš¨μœ¨μ μ΄λ‹€. 

 

 


λ¬Έμ„œ ꡬ쑰와 κ΄€λ ¨λœ 가상 클래슀

λ¬Έμ„œ ꡬ쑰와 κ΄€λ ¨λœ 가상 ν΄λž˜μŠ€λŠ” first-child와 last-child 가상 클래슀 μ„ νƒμž μž…λ‹ˆλ‹€.

  • :first-child : 첫 번째 μžμ‹ μš”μ†Œ 선택
  • :last-child : λ§ˆμ§€λ§‰ μžμ‹ μš”μ†Œ 선택

 

li:first-child { color: red; }
li:last-child { color: blue; }

 

<ul>
    <li>happy</li>
    <li>marry</li>
    <li>christmas</li>
</ul>

 

  • happy
  • marry
  • christmas

 

첫 번째 <li>와 λ§ˆμ§€λ§‰ <li>에 가상 ν΄λž˜μŠ€κ°€ μ μš©λœλ‹€. μ‹€μ œ <li>μ—λŠ” class μ†μ„±μ΄ μ—†μ§€λ§Œ λ‚΄λΆ€μ μœΌλ‘œ 가상 ν΄λž˜μŠ€κ°€ μ μš©λ˜μ–΄ 마치 μ•„λž˜μ˜ μ½”λ“œμ™€ 같이 λ™μž‘ν•˜κ²Œ λœλ‹€. 

 

<ul>
    <li class="first-child">HTML</li>
    <li>CSS</li>
    <li class="last-child">JS</li>
</ul>

 

액컀 μš”μ†Œμ™€ κ΄€λ ¨λœ 가상 클래슀

액컀 μš”μ†Œμ™€ κ΄€λ ¨λœ 가상 ν΄λž˜μŠ€λ‘œλŠ” :link와 :visitedκ°€ μžˆμŠ΅λ‹ˆλ‹€.

  • :link : ν•˜μ΄νΌ λ§ν¬μ΄λ©΄μ„œ 아직 λ°©λ¬Έν•˜μ§€ μ•Šμ€ 액컀
  • :visited : 이미 λ°©λ¬Έν•œ ν•˜μ΄νΌλ§ν¬λ₯Ό 의미

ν•˜μ΄νΌ λ§ν¬λŠ” 액컀 μš”μ†Œμ— href 속성이 μžˆλŠ” 것을 의미

 

a:link { color: blue; }
a:visited { color: gray; }

 

=> λ°©λ¬Έν•˜μ§€ μ•Šμ€ μ‚¬μ΄νŠΈλŠ” νŒŒλž€μƒ‰, λ°©λ¬Έν–ˆλ˜ μ‚¬μ΄νŠΈλŠ” νšŒμƒ‰μœΌλ‘œ 바뀐닀. 

 

 


μ‚¬μš©μž λ™μž‘κ³Ό κ΄€λ ¨λœ 가상 클래슀

이 ν΄λž˜μŠ€λ“€λ„ <a>에 주둜 많이 μ“°μž…λ‹ˆλ‹€.

<a>μ—λ§Œ μ“Έ 수 μžˆλŠ” 것은 μ•„λ‹ˆλ©°, 이 쑰건에 λ§žλŠ” 상황이 λ˜λŠ” μš”μ†Œλ“€μ€ λ‹€ μ‚¬μš©μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.

  • :focus: ν˜„μž¬ μž…λ ₯ μ΄ˆμ μ„ 가진 μš”μ†Œμ— 적용
  • :hover: 마우슀 포인터가 μžˆλŠ” μš”μ†Œμ— 적용
  • :active: μ‚¬μš©μž μž…λ ₯으둜 ν™œμ„±ν™”λœ μš”μ†Œμ— 적용
a:focus { background-color: yellow; }
a:hover { font-weight: bold; }
a:active { color: red; }

 

 

:focusλŠ” μ§€κΈˆ ν˜„μž¬ 선택을 λ°›λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€.

예λ₯Ό λ“€λ©΄, μž…λ ₯ 폼 μš”μ†Œμ— ν…μŠ€νŠΈλ₯Ό μž…λ ₯ν•˜λ €κ³  마우슀 ν΄λ¦­ν•΄μ„œ μ»€μ„œλ₯Ό μž…λ ₯ 폼 μœ„μ— μ˜¬λ €λ†“μœΌλ©΄ κ·Έλ•Œ μž…λ ₯ 폼 μš”μ†Œκ°€ μ΄ˆμ μ„ λ°›λŠ” μƒνƒœμž…λ‹ˆλ‹€.

또 ν‚€λ³΄λ“œμ˜ νƒ­ ν‚€λ₯Ό μ΄μš©ν•΄μ„œ μš”μ†Œλ₯Ό νƒμƒ‰ν•˜λ‹€ 보면 λ§ν¬λ‚˜ λ²„νŠΌμ— 점선 ν…Œλ‘λ¦¬κ°€ μ΄λ™ν•˜λŠ” 것을 λ³Ό 수 μžˆλŠ”λ°, μ μ„  ν…Œλ‘λ¦¬κ°€ μœ„μΉ˜ν•˜λŠ” 것도 μ΄ˆμ μ„ 받은 μƒνƒœμž…λ‹ˆλ‹€.

:hoverλŠ” 마우슀 μ»€μ„œκ°€ μžˆλŠ” μš”μ†Œμ— 적용 (마우슀λ₯Ό μ˜¬λ Έμ„ λ•Œλ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.)

:activeλŠ” μ‚¬μš©μž μž…λ ₯으둜 ν™œμ„±ν™”λœ μš”μ†Œλ₯Ό μ˜λ―Έν•˜λŠ”λ°, <a>λ₯Ό 클릭할 λ•Œ λ˜λŠ” <button>λ₯Ό λˆŒλ €μ„ λ•Œμ²˜λŸΌ μˆœκ°„μ μœΌλ‘œ ν™œμ„±ν™”λœλ‹€. 

 

 

 

See the Pen Untitled by HelloHailie (@hellohailie) on CodePen.

 

 


 

πŸ‘‡ 더 λ§Žμ€ 가상 클래슀 κ³΅λΆ€ν•˜κΈ° πŸ‘‡

https://developer.mozilla.org/ko/docs/Web/CSS/Pseudo-classes

 

μ˜μ‚¬ 클래슀 - CSS: Cascading Style Sheets | MDN

CSS μ˜μ‚¬ 클래슀(가상 클래슀)λŠ” μ„ νƒμžμ— μΆ”κ°€ν•˜λŠ” ν‚€μ›Œλ“œλ‘œ, μ„ νƒν•œ μš”μ†Œκ°€ νŠΉλ³„ν•œ μƒνƒœμ—¬μ•Ό λ§Œμ‘±ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ :hoverλ₯Ό μ‚¬μš©ν•˜λ©΄ 포인터λ₯Ό μ˜¬λ Έμ„ λ•Œμ—λ§Œ 글씨 색을 λ°”κΎΈκ³  싢을

developer.mozilla.org