Макфарланд - Большая книга CSS последнее издание. Там учат использовать классы вместо id и дано несколько ссылок с доводами против id. В курсах lynda.com тоже этому вопросу уделяют внимание, там препод сказал что id считают плохим из-за войн значимости, типа если есть айди, то его трудно перебить, тоже самое написано и у макфарланда. Хотя в линде препод использует айди все таки. id удобен для якорей, есть еще вариант установки якорей с помощью <a name="">, но валидатор пишет предупреждение The name attribute is obsolete. Consider putting an id attribute on the nearest container instead. У Макфарланда такой пример: <div id="article"> <p>параграф</p> <p>другой параграф</p> <p class="special">специальный параграф</p> </div> решаете сделать абзац внутри div красным: #article p {color:red;} затем захотелось сделать текст абзаца с классом сделать синим: .special {color:blue;} но придется писать #article .special {color:blue;} возникает 2 проблемы: 1-селектор становится длиннее; 2-теперь синий цвет применяется только к классу .special внутри элемента с id="article" если же заменить id на class: <div class="article"> <p>параграф</p> <p>другой параграф</p> <p class="special">специальный параграф</p> </div> теперь можно задать стили: .article p {color:red;} p.special {color:blue;} подобный пример: http://jsfiddle.net/csswizardry/gTZGq/1/