Gdzieś ostatnio przeczytałem, że ID [błąd ortograficzny] się nie powinno używać
Bo to z czegoś wynika. Kiedyś używałem id, tyle, że praktycznie w 99% kiedy używałem Id, po jakimś czasie i tak musiałem to przerabiać na klasy. A to dlatego, że id ma takie ograniczenie, że może być tylko jeden element z danym id (więc zrobisz element id="slider"
, potem okazuje się, że potrzebne są dwa slajdery na stronie i musisz i tak przerobić na class="slider"
). Także nieraz musiałem poprawiać cudzy kod, z id na klasy, bo ktoś nie pomyślał o tym, że to zła praktyka.
Podsumowując. Nawet jak użyjesz id, to i tak będziesz to musiał zmienić potem na klasę. Więc po co pisać dwa razy? Nie lepiej od razu nie używać id?
Wyjątkiem są rzeczy unikalne, do których musisz się jakoś odnieść, np. posty na forum internetowym. Jeśli przypiszesz do każdego posta unikalne id odpowiadające id z bazy, np.
<div class="post" id="post-128"></div>
to potem możesz się odnieść za pomocą kotwicy w HTMLu np. http://adres-forum.pl/watek/12/#post-128
albo za pomocą JS w tych wyjątkowych sytuacjach kiedy coś musi unikalne. Ale też: do zwykłego onclick nie trzeba używać id. To też lepiej zrobić na klasach, żeby móc potem stworzyć kilka elementow z takim samym onclick.
Generalnie jeśli chodzi o ID to łatwiej podać argumenty przeciwko, niż podać te rzadkie sytuacje, kiedy ID się przydają.
Co do różnicy między klasami a data, to też - trzeba mieć wyczucie kiedy dana rzecz jest bardziej odpowiednia. Klasy CSS kiepsko się nadają np. do przechowywania customowych danych. Np.
<div class="product-description" data-product="IPhone 6" data-price="3199">Ajfon</div>
Cięzko byłoby to napisać używając klas CSS....