22.07.2011, 19:00
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от Gozar
|
что пишем сюда?
|
А про что div? Какой у него смысл? Если это вложенный элемент для вёрстки то я в таких случаях пишу my-app-panel__magazin-element-i. Ну и избыточность полезна только для верхнего уровня (my-app-panel), внутри блока следить за уникальностью гораздо легче, поэтому достаточно осмысленности (my-app-panel__magazin, my-app-panel__magazin-i).
Сообщение от Gozar
|
у всех div должны быть class?
|
У всех элементов, к которым ты обращаешься в CSS или в JS должен быть класс.
|
|
22.07.2011, 20:23
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от Kolyaj
|
my-app-panel__magazin-element-i
|
то есть получается сначала следить за порядком, а потом нет? ведь по логике должно бы быть так:
my-app-panel__magazin-element__i
, а что делать в случае глобального роста вложенности. Хотя возможно я перестраховываюсь ...
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
22.07.2011, 21:16
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Это ж всё не просто так для красоты, тут решается вполне определённая проблема. Есть у нас много всяких блоков на сайте. За именами блоков мы следим, они должны быть уникальными, иначе мы просто не сможем к ним обращаться. А вот с именами внутренних элементов всё сложнее, т.к. их на порядок больше и следить за всеми ими невозможно, не говоря уже о том, что одинаковые по смыслу элементы могут содержаться в разных блоках.
Поэтому мы делаем так, чтобы имена были локальными внутри блока. Следить за уникальностью внутри одного блока намного легче. Какие будут имена внутри блока (т.е. после префикса) не так важно.
Т.е. порядок состоит в том, чтобы у всех элементов были префиксы того блока, в котором находится этот элемент.
|
|
22.07.2011, 21:40
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Я же не против основной идеи меня смущает только вот это:
Сообщение от Kolyaj
|
Какие будут имена внутри блока (т.е. после префикса) не так важно.
|
когда у меня названия стали принимать вид:
my-app-panel__magazin-element-catalog-a-box // суфикс --> catalog-a-box
я забил тревогу.
а теперь понимаю что нужно было сделать так:
my-app-panel__magazin-element__catalog-a-box // суфикс --> catalog-a-box
я немного слукавил в начале, поэтому простите меня за это
и я использовал одно подчеркивание [_], поэтому выглядело это так:
my-app-panel_magazin-element-catalog-a-box // суфикс --> catalog-a-box
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Последний раз редактировалось Gozar, 22.07.2011 в 21:44.
|
|
22.07.2011, 22:24
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Непонятно, зачем добавлять magazin-element перед catalog-a-box. Для того, чтобы обозначить, что catalog-a-box лежит в magazin-element? Так это неважно и даже вредно на этом акцентироваться. Т.е. класс будет my-app-panel__catalog-a-box.
|
|
22.07.2011, 22:53
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Идея была в том чтобы не нужно было следить за уникальностью, т.к. короткое название может повториться и придется придумывать похожее название - синоним. А точнее чтобы исключить подобную вероятность:
Цитата:
|
При текущей схеме есть очень маленькая вероятность, что два виджета будут иметь одинаковые классы.
|
только не среди виджетов, а внутри блока. Я кстати писал про то, что возможно перестраховываюсь, но до сих пор не уверен в этом.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
22.07.2011, 23:23
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от Gozar
|
только не среди виджетов, а внутри блока.
|
Это не понял.
Там в статьях я описываю разработку UI с помощью моего конструктора Widget. Идея в том, что внутри JS-"класса" содержится HTML, CSS для этого HTML и JavaScript, работающий с этим HTML и с вложенными виджетами. У виджета всегда есть имя, т.е. ссылка на виджет, например, App.MyPanel. Из этого имени и строится префикс для классов, чтобы а) префикс был уникальным, б) не надо думать над именем класса. А что после префикса, по большому счёту неважно, но лучше за этим тоже следить, чтобы шаблоны от виджета к виджету не рвались.
Пока писал, понял, что ты имел в виду. Стирать не буду, пусть лежит
Внутри блока выдумывать сложные правила для уникализации смысла мало. Блоки маленькие, весь их html, как правило, влезает в один экран, да и когда ты работаешь над блоком ты думаешь о его частях, тогда как о частях всей остальной системы не думаешь, думалки не хватит Так что внутри блока достаточно осмысленных названий.
|
|
23.07.2011, 02:28
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
От себя добавлю:
.foo_bar .fb_baz {}
А так, вообще стараюсь не плодить идентификаторы. и делаю что-то вроде такого:
#foo > div p
|
|
23.07.2011, 14:00
|
|
Профессор
|
|
Регистрация: 09.07.2007
Сообщений: 304
|
|
яндексойды нерепрезентативны для этого опроса. они уже зомбированы выбрать пункт два и они в теме. всеже нужно было было добавить пункт с двумя подчеркиванием чтоб их отсеивать )
|
|
23.07.2011, 14:27
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Я начал так писать до того, как стал яндексоидом.
|
|
|
|