Który zapis znacznika <div> może wystąpić w dokumencie HTML tylko jeden raz, a ponowne użycie tego zapisu spowoduje wygenerowanie błędów podczas walidacji dokumentu?
Pytanie z egzaminu CKE, styczeń 2019 (arkusz E.14-X-19.01).
Poprawny jest zapis <div id="identyfikator">. Specyfikacja HTML wymaga, aby wartość atrybutu id była unikalna w całym dokumencie. Jeśli ten sam identyfikator pojawi się drugi raz, walidator W3C zgłosi błąd o zduplikowanym ID.
Wynika to z przeznaczenia identyfikatora: wskazuje dokładnie jeden element - dla selektora CSS #identyfikator, dla funkcji document.getElementById() w JavaScripcie i dla odnośnika do miejsca na stronie (href="#identyfikator"). Do zapamiętania: id - jeden element, class - wiele elementów. Na stronie może być wiele identyfikatorów, ale każdy z inną wartością. W arkuszu stylów zapis #identyfikator ma też wyższą specyficzność niż selektor klasy, więc wygrywa przy konflikcie reguł.
Problem z tym pytaniem najczęściej wynika z uznania klasy za coś „wyjątkowego”. Atrybut class służy do grupowania elementów, więc <div class="klasa"> może wystąpić w dokumencie dowolną liczbę razy - po to właśnie są klasy, aby jednym stylem objąć wiele bloków. Zapis <div class="klasa1 klasa2"> przypisuje elementowi dwie klasy naraz i także może się powtarzać; wiele klas oddzielonych spacją to zwykła, poprawna konstrukcja.
Goły znacznik <div> to neutralny kontener blokowy, który na typowej stronie występuje dziesiątki razy. Ograniczenie „tylko jeden raz” dotyczy wyłącznie konkretnej wartości atrybutu id. Powtórzony identyfikator nie zatrzyma wyświetlania strony, ale walidacja wykaże błąd, a skrypt pobierający element po ID odnajdzie tylko pierwszy z nich, co prowadzi do trudnych do wykrycia usterek. Dlatego przy kolejnym bloku o tej samej roli używa się klasy, a nie powtarza identyfikatora.