Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   имя для класса (https://javascript.ru/forum/xhtml-html-css/18976-imya-dlya-klassa.html)

vflash 21.07.2011 20:49

имя для класса
 
как вы предпочтете записать имя класса (css) для элемента который состоит в какой-то группе чтобы в имени фигурировало и имя и его группа. суть опроса понять какой подход более интуитивно понятен, что полное название класса состоит из двух половинок "группа и имя элемента"
------
чуток добавлю данных для полноты картины
1) группа-элемент
2) группа_элемент

1) какойто_элемент
2) какойто-элемент

Gvozd 22.07.2011 00:05

.some-group .some-element {
    /* ... */
}

<div class="some-group">
    <div class="some-element">
    </div>
</div>

или
.some-group {
    /* ... base group styles ... */
}
.some-element1 {
    /* ... element1 overloaded styles ... */
}
.some-element2 {
    /* ... element2 overloaded styles ... */
}

<div class="some-group some-element1"></div>
<div class="some-group some-element2"></div>

Не?
Или вы как-то еще группируете элементы?

vflash 22.07.2011 00:52

Gvozd,
я хочу слить в одну запись
a) .some-group .some-group .some-group .some-group {}
b) .some .some .some .some {}

нужно их слить в одно предложение без порбелов и в качестве разделителя могу использовать только [-] или [_] .


1:
a) .some_group-some_group-some_group-some_group {}
b) .some-some-some-some {}

2:
a) .some-group_some-group_some-group_some-group {}
b) .some_some_some_some {}


я склоняюсь к варианту 1, что группы нужно разделять символом [-] , потому как если имя группы состоит только из одного слова (.some .some .some .some {} ) то оно сольется в привычный css вид ( .some-some-some-some {} )

знак [ _ ] в языках программирования(и не только) часто используется как альтернатива [пробела] там где пробел использовать нельзя. "some group" - > some_group . потому знак [ _ ] как нельзя кстати можно использовать для разделителя в наименовании группы

в пользу первого варианта мои аргументы такие

Gvozd 22.07.2011 01:28

А зачем вы хотите слить в одну записи разнородные сущности?
можете привести более конкретный пример, где стоит громоздить длинное имя класса?
В указанных мною примерах, например это было бы не так удобно и очевидно.

vflash 22.07.2011 01:51

для оптимизации. тема древняя , даже находил статью на MDC за 2000г , советовали чтоб по возможности избавлялись от избытка вложений.

но вы не в теме )

.some_group-some_element {
    /* ... */
}
<div class="some_group">
    <div class="some_group-some_element">
    </div>
</div>

Gvozd 22.07.2011 12:17

Цитата:

Сообщение от vflash
для оптимизации. тема древняя

ИМХО, сейчас такой проблемы не стоит.
браузеры лучше написаны, и компы помощнее
так, что можно не писать такие хаки производительности, а писать естественным и очевидным способом. Например как мой первый вариант
Цитата:

Сообщение от vflash
но вы не в теме )

не, не в теме)))
в далеком 2000-м моим самым главным достижением была прочитанная книга "как писать игры для ZX Spectrum"
о вебе я тогда не имел ни малейшего понятия

Gozar 22.07.2011 14:20

Цитата:

Сообщение от vflash (Сообщение 114781)
но вы не в теме )

А я от такого отказался, в пользу того, что написал Gvozd. При разрастании проекта это становиться неудобным.

Тогда уж лучше по id, а классы вообще не использовать

Kolyaj 22.07.2011 14:50

Цитата:

Сообщение от Gvozd
ИМХО, сейчас такой проблемы не стоит.

Стоит. Не буду называть точные цифры, чтобы не наврать, т.к. не помню, но в Яндекс.Почте выигрыш в скорости отрисовки был значительный после отказа от каскадов.

Архитектурная причина более важная. Про абсолютно независимые блоки здесь вроде слышали. Допустим у нас есть два разных списка: list1 и list2. У каждого из них внутри есть элементы item. В каскадном варианте стили для итемов будут
.list1 .item {}
.list2 .item {}

Всё прекрасно, пока мы не вложим один список в другой.

В АНФ стиле такой проблемы нет
.list1__item {}
.list2__item {}



Названия, кстати
.some-group__some-element {}
.some-group_modifier {}
.some-group__some-element_modifier {}

Kolyaj 22.07.2011 15:07

Вот ещё у меня есть на тему http://alljs.ru/crossjs/overview/classnames

Sweet 22.07.2011 15:18

Kolyaj, а как попасть на эту статью с главной страницы?:)


Часовой пояс GMT +3, время: 02:54.