Есть некоторые отличия:
Уникальность
Идентификаторы должны быть уникальными, классы могут повторяться. Это логично, если вы посмотрите на их ожидаемое использование.
Использование
Идентификаторы должны использоваться для обозначения больших разделов веб-сайта (например, #header) или уникальных элементов, доступ к которым осуществляется через Javascript (например, #killSession)
Классы должны использоваться для многоразовых деталей.
Специфичность
Идентификаторам присваивается значение специфичности 100, а классы стоят только 1.
Итак, это правило:
#id .class
Стоит 101 балл.
Это правило:
#id #id2
Стоит 200 очков и всегда превосходит правило #id .class (независимо от исходного порядка).
Производительность
В плане производительности, получение элементов по идентификатору всегда быстрее, чем в классе, особенно когда речь идет о Javascript. Я бы хотел, чтобы кто-то добавил к этому несколько жестких чисел.
Обсуждение