Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > HTML и CSS
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2012, 22:15   #1
filehosting
Новичок
Джуниор
 
Регистрация: 02.06.2012
Сообщений: 1
По умолчанию CSS организация классов

Здравствуйте. Помогите решить проблему. Есть много страниц, во избежания конфликта имен классов нужно организовать стили.
Как вы действуете в данной ситуации? Разбиваете стили на логические блоки или, скажем, добавляете class/id в тег body и потом указываете перед классом: .home .links/#home .links? Может быть добавляете префикс перед классом: home-links? Недавано работал над сайтом. Разметка состояла из типичной: header/content (left, right)/footer
Что то вроде

Пишу c-left и c-right, т.к. классы left и right уже определены.
Допустим есть страница home и article. Для обеих нужно использовать класс link
Как лучше написать: cr-home-link / #home cr-link / cr-h-link?
cr- нужно писать для того, чтобы каждый блок (header, cr-left, cr-right, footer) имел свою область видимости.
Может лучше вообще создать файл с общими стилями и файл, отдельно для каждой страницы сайта?
П.с: не люблю наследование, т.к. в данном примере вышло бы вообще .home .c-right .link, слишком длинная запись.
filehosting вне форума Ответить с цитированием
Старый 05.10.2012, 02:45   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Может лучше вообще создать файл с общими стилями и файл, отдельно для каждой страницы сайта?
Верная мысль, но только на этапе разработки. Хотя я разделяю файлы по логическим блокам: например файл с новостями содержит стили для анонсов, самих новостей, архива и проч.
Цитата:
Может быть добавляете префикс перед классом
Что-то вроде этого... создаю классы с префиксами по следующему типу:
%назначение%[-%название_блока%]-%название_элемента%[-%состояние%]
Назначение:
g: глобальные стили (ссылки, кнопки, инпуты, отступы);
m: разметка (не глобальная, т.е. сюда не входит шапка, подвал, сайдбары, колонки, все это маркеруется айдишниками);
b: логический блок.
Название_блока:
news/articles/catalog_item etc.
Название_элемента:
— link/button etc (для глобальных);
— title/descr/text/img/tabs etc (для блоков);
Состояние:
Если один и тот же блок существует в разных состояниях, например позиция товара может быть в списке каталога, в корзине, на странице сравнения, на странице оформления заказа, в карточке товара.
Ну и супер-глобальная разметка: #header, #footer, #left-sidebar etc.
Пример:
Код:
<div class="b-news-item b-news-item-anonce">
  <div class="b-news-title b-news-title-anonce">
     text_node
  </div>
  <div class="b-news-descr b-news-descr-anonce">
    text_node
  </div>
</div>
Alar, верни репу!
Naive вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Организация цикла С++ Jillian Помощь студентам 4 13.05.2012 20:04
Организация стека SoftKoc Общие вопросы Delphi 4 11.12.2010 14:02
Организация цикла mephist Microsoft Office Excel 2 17.07.2009 16:27
Создание классов и использование объектов классов при написании программ в среде C++. Frozen inside Помощь студентам 0 16.04.2009 23:18