ფსევდო ელემენტები

ფსევდო ელემენტების საშუალებით შეგვიძლია დავამატოთ ახალი კონტენტი HTML-ში ან დავსტილოთ კონკრეტული ელემენტის ნაწილი.

სინტაქსი

CSS
selector::pseudo-element {
  property: value;
}

მაგალითისთვის, ::first-line შეიძლება გამოვიყენოთ ტექსტური ელემენტის პირველი ხაზის შესაცვლელად.

HTML
<p>ანგულარი არის პოპულარული ჯავასკრიპტის ფრეიმვორქი, რომლითაც მარტივად, სტრუქტურირებულად და მოქნილად შეგვიძლია ერთგვერდიანი ვებ აპლიკაციების (SPA - Single Page Application) შექმნა.</p>
CSS
p::first-line {
  color: blue;
}

ფსევდო კლასებისგან განსხვავებით, ფსევდო ელემენტებს ორმაგი ორწერტილით აღვნიშნავთ, თუმცა ზოგიერთ ფსევდო ელემენტზე შესაძლებელია, ერთი ორწერტილის გამოყენება: ::before, ::after, ::first-line და ::first-letter.

კარგი სტრუქტურისთვის მიღებულია ორმაგი ორწერტილის გამოყენება (::).

სტრუქტურული ფსევდო ელემენტები

სტრუქტურული ფსევდო ელემენტები ჰგავს ჩვეულებრივ HTML ელემენტების, ისინიც ანალოგიური პრინციპით მოთავსდებიან ყუთის მოდელში. მათი გასტილვა ისე შეიძლება, როგორც ჩვეულებრივი ელემენტების.

before

::before შექმნის ფსევდო ელეემნტს, რომელიც იქნება პირველი შვილობილი ელემენტი მითითებულ თეგზე (ელემენტზე).

HTML
<p>
  API-ის შესასწავლად შეგიძლიათ გამოიყენოთ
  <a href="https://everrest.educata.dev">EverREST-ის </a> ან <a href="https://dummyjson.com/">dummyjson-ის</a>სერვერი
</p>
CSS
a::before {
  content: '🔗';
  color: #1890ff;
}

ამ შემთხვევაში <a> ელემენტში მოთავსდა ფსევდო ელემენტი before, რომლის კონტენტიც არის 🔗.

ვებგვერდზე ნებისმიერი კონტენტის შესამოწმებლად, შეგიძლიათ გამოიყენოთ დეველოპერული ხელსაწყოები. Windows-ისა და Linux-ის მომხარებლებმა შეგიძლიათ გამოიყენოთ შემდეგი მალსახმობი: Ctrl + Shift + I ან F12, ხოლო macOS-ის მომხარებლებმა: + + I. დაათვალიერეთ <a> ელემენტის კონტენტი.

after

::after ფსევდო ელემენტი ჰგავს ::before-ს, თუმცა, ამ შემთხვევაში, დამატებული ელემენტი იქნება ბოლო.

HTML
<p>TODO სია:</p>
<ul>
  <li class="done">ვისწავლო HTML</li>
  <li class="done">ვისწავლო CSS</li>
  <li>ვისწავლო Git</li>
  <li>ვისწავლო JS</li>
  <li>ვისწავლო TS</li>
  <li>ვისწავლო Angular</li>
</ul>
CSS
ul li.done::after {
  content: '✔';
  color: green;
}

marker

::marker ფსევდო ელემენტი გამოიყენება სიის ელემენტებთან და განსაზღვრავს <li> ელემენტის სიმბოლოს.

მოდით გავაუმჯობესოთ წინა მაგალითის ვიზუალი:

HTML
<p>TODO სია:</p>
<ul>
  <li class="done">ვისწავლო HTML</li>
  <li class="done">ვისწავლო CSS</li>
  <li>ვისწავლო Git</li>
  <li>ვისწავლო JS</li>
  <li>ვისწავლო TS</li>
  <li>ვისწავლო Angular</li>
</ul>
CSS
ul li {
  padding-left: 5px;
}

ul li::marker {
  content: '⬜️';
}

ul li.done::marker {
  content: '✅';
}
ასეთ შემთხვევაში, checkbox ელემენტის გამოყენება უმჯობესია, თუმცა ამ მაგალითში განვიხილავთ მხოლოდ ვიზუალურ მხარეს.

ზოგადი ფსევდო ელემენტები

first-letter

::first-letter პირველი სიმბოლოს დასტილვაში გვეხამრება.

HTML
<p>პარაგრაფის ელემენტი</p>
CSS
p::first-letter {
  color: blue;
  font-size: 1.5rem;
}

placeholder

::placeholder ფსევდო ელემენტი გამოიყენება ფორმის placeholder-ის დასტილვისთვის.

HTML
<input placeholder="თქვენი სახელი" id="name" />
CSS
input::placeholder {
  color: red;
}

selection

::selection ფსევდო ელემენტი გამოიყენება მონიშნული ("დაჰაილაითებული") ტექსტის დასასტილად.

HTML
<p>მონიშნეთ ტექსტში ნებისმიერი ადგილი.</p>
CSS
p::selection {
  color: red;
  background-color: yellow;
}

შეჯამება

CSS-ში გვაქვს ბევრი ფსევდო ელემენტი, რომლის გამოყენებითაც შეგვიძლია დავამატოთ ვიზუალური ელემენტი, ან დავსტილოთ ელემენტის გარკვეული თვისებები. სრული ფსევდო ელემენტების სანახავად ეწვიეთ MDN-ის სტატიას.