Selektory#
Selektor uniwersalny#
* { /* deklaracje */ }
Selektor uniwersalny (universal selector), zapisany jako nazwa kwalifikowana CSS za pomocą znaku gwiazdki (U +002, *
) stanowiącej nazwę lokalną, reprezentuje nazwę kwalifikowaną elementu o dowolnym typie. Odpowiada on każdemu pojedynczemu elementowi w drzewie dokumentu w dowolnej przestrzeni nazw (włącznie z elementami bez przestrzeni nazw), jeśli żadna domyślna przestrzeń nazw nie została określona dla selektora. W przypadku określenia domyślnej przestrzeni nazw należy zapoznać się z kolejnym podrozdziałem.
Jeśli selektor uniwersalny reprezentowany przez *
(tj. bez prefiksu przestrzeni nazw) nie jest jedynym składnikiem selektora złożonego lub zaraz za nim następuje pseudoelement, to znak *
może zostać pominięty, a obecność selektora uniwersalnego jest dorozumiana (domyślna).
Poniższe selektory z każdej pary będą równoważne:
*[hreflang|=en]
[hreflang|=en]
*.warning
.warning
*#myid
#myid
Tak czy inaczej zaleca się, żeby nie pomijać znaku *
, przez co ryzyko błędnej interpretacji selektora zostanie obniżone, jak w przypadku div :first-child
i div:first-child
. Selektor div *:first-child
będzie czytelniejszy i łatwiejszy do zrozumienia dla osób początkujących.
Warto przypomnieć, że selektor uniwersalny nie odgrywa żadnej roli przy wyliczaniu specyficzność.
Prosty przykład:
<!DOCTYPE html>
<html>
<head>
<style>
* {color: blue;}
div * strong {color: red;}
</style>
</head>
<body>
<p>Akapit ma kolor niebieski.</p>
<div> Jakiś tekst wewnątrz DIV ma kolor niebieski
<p>Akapit ma kolor niebieski, <strong>ale mocna emfaza ma już kolor czerwony</strong>, i znów akapit.</p>
Jakiś tekst wewnątrz DIV ma kolor niebieski
</div>
<p>Akapit ma kolor niebieski.</p>
</body>
</html>
Selektor uniwersalny i przestrzenie nazw#
Selektor uniwersalny zezwala na użycie opcjonalnego komponentu przestrzeni nazw. Stosuje się go w następujący sposób:
- ns|*
Reprezentuje wszystkie elementy w przestrzeni nazw
ns
.- *|*
Reprezentuje wszystkie elementy (niezależnie od posiadania lub braku przestrzeni nazw).
- |*
Reprezentuje wszystkie elementy nienależącą do żadnej przestrzeni nazw.
- *
Jeśli domyślna przestrzeń nazw nie została określona, to jest równoważny z
*|*
. W przeciwnym razie oznaczans|*
, gdziens
jest domyślną przestrzenią nazw.
Selektor uniwersalny zawierający prefiks przestrzeni nazw, który nie został zadeklarowany, jest nieprawidłowym selektorem.