📔
Tutorial The Awwwesomes – HTML & CSS
  • Wstęp
  • Jak działa internet?
  • Narzędzia dewelopera stron internetowych
  • Co zawiera strona internetowa?
  • Kod HTML
    • Podstawowe znaczniki HTML
    • Proste formularze
    • Definiowanie struktury strony
  • Kod CSS
  • Dołączanie fontów Google Fonts
  • Podstawowe reguły rządzące CSS
    • Kaskadowość i dziedziczenie w CSS
    • Złożone selektory i specyficzność
    • Modeł pudełkowy
    • Jednostki w CSS
  • Tworzenie layoutu strony
    • Elementy liniowe i blokowe oraz właściwość display
    • Opływanie elementów
    • Pozycjonujemy elementy na stronie
    • Jak wyśrodkować elementy w pionie i poziomie?
    • Umieszczamy elementy na siatce
  • Zaawansowane selektory
    • Pseudoelementy
    • Pseudoklasy CSS
  • Animacje w CSS
    • Właściwość transition
    • Przekształcanie elementów (transform)
    • Tworzenie animacji – @keyframes
  • Podstawy kodowania responsywnych stron
  • Co dalej?
  • Dodatki
    • Jak pisać czytelny kod?
    • Koderskie wyzwanie, czyli #codenovember
    • Layouty do zakodowania
    • Photoshop dla frontendowca
Powered by GitBook
On this page

Was this helpful?

  1. Zaawansowane selektory

Pseudoelementy

PreviousZaawansowane selektoryNextPseudoklasy CSS

Last updated 4 years ago

Was this helpful?

Pseudoelementy, w odróżnieniu od pseudoklas pozwalają nam na stylowanie części dokumentu bez uciekania się do dodawania czysto dekoracyjnych elementów HTML. Zwiększają znacznie nasze możliwości w kodowaniu ciekawych efektów zawartych w projektach stron.

selektor::pseudoelement {
  właściwość: wartość;
}

Tworzenie "wirtualnych" elementów

Jednymi z najczęściej używanych pseudoelementów są ::before oraz ::after. Umożliwiają nam one dodanie "wirtualnej" zawartości, która nie będzie dodana do dokumentu HTML, ale będzie pełnić funkcję dekoracyjną bądź wzbogacającą zawartość tego dokumentu. Do każdego elementu HTML możemy dodać dokładnie jeden pseudoelement ::before oraz dokładnie jeden element ::after.

Important::Ważne

Istotne jest, aby wewnątrz selektora pseudoelementu (::before tak samo jak ::after) znajdowała się właściwość content mówiąca o zawartości tekstowej pseudoelementu. Może się zdarzyć, że nie chcemy wstawiać żadnego tekstu do pseudoelementu, ponieważ jest on tam całkowicie zbędny – wtedy jako wartość właściwości content wystarczy podać spację lub pusty ciąg ( lub ``).

Powyższe pseudoelementy mogą mieć . Poniżej prezentujemy kilka z najczęściej używanych.

Przykładowo, możemy zmienić domyślne, nudne kropki przy elementach listy na złote gwiazdki.

<ul class="stars">
  <li>Betelgeza</li>
  <li>Syriusz</li>
  <li>Gwiazda Polarna</li>
</ul>
.stars {
  list-style-type: none;
  padding-left: 0;
}

.stars li::before {
  content: '\2605';
  color: gold;
  margin-right: 1rem;
}
  • Betelgeza

  • Syriusz

  • Gwiazda Polarna

Pseudoelementy okazują się także bardzo przydatne, kiedy chcemy dodać podpowiedzi (tooltipy) w jakimś miejscu na stronie.

<a href="http://theawwwesomes.org" class="tooltip">
  The Awwwesomes
</a>
.tooltip {
  position: relative;
}

.tooltip::before {
  content: 'Darmowe warsztaty HTML i CSS';
  position: absolute;
  left: 100%;
  top: 0;
  background: coral;
  color: white;
  width: 100%;
  padding: 0.5em;
  margin-left: 1em;
  border-radius: 5px; /* dodaje zaokrąglenia rogów */
  display: none;
}

.tooltip:hover::before {
  display: inline-block;
}
.clearfix::before,
.clearfix::after {
  content: ' ';
  display: table;
}

.clearfix::after {
  clear: both; /* Pseudoelement zamiast pustego div'a */
}
<div class="container clearfix">
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
</div>

Dodanie zadeklarowanej powyżej klasy clearfix sprawi, że wewnątrz kontenera powstanie pseudoelement i nie będzie już potrzeby dodawania zupełnie zbędnego, pustego elementu HTML.

Important::Ważne

Niestety, nie jest możliwe dodanie powyższych pseudoelementów dla elementów pustych, czyli między innymi <img> lub <input>.

Inne pseudoelementy

Za pomocą pseudoelementu ::selection możemy zmieniać kolor tła zaznaczonego tekstu (domyślnie zwykle jest to niebieski).

/*
  Uwaga! Aby nasz pseudoelement
  działał prawidłowo w Firefoksie
  należy dodać przedrostek `-moz-`
*/
::-moz-selection {
  background: hotpink;
}

::selection {
  background: hotpink;
}

Zaznaczcie fragment poniższego akapitu i sprawdźcie sami, jak to działa:

Readymade yuccie man bun distillery yr twee. Pitchfork etsy salvia quinoa put a bird on it synth. Mixtape craft beer semiotics vice. Chartreuse swag blog drinking vinegar blue bottle brunch meh echo park shabby chic yuccie next level. Flannel small batch semiotics selfies, gastropub forage fingerstache you probably haven't heard of them synth keytar before they sold out. Mumblecore brooklyn meggings put a bird on it, beard pabst kale chips VHS godard typewriter. Swag ethical hashtag man braid locavore small batch.

Innym ciekawym pseudoelementem jest ::first-letter, dzięki któremu możemy uzyskać na przykład efekt znany z książek, czyli wyróżnienie pierwszej litery akapitu.

::first-letter {
  font-size: 3em;
}

Typewriter 90's man braid, banh mi stumptown drinking vinegar XOXO sustainable pabst cronut gluten-free truffaut biodiesel. Locavore pickled freegan, plaid fingerstache bitters ramps gastropub craft beer readymade deep v cornhole aesthetic. Semiotics lo-fi affogato, microdosing single-origin coffee aesthetic tumblr lomo 3 wolf moon iPhone swag marfa pour-over vegan. Vinyl jean shorts squid, 8-bit brooklyn everyday carry viral YOLO stumptown shoreditch locavore slow-carb.

Przypomnijmy sobie teraz przykład z , w którym próbowaliśmy sobie radzić z czyszczeniem opływania za pomocą dodatkowego, pustego elementu HTML. Zapowiedzieliśmy już wtedy, że można to zrobić w dużo bardziej elegancki sposób używając właśnie pseudoelementów.

Poniżej prezentujemy

Powyższe przykłady nie wyczerpują .

wiele różnorodnych zastosowań
The Awwwesomes
rozdziału 14.2
micro-clearfix
wszystkich rodzajów selektorów pseudoelementów