эх, как приходится потом мучатся с такими верстаками, которые понатыкают классов по названиям, и *** насадишь эту кривую верстку.
Никогда не называй классы по контенту!!!
Если есть возможность привязать стили к блоку без класса, то привязывай, например:
<section id="block">
<h2></h2>
</section>
#block h2 {
...
}
В данном случае нежелательно прописывать класс к h2, как многие делают, а в некоторых случаях это делать нельзя, т.к. при правке контента(если сайт на cms с возможностью редактирования через морду) класс может слететь, и будут стили без дела место занимать.
Так же необходимо понимать, где статичные блоки, где динамичные; на какие элементы будут вешаться события и будут ли эти блоки подгружаться по аяксу;
Если в разделе есть скрытые блоки (например попапы) НИКОГДА не уводи эти блоки куда нибудь в футер, они должны быть по структуре именно там, к какому блоку они относятся.
Если есть 2 и более блока одинаковые по стилям, дай им один класс, если у них небольшие различия подумай про псевдоклассы.
Вообщем, чем меньше тегов и атрибутов, тем читабельнее и динамичнее код получается, он легче весит, его легче затем править или расширять, а главное его проще насаживать!