Recent Posts
Recent Comments
Link
Β«   2024/12   Β»
일 μ›” ν™” 수 λͺ© 금 ν† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

kohigowild

CSS 가상 μš”μ†Œ(Pseudo-Element) λ³Έλ¬Έ

HTML | CSS

CSS 가상 μš”μ†Œ(Pseudo-Element)

kohi β˜• 2022. 9. 29. 16:42

πŸ” κ°€μƒ μš”μ†Œλž€?


  • μ˜μ‚¬ μš”μ†ŒλΌκ³ λ„ 함 πŸ‘‰πŸ» https://developer.mozilla.org/ko/docs/Web/CSS/Pseudo-elements
  • CSS 가상 μš”μ†ŒλŠ” μ„ νƒμžλ‘œ μ„ νƒν•œ μš”μ†Œμ— μΆ”κ°€ν•˜λŠ” ν‚€μ›Œλ“œλ‘œ μ„ νƒν•œ μš”μ†Œμ˜ μ§€μ •λœ 뢀뢄에 μŠ€νƒ€μΌμ„ μ μš©ν•œλ‹€.
  • 가상 클래슀(ex. :hover)처럼 μ„ νƒμžμ— μΆ”κ°€λ˜κ³ , μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” μš”μ†Œλ₯Ό μ‘΄μž¬ν•˜λŠ” κ²ƒμ²˜λŸΌ λΆ€μ—¬ν•˜μ—¬ HTML에 μƒˆλ‘œμš΄ μš”μ†Œλ₯Ό μΆ”κ°€ν•œ κ²ƒμ²˜λŸΌ λ™μž‘ν•œλ‹€.

 

  • 많이 μ‚¬μš©ν•˜λŠ” 가상 μš”μ†Œμ˜ μ’…λ₯˜
::before μš”μ†Œ μ•žμ— μƒˆλ‘œμš΄ 컨텐츠 μΆ”κ°€
::after μš”μ†Œ 뒀에 μƒˆλ‘œμš΄ 컨텐츠 μΆ”κ°€
::first-line μ›Ή λΈŒλΌμš°μ €μ— λ³΄μ΄λŠ” μƒνƒœλ₯Ό κΈ°μ€€μœΌλ‘œ μš”μ†Œ ν…μŠ€νŠΈ 첫 κΈ€μž 선택
::first-letter μ›Ή λΈŒλΌμš°μ €μ— λ³΄μ΄λŠ” μƒνƒœλ₯Ό κΈ°μ€€μœΌλ‘œ μš”μ†Œ ν…μŠ€νŠΈ 첫 쀄 선택

 

πŸ” κ°€μƒ μš”μ†Œ μž‘μ„± 방법


μ„ νƒμž::κ°€μƒμš”μ†Œ {
  속성: 속성값;
}

 

가상 μš”μ†ŒλŠ” ν‚€μ›Œλ“œ μ•žμ— 이쀑 콜둠(::)을 λΆ™μ—¬ ν‘œκΈ°ν•œλ‹€. CSS1κ³Ό CSS2μ—μ„œλŠ” 단일 콜둠으둜만 ν‘œκΈ°ν–ˆμœΌλ‚˜ 가상 ν΄λž˜μŠ€μ™€ ꡬ뢄을 μœ„ν•΄ CSS3λΆ€ν„°λŠ” 이쀑 콜둠으둜 ν‘œκΈ°ν•˜λŠ” 것이 ν‘œμ€€ 방법이닀. λŒ€λΆ€λΆ„ λΈŒλΌμš°μ €λŠ” 두 ꡬ문 λͺ¨λ‘ μ§€μ›ν•˜κ³  μžˆμœΌλ‚˜ 가급적이면 ν‘œμ€€ 방법을 μ“°λŠ” 것이 μ’‹κ² λ‹€.

 

✍🏻 HTML

<p>Hello, </p>

 

✍🏻 CSS

p::after {
  content:"mitt!";
  color: green;
}

 

::after ꡬ문을 μ‚¬μš©ν•΄ p νƒœκ·Έ 뒀에 “mitt!” μ΄λΌλŠ” ν…μŠ€νŠΈλ₯Ό μΆ”κ°€ν•œλ‹€.

 

✍🏻 Result

 

πŸ” κ°€μƒ ν΄λž˜μŠ€μ™€ 가상 μš”μ†Œλ₯Ό μ‘°ν•©ν•˜μ—¬ μ‚¬μš©ν•΄ 보자


✍🏻 HTML

<div class="container">
  <p class="heart">πŸ₯°</p>
  <button>λ°”λ€λ‹ˆλ‹€.</button>
 </div>

 

✍🏻 CSS

button {
  width: 320px;
  height: 40px;
  border: none;
  background-color: red;
  color: white;
}

button:hover::before {
  content:'깜μž₯으둜 ';
}

button:hover {
  background-color: black;
}

.container:hover .heart::after {
  content:'❀️❀️❀️❀️❀️❀️❀️❀️❀️❀️❀️❀️❀️❀️';
}

 

  • λ²„νŠΌμ— 마우슀λ₯Ό 올리면 ::before ꡬ문을 톡해 button νƒœκ·Έλ‘œ λ‘˜λŸ¬μ‹ΈμΈ “λ°”λ€λ‹ˆλ‹€.” μ•žμ— “깜μž₯으둜 “ ν…μŠ€νŠΈκ°€ μΆ”κ°€λœλ‹€.
  • ::before, ::afterλŠ” 기본적으둜 인라인 μš”μ†Œμ΄κΈ° λ•Œλ¬Έμ— λ²„νŠΌ 전체 색상을 λ³€κ²½ν•˜κΈ° μœ„ν•΄ νƒœκ·Έλ₯Ό λ”°λ‘œ λΉΌμ„œ μž‘μ„±ν•˜μ˜€λ‹€.
  • λΆ€λͺ¨ 클래슀 container에 마우슀λ₯Ό 올리면 μžμ‹ 클래슀인 heart에 ::after둜 μΆ”κ°€ν•œ ν•˜νŠΈκ°€ λ‚˜νƒ€λ‚œλ‹€.

 

✍🏻 Result

 

🧐 가상 μš”μ†Œ μ„ νƒμžλ‘œ tooltip을 κ΅¬ν˜„ν•΄ 보자


✍🏻 HTML

<div>
  <span data-tooltip="두λ‘₯">이곳</span>에 마우슀λ₯Ό 올리면 말풍선이 λ‚˜νƒ€λ‚©λ‹ˆλ‹€.
</div>

 

✍🏻 CSS

span {
  position: relative;
  font-weight: 700;
  color: green;
  cursor: help;
}

span:hover::after {
  content: attr(data-tooltip);
  position: absolute;
  top: 24px;
  min-width: 50px;
  border-radius: 10px;
  background-color: green;
  color: white;
  padding: 12px;
  z-index: 1;
}

 

  • ::after와 data-* 속성을 μ‚¬μš©ν•΄ tooltip λ‚΄μš©μ„ μΆ”κ°€ν•œλ‹€.
  • position 속성은 tooltip의 μœ„μΉ˜λ₯Ό κ°„νŽΈν•˜κ²Œ μ‘°μ •ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜μ˜€λ‹€.
  • 이 경우 span νƒœκ·Έ μœ„μ— 마우슀 μ»€μ„œλ₯Ό 올리면 가상 ν΄λž˜μŠ€μ— μ§€μ •ν•œ 속성 값에 따라 tooltip이 λ‚˜νƒ€λ‚œλ‹€.

 

✍🏻 Result

 

🧐 ::after둜 객체 사이에 ꡬ뢄선을 κ΅¬ν˜„ν•΄ 보자


✍🏻 HTML

<div class="container">
    <div class="item">1</div>
    <div class="item">2</div>
    <div class="item">3</div>
    <div class="item">4</div>
    <div class="item">5</div>
    <div class="item">6</div>
</div>

 

✍🏻 CSS

body {
  display: flex;
  justify-content: center;
}

.container {
  border: 1px solid red;
  width: 320px;
  text-align: center;
}

.item {
  line-height: 200%;
}

.item:nth-child(3)::after{
  content: '';
  position: absolute;
  left: 608px;
  bottom: 150px;
  width: 320px;
  height: 1px;
  background-color: gray;
}

 

✍🏻 Result

 

🧐 가상 μš”μ†Œκ°€ μ μš©λ˜μ§€ μ•ŠλŠ” 경우


  • 가상 μš”μ†ŒλŠ” μ»¨ν…Œμ΄λ„ˆ μš”μ†Œ(ex. div, span…)μ—μ„œλ§Œ μ •μ˜ν•  수 μžˆλ‹€.
  • input, img 같은 μš”μ†ŒλŠ” μ§€μ›ν•˜μ§€ μ•ŠμœΌλ‚˜, button νƒœκ·Έμ˜ 경우 μ •μ˜κ°€ κ°€λŠ₯ν•˜λ‹€.
  • IE7 μ΄ν•˜ 버전은 μ§€μ›ν•˜μ§€ μ•Šκ³ , IE8 μ΄ν•˜ 버전은 CSS3을 μ§€μ›ν•˜μ§€ μ•Šμ•„ 단일 콜둠만 μ§€μ›ν•œλ‹€.

 

'HTML | CSS' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

HTML 검색 엔진 μ΅œμ ν™”μ™€ μ›Ή ν‘œμ€€μ„±  (0) 2022.11.02