Какие название используете для классов в HTML/CSS?

Какие название используете для классов в HTML/CSS?
Собственно, часто встречаюсь с проблемой в названии классов, идентификаторов и т.д..
Часто использую что то такое: container, wrapper, text, caption...
Но почти всегда их не хватает и не могу придумать что нибудь подходящее.
Приходиться делать так:
<div class="first">
    <div class="text">lorem ipsum</div>
</div>
<div class="second">
    <div class="text">lorem ipsum</div>
</div>

И в CSS:
.first .text {
    color: #fff;
    background: #222;
}
.second .text {
    color: #222;
    background: #fff;
    font-size: 32px;
    line-height: 12px;
}

Правильно ли такое вообще делать?
И как быть?
Как вы действуете в подобных случаях?
  • Вопрос задан
  • 40639 просмотров
Решения вопроса 3
GoodProject
@GoodProject
Верстальщик
Лови

Основные
.wrapper - /*обвертка сайта*/
.header - /*верхняя часть сайта*/
.sidebar - /*сайдбар (левая или правая часть сайта)*/
.content - /*тело сайта (центральная часть)*/
.footer  - /*нижнаяя часть сайта*/


Название блока (обвертка)
.bl 
.block 
.box
.wrap
.inner
.container
.main


Секции блока
.head, .header - /*верхняя часть блока например заголовок*/
.cnt, .content, .body - /*тело блока например текс с картинкой*/
.footer - /*нижняя часть блока к примеру дата добавления, категория и т.д.*/


Колонки
.column, .col - /*колонка*/

Списки
.list
.item


Позиционные классы
.top /* элемент сверху */
.left /* элемент слева float:left */
.right /* элемент справа float:right */
.bottom /* элемент внизу */
.center /* элемент отцвентрирован  margin:0 auto; */
.fixed - /*фиксированный элемент postion:fixed */


Переходы
.next  - /*следующий*/
.prev  - /*предыдущий*/
.last  - /*последний*/
.first - /*первый*/
.back  - /*назад*/
.ahead - /*вперед*/


Чисельные
.one
.thwo
.three
.four
.five


Размеры
.xs, .tiny   - /*очень маленький*/
.s,  .small  - /*маленький*/
.md, .medium - /*средний */
.lg, .large, .big - /*большой */
.xl, .extra-large - /*очень большой*/


Цвета
.danger  - /*цвет опасности*/
.default - /*стандартный цвет*/
.warning, .error - /*цве ошибки*/
.success - /*цвет успеха (к примеру верно введн код подтвержления)*/
.primary - /*основной цвет */


Кнопки
.button, .btn - /*кнопка*/
.loading - /*загрузка*/
.close - /*закрыть*/
.open  - /*открыть*/
.touch - /*клик*/
.edit  - /*редактировать*/
.more  - /*больше*/
.remove  - /*удалить*/
.logout  - /*выход*/
.select  - /*выбрать*/
.divider - /*выпадающийся список меню*/
.caret, .arrow - /*стрелочка*/
.up - /* Вверх */
.down - /* Вниз */
.delete - /* удалить */
.reply    - /*ответить*/


Персона
.profile - /*профиль*/
.person - /*человек*/
.ava, .avatar - /*аватарка, картинка*/
.name - /*имя*/
.description - /*описание*/
.address  - /*адресс*/
.nickname - /*ник*/
.birthday - /*дата рождения*/
.sex - /*пол*/
.author - /* автор */

Заголовки
.title - /*заголовок*/
.short-title - /*скороченный заголовок*/
.full-title  - /*полный заголовок*/


Ссылки
.link - /*ссылка*/

Текст
.text, .txt, .paragraph  - /*текст*/
.info, .information - /*информация*/


Картинки
.image, .img - /*картинка*/
.icon, .ic   - /*иконка*/
.bg - /*фоновая картинки или цвет*/


Формы
.search, .form-search - /*поиск по сайту*/
.input - /*текстовый элемент*/
.form  - /*форма*/
.form-group - /*группа элементов формы*/
.help-block - /*текст подсказки*/
.label - /*название элемента формы*/


Катагории
.type - /*тип*/
.cat, .category - /*катигория*/
.subcat, .subcategory - /*подкатегория*/
.section    - /*раздел*/
.subsection - /*подраздел*/


Видео
.video
.play  - /*пуск*/
.stop  - /*стоп*/
.pause - /*пауза*/


Социальные сети
.social - /* социальные сети */
.vk   - /*вконтакте*/
.fb   - /*фейсбук*/
.twit - /*твиттер*/
.inst - /*инстаграм */


Активные классы
.none     - /*скрытый элемент*/
.disabled - /*заблокированный*/
.active, .current   - /*активный */
.selected - /*выбраный*/
.visible  - /*видный элемент*/
.focus    - /*нажатый*/


Временные классы
.time  - /*время*/
.date  - /*дата*/
.day   - /*день*/
.month - /*месяц*/
.year  - /*год*/


Очистка
.clear, .clearfix, .clr - /*очистка*/

Разделители
.separator, .divide - /*разделитель вертикальный для слов */
.br, .line - /*разделитель горизонтальный для блоков*/


Остоньлые названия
.logo    - /*лого сайта*/
.new    - /*новинка*/
.sale   - /*распродажа*/
.feedback - /*обратная связь*/
.support - /*помощь */
.group  - /*группа*/
.module - /*модуль*/
.posters - /*пост*/
.form   - /*форма*/
.tabs   - /*вкладки*/
.slider - /*слайдер*/
.news   - /*новости*/
.table  - /*таблица*/
.full   - /*полный*/
.breadcrumbs - /*Хлебные крошки*/
.pagination, .pager - /*Нумерация страниц*/
.navbar, .nav, .menu, .navigation - /*Навигация (меню)*/
.dropdown - /*выпадающейся меню */
.comment  - /*комментарий*/
.subscription - /* Подписка */
.special - /* особенный элемент */
.standard - /* стандартный элемент */
.screens - /* Скрины */
.rate - /* рейтинг */
.online - /* онлайн */
.panel - /* панель */
.popup - /* попап */
.version - /* версия */
.page - /* страница */
.banners - /* баннер */
.map - /* Карта */
.more - /*еще, подробнее*/
.tags - /* тег */
.price - /* цена */


Взято с этого видео.
Ответ написан
dmitriy_novikov
@dmitriy_novikov
Занимаюсь web-разработкой с 2010г. http://dmnv.ru
Нужно стараться, чтобы названия классов соответствовали семантике. Нужно делать так, чтобы было понятно, что это за блок.
если это верхний слайдер, то topslider, если это меню в футере, то footer-menu. Но не стоит придумывать названия, в зависимости от внешнего вида блока - потому что через какое-то время решите слегка поменять оформление, и будет неочевидно, что small-red-sidebar это большой зеленый блок в центре.
А еще для вас есть БЭМ - целая методология, как лучше именовать классы.
Ответ написан
littleguga
@littleguga
Не стыдно не знать, а стыдно не интересоваться.
Конкретно сейчас я называю в зависимости от содержимого, то есть получается так:
content-title
     content-text
     content-img

Но очень хочу в ближайшее время перейти на БЭМ.

А так название берите от содержимого блока - будет блок с товарами goods. Новые товары внутри блока goods - goods-new и т.д

Названия first/second - слишком безинформативны, тяжело потом даже самому понять будет, что к чему.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@n1ger
html+css
Используйте БЭМ или что-то вроде того.
Ответ написан
Комментировать
IlyaDeveloper
@IlyaDeveloper
Top Rated | Expert Web Developer
ну не знаю я принципиально не заморачиваюсь в этом вопросе если не хватает то придумывать подклассы почему бы и нет! Я часто container, container_icon, container_position ... и вообще старайтесь как правило стараться как можно меньше использовать, я всегда обхожусь определенно ссылаясь на блоки в родительском блоке типа container>div. в основном часто выкручиваюсь использованием псевдоклассов :first-child, :last-child ну и так дале!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы