ID должны быть уникальными в документе.
Класс может быть применен (и комбинирован) к нескольким элементам на одной странице.
Идентификаторы не могут быть объединены (множественные идентификаторы). Это работает:
<div class="beautiful blonde stupid"> blah blah blah </div>
но это не работает:
<div id="Paris Hilton"> blah blah blah </div>
Динамический HTML обычно использует идентификаторы для управления элементами. Элементы с идентификаторами имеют самый быстрый «поиск», как упоминает Клетус, когда javascript каким-то образом используется для взаимодействия страницы с пользователем.
Подумайте о классе и идентификаторе в этих контекстах, и причины каждого из них станут ясными.
Представьте себе страницу с несколькими функциональными элементами. Каждый div должен иметь один и тот же класс для отображения общего стиля (то есть ширины). И каждый div нуждается в уникальном идентификаторе, чтобы стилизовать его, когда он был выбран. В этой ситуации у вас может быть что-то вроде этого:
<div class="demo" id="div1" onlick="action()"> blah blah blah </div>
и подпрограмма javascript где-то вроде:
function action()
{
document.getElementById( 'div1' ).style.backgroundColor = 'red'
}
Примечание: это глупый код, но он должен понять суть
Элемент может быть уникальным на каждой веб-странице, но быть общим для веб-сайта. Таким образом, имеет смысл использовать класс в этом контексте, даже если он уникален на странице.
Итак, общее практическое правило - , если оно уникально, используйте id, если не используется класс . При необходимости действительно легко изменить id на класс. Это не так легко переключиться обратно.