Selektor CSS a:link {color:red} zawarty w kaskadowych arkuszach stylów definiuje
A. pseudoelement.
B. identyfikator.
C. klasę.
D. pseudoklasę.
Pytanie z egzaminu CKE, styczeń 2015 (arkusz E.14-X-15.01).
Selektor a:link { color: red; } definiuje pseudoklasę, dokładniej pseudoklasę :link przypisaną do elementu a. W CSS pseudoklasy opisują specjalny stan elementu, a nie osobny element w dokumencie HTML. Tutaj chodzi o odnośnik, który ma atrybut href i nie został jeszcze odwiedzony przez użytkownika. W praktyce taki zapis ustawi czerwony kolor tekstu dla nieodwiedzonych linków. To jest klasyczny przykład pracy ze stanami interfejsu: :link, :visited, :hover, :active czy :focus. Moim zdaniem warto to dobrze zapamiętać, bo przy stylowaniu menu, przycisków i linków na stronie bardzo często używa się właśnie pseudoklas. Dobra praktyka mówi też, żeby zachować sensowną kolejność reguł dla linków, często spotyka się schemat :link, :visited, :hover, :active, żeby kaskada CSS nie nadpisywała efektów w dziwny sposób. Klasa wyglądałaby inaczej, np. .link, identyfikator to #link, a pseudoelement zwykle zapisuje się jako ::before albo ::first-letter.
W tym pytaniu łatwo pomylić kilka podobnie brzmiących pojęć z CSS, ale zapis a:link nie oznacza ani klasy, ani identyfikatora, ani pseudoelementu. Klasa w CSS jest wybierana za pomocą kropki, na przykład .aktywny albo a.wazny-link. Klasy służą do grupowania elementów, którym sami nadajemy nazwę w atrybucie class w HTML. W selektorze a:link nie ma kropki, więc nie jest to klasa, tylko element a połączony ze stanem :link. Identyfikator zapisuje się przez znak #, na przykład #naglowek, i odnosi się do wartości atrybutu id. Z mojego doświadczenia wynika, że uczniowie czasem widzą dwukropek i traktują go jak jakiś separator nazwy, ale w CSS dwukropek ma konkretne znaczenie: wprowadza pseudoklasę. Pseudoelement też nie pasuje, bo pseudoelement wskazuje fragment elementu albo tworzy wirtualną część, np. ::before, ::after, ::first-line. Pseudoelementy w CSS3 zaleca się zapisywać z podwójnym dwukropkiem, żeby odróżniać je od pseudoklas, chociaż starsze zapisy z jednym dwukropkiem jeszcze czasem działają. :link opisuje stan odnośnika, czyli link nieodwiedzony. To nie tworzy nowego elementu i nie wymaga żadnej klasy w HTML. Po prostu przeglądarka sama rozpoznaje stan linku i stosuje odpowiednią regułę stylu.