Przejdź do głównej treści
  1. Strona główna
  2. Technik informatyk
  3. INF.03
  4. Pytanie

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Tworzenie stron WWW Systemy CMS i narzędzia webowe

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?

W tym pytaniu chodzi o atrybut id, czyli identyfikator elementu w dokumencie HTML. Zapis <div id='identyfikator'> jest poprawną odpowiedzią, bo konkretna wartość id musi być unikalna w całym dokumencie. Innymi słowy: możesz mieć wiele elementów z atrybutem id, ale każdy z nich powinien mieć inną wartość, np. <div id='naglowek'>, <div id='menu'>, <div id='stopka'>. Jeśli drugi raz użyjesz dokładnie tego samego identyfikatora, np. <div id='identyfikator'> w dwóch miejscach, walidator HTML zgłosi błąd lub ostrzeżenie związane z duplikacją identyfikatora. Wynika to ze standardów HTML i ma praktyczne znaczenie. Identyfikator służy często do precyzyjnego wskazania jednego elementu w CSS, np. selektorem #identyfikator, albo w JavaScript, np. przez document.getElementById('identyfikator'). Gdy dwa elementy mają ten sam id, przeglądarka może niby coś wyświetlić, ale kod staje się niejednoznaczny i trudny do utrzymania. Moim zdaniem to jedna z tych zasad, które warto sobie mocno zapamiętać, bo później oszczędza sporo dziwnego debugowania. Klasy mogą się powtarzać, zwykłe divy też, ale ten sam id nie powinien.
W tym zagadnieniu łatwo pomylić atrybut class z atrybutem id, bo oba są używane bardzo często przy stylowaniu CSS i pracy z JavaScriptem. Różnica jest jednak zasadnicza. Klasa nie identyfikuje pojedynczego elementu, tylko opisuje pewną grupę elementów albo ich wspólną cechę. Dlatego zapis <div class='klasa'> może pojawić się w dokumencie wiele razy i jest to całkowicie normalne. W praktyce właśnie po to klasy istnieją: można nadać tę samą klasę wielu przyciskom, kafelkom, akapitom czy sekcjom, a potem wspólnie je ostylować przez selektor .klasa. Podobnie zapis z kilkoma klasami, np. <div class='klasa1 klasa2'>, nie oznacza niczego unikalnego. To tylko przypisanie do elementu dwóch klas jednocześnie, co jest bardzo częstą i dobrą praktyką, szczególnie w większych projektach lub przy metodykach typu BEM czy frameworkach CSS. Zwykły znacznik <div> również może występować dowolną liczbę razy, bo div jest neutralnym kontenerem blokowym, używanym do budowania układu strony. Typowy błąd myślowy polega na tym, że skoro coś ma nazwę, to wydaje się wyjątkowe. W HTML wyjątkowy ma być jednak konkretny identyfikator id, a nie nazwa klasy ani sam typ znacznika. Jeśli powtórzysz tę samą wartość id, walidacja dokumentu może wykazać błąd, a skrypty korzystające z DOM mogą działać nie tak, jak zakładasz. Z mojego doświadczenia takie duplikaty id są małe, ale potrafią zrobić naprawdę irytujący bałagan w projekcie.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wyślemy tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.