Из задания http://yuri.ya.ru/replies.xml?item_no=4484
- сверстать звездочки
- сверстать прогрессбар
- сверстать кнопку
CSS-вёрстка должна быть по БЭМ-методологии. Материалы, в том числе и видео докладов, можно найти в Клубе БЭМ. Вести разработку нужно на GitHub. Дополнительным плюсом будет, если вы используете bem tools для сборки проекта. Пример можно посмотреть здесь https://github.com/bem/bem-bl-test . Вопросы по установке и настройке можно задавать в клубе на Яру.
У тебя есть массив CSS-классов, используемых в документе. Для простоты представим, что в документе нет DOM-узлов с 2мя или более CSS-классами.
[
'b-statcounter',
'b-statcounter__metrika',
'b-statcounter__metrika_type_js',
'i-bem',
'b-search__table',
'b-form-input',
'b-form-input_theme_grey',
'b-form-input_size_l',
'i-bem',
'b-form-input__input',
'b-search__button',
'b-form-button__content',
'b-form-button__text',
'b-form-button__input',
'i-bem',
'b-main-menu',
'b-main-menu__tab',
'b-main-menu__tab',
'b-main-menu__tab',
'b-main-menu__tab',
'b-main-menu__tab_type_selected',
'b-main-menu__tab',
'b-main-menu__tab_type_selected',
'l-page__right',
'b-static-text',
'b-static-text',
'b-foot__layout-column',
'b-foot__layout-column_type_left',
'b-link',
'b-foot__link',
'b-foot__layout-column',
'b-foot__layout-column',
'b-foot__layout-column_type_center',
'b-link',
'b-foot__link',
'b-foot__layout-column',
'b-foot__layout-column_type_penultima',
'b-link',
'b-foot__link',
'b-foot__layout-column',
'b-foot__layout-column_type_right',
'b-copyright__link',
'b-foot__layout-gap-i'
]
Нужно превратить эти классы в короткие. Так, чтобы самый частовстречающийся класс имел самое короткое новое название. Для формирования новых названий у есть набор букв. Например "a, b, c, d".
Нужно построить таблицу соответствия старых классов новым. Самый частоиспользуемый будет соответствовать 'a', следующий по использованию — на 'b', и так далее. После того как использована буква 'd', следует использовать 'aa', 'ab', 'ac', ... 'aaa' и т.д.
Результатом выполнения задания будет JS-код, строящий хеш соответствий. Заданные буквы следует хранить отдельно так, чтобы можно было потом изменить алфавит, не нарушив работу программы.