властивості ID:
як сказав pepelsbey і fiskus_boulder - підвищення специфічності правила
робота з навігаційними «якорями» - посилання back to top etc.
якщо ви використовуєте ДжаваСкрипт без бібліотек, то швидше зробити document.getElementById ( 'header'), ніж через кастомний getElementByClassName, який працює все одно повільніше, ніж нативний.
властивості class:
можна використовувати багато разів на сторінці
можна використовувати кілька класів для одного елемента
можна робити «модульні» правила, на зразок тих, що використовуються «універсальної версткою» Віталія Харисова в Яндексі
Підкажіть плз, на якому движку працюють блоги жж? Хочу створити собі точно такий, тільки на своєму хостингу.
як мінімум, можу сказати про пріоритет
A selector's specificity is calculated as follows:
* Count the number of ID selectors in the selector (= a)
* Count the number of class selectors, attributes selectors, and pseudo-classes in the selector (= b)
* Count the number of type selectors and pseudo-elements in the selector (= c)
* Ignore the universal selector
Все дуже просто, це ж всі об'єкти по сему клас це узагальнююча описова структура, а id це приватна, а по скільки пріоритет вибудовується в порядку убування спершу властивості класу, потім ідентифікатор, і тільки потім властивості певні на елементі. Так що для зручності і нормального логічного читання треба використовувати змішаний варіант (до питання про верстку). Якщо брати скрипти, то використання id або class визначає наявність бібліотеки по роботі з DOM елементами (типу jQuery) - але питання то був про верстку. А проблеми рендеринга - сильно впливають тільки на IE в інших браузерах це не так помітно.