ПоискПочтаКалендарьДеньгиМой КругФоткиНародОткрытки
Войти
Чтобы комментировать записи и дружить с другими пользователями, нужна своя страница на Я.ру.
Если у вас уже есть страница на Я.ру, введите логин и пароль. Если страницы ещё нет — создайте!
userpic

премодерируемый клуб  

 Присоединившись к клубу, вы сможете вывешивать фотки в галерее и создавать новые темы для обсуждения. Обсуждаемые темы клуба будут появляться на странице «Что нового». 
 
Присоединиться
 

Yet Another CSS Framework (YACF)

Попытка завоевать мир сделать лучший CSS Framework, действительно облегчающий разработку и поддержку сайта. А так же систематизировать подходы к вёрстке и описать удобную схему вёрстки сайтов, как больших, так и маленьких.

В клубе действуют правила.

Правила клуба

В клубе запрещено:

  1. Писать сообщения, противоречащие законодательству РФ.
  2. Оскорблять других участников клуба.
  3. Размещать материалы эротического характера.
  4. Размещать рекламу.
  5. Размещать записи, не соответствующие теме клуба.

В случае нарушения правил ваши записи могут быть удалены, а вы сами – исключены из клуба.

Новые темы

Виталя Харисов пишет

Библиотека блоков

3 февраля, 00:44 ссылка
Сырой список основных блоков библиотеки.( Многабукаф )

Чтобы не пересекаться с имеюшимся кодом, скорее всего будет добавлен префикс bem ко всем компонентам, т.е. не b-text, а b-bem-text или bem-text.

Основной упор на простоту и нативность реализации в браузерах. То, что браузером не поддерживается в нём просто не будет показано. Например, закруглённые уголки.

b-link
Ссылка.

Глобально цвет ссылок не задаётся, чтобы оставить возможность использовать браузерный дефолт в случае необходимости. Цвета ссылок задаются через модификаторы.

Ссылка может быть pseudo (или модификатор b-link или как отдельный блок b-pseudo-link, пока непонятно, у нас сейчас используется второй вариант, но, кажется, первый лучше), т.е. действие происходит на странице без её перезагрузки (в Яндексе такие ссылки выделяются точечным подчёркиванием вместо text-decoration: underline).
link
b-icon
Пиктограмма.

Поддержка как одной картинки, так и спрайта. Поддержка fliter в MSIE6 (хотя фильтры зло-зло-зло, может быть и не будет поддержки PNG-24 в MSIE6).
b-input
Поле ввода.

Решение проблемы 100% растянутого поля ввода. Добавление хинта.


b-text
Статический текст.

Оформление для абзацев, списков, etc.
b-search
Поисковая форма.

Использует b-input. Есть пример, уточнение поиска, ссылка на расширеный поиск.




b-auth
Форма аутентификации.




Используется  b-input.
Кнопка Войти недоступна, если не введены имя или пароль.
Обработка формы как с перезагрузкой страницы, так и без.
Показ капчи.
b-menu
Меню.

Горизонтальный или вертикальный набор ссылок.










b-popup
Popup (как это по-русски будет?).

У попапа должна быть подложка, которая позволяет перекрыть всё что угодно на странице. Например, играющий flash-ролик.

Подложка в т.ч. может быть растянута на весь viewport, «паранжа».

С реализацией этого блока сейчас есть проблемы, напишу про него отдельный пост.
b-dropdown
Выпадушка.

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





Собирается из b-pseudo-link и b-popup. Может содержать в себе b-menu, если нужен набор ссылок, как на скриншотах выше. А может содержать в себе и форму, например.


Это минимальный набор блоков из которых строятся остальные блоки и страницы сайтов. Для первой версии кажется достаточно.

Виталя Харисов пишет

Новости одной строкой

2 февраля, 23:32 ссылка
Разработанный нами подход к вёрстке независимымыми блоками мы с Вегед'ом навали БЭМ (Блок, Элемент, Модификатор) или BEM (Block, Element, Modifier).

Разработка будет идти на github'е. Отдельным проектом опишем сам подход, отдельным reusable библиотеку блоков (про это следующий пост), отдельно утилиты для облегчения работы с кодом.

Всё что написано в клубе в той или иной мере устарело и будет переписано чуть более чем полностью.

Мысли без порядка:
  • префикс l- зло, вместо него испольузется элемент layout внутри блока
  • префикс h- не нужен
  • префиксы вообще не нужны (алилуя!)
  • добавились модификаторы у элементов
  • global reset зло, он не будет использоваться в библиотеке блоков
  • каскад в CSS тоже зло, будет использован по минимуму
  • оптимизируем скорость разработки и скорость работы кода в продакшене
  • стили для MSIE7- хочется писать в том же файле, что и основные, например, через @media ie6 {…}

Мохов Олег пишет

Стили с JS и без

19 января, 23:28 ссылка

Насколько я понял система сейчас такая: грузится страница и после загрузки (DOMReady), если у юзер-агента включен JS, скрипт в body пишет id="js" (до этого "nojs"), ну и тогда к странице применяются стили и фишки, которые видят почти все. Вопрос: почему нельзя использовать для этих же целей тег <noscript> и подключать внутри него стили без js. Да, понимаю что кармически грузить два файла со стилями - это ай-яй-яй, но всё-таки, мне кажется, это лучше, чем неисчезающие label'ы над инпутами (реализация аттрибута placeholder из HTML5), на каком-нибудь Яндекс.Мэпсе, которые не исчезают, потому что страница долго грузится или просто канал медленный, и это из мелочей, что я на вскидку вспомню. Есть ли минусы, кроме вышеуказанного, у этого подхода, или этот минус решающий в этом вопросе?

Виталя Харисов пишет

Премодерация, чистка

22 декабря 2009 года, 23:05 ссылка
Я включил обратно премодерацию клуба и удалю все записи, которые не относятся непосредственно к теме клуба.

Андрей Сумин пишет

Вопрос "знатокам"

22 декабря 2009 года, 14:28 ссылка
Если ли смысл ориентироваться на комьюнити?

Идея блочной верстки хороша, но если мы ее используем и делаем более менее reuse код, если ли особый смысл делать его часть для "открытого использования".

Если да, то нам надо писать следуя своду достаточно жестких правил, причем, они сильно шире правил уже описанных. Вот например у нас есть свой b-round и у Виталия есть свой b-round, конфликт названий, если использовать неймспейсы hh-b-round, то в рамках проекта вроде как необоснованно раздувается html. И таких ситуации много.

Если забить на комьюнити, и использовать только идею, что мы сейчас и делаем, обмен "опытом" какой-то скудный.

Redigen пишет

Предлагаю универсальное решение для иконок в ссылках

21 декабря 2009 года, 20:27 ссылка

Замечаю довольно часто, что не все верстальщики любят делать иконку частью ссылки и выравнивать ее относительно текста, однако пользователю приятно наводить курсор на иконку и видеть активность ссылки.

У меня в одном проекте было очень много иконок разных размеров, как самих иконок, так и шрифта, в результате чего я решил изобрести велосипед и сделать универсальное решение которым делюсь.

.b-icons {
    position: relative;
    
    padding-left: 0 0 0 1em; /* отступ на свое усмотрение */
    
    display: inline-block; /* костыль для Opera, в противном случае при ресайзе окна браузера в инлайновых элементах иконки поплывут */
    
    zoom: 1; /* неизбежность для ie6, по учению фреймворка вообще можно вынести в отдельный CSS */
}
.b-icons i {
    position: absolute;
    top: 50%;
    left: 0;
    
    display: block;
    overflow: hidden;
}

HTML:

<a href="#" class="b-icons b-icons_main"><i></i>главная</a>

далее индивидуальный код для иконок, хотя если у вас используются все иконки с одинаковыми свойствами ширины, высоты и фона, их можно перенести в код выше или создать отдельный класс например b-icons_16x16, кроме background-position

.b-icons_main i {
    width: 16px;
    height: 16px;
    margin-top: -8px; /* половина высоты иконки */
    
    background: url(/images/sprite.gif) 0 -20px;
}

p.s. сейчас посмотрел как реализованы иконки на главной странице Яндекса, очень похожее решение, но я предлагаю немного другой способ, как универсально выровнять иконку относительно текста, а не конкретное решение реализации иконок. В Яндексе используются спрайты с png-24, ниже немного усложненный вариант для того чтобы можно было в ie6 применить альфа фильтр.

.b-icons i s {
    display: block;
}

.b-icons_main i {
    width: 16px;
    height: 16px;
    margin-top: -8px;

    display: block;
    overflow: hidden;
}
.b-icons_main i s {

    width: 250px; /* обязательно указать полный размер картинки */
    height: 250px; /* обязательно указать полный размер картинки */
    margin: -12px 0 0 -24px; /* уже позиционирование в спрайте не через background-position, а марджином */
   
    background: url(/images/sprite.png); /* в отдельном CSS для ie6 можно прописать альфа фильтр */
}

HTML:

<a href="#" class="b-icons b-icons_main"><i><s></s></i>главная</a>

единственный косяк с которым я так и не справился — это если изменить font-size в самой ссылке, выравнивание работать не будет, нужно менять размер шрифта в дереве выше.


предлагаю это решение включить в фреймворк

Денис Боровиков пишет

А не пора ли начать?..

12 декабря 2009 года, 00:48 ссылка

Жизнь в клубе совсем затихла. Все ждут очередных статей от Виталия.

Друзья! Не кажется ли вам, что все основные принципы будущего фреймворка уже подробно описаны и рассмотрены на примерах здесь и в субботниках. Мы уже знаем зачем, мы уже знает как.

А не пора ли начать думать над идеями блоков, которые будут полезны не только в конкретном специфичном проекте, но и в других (те самые reuseble), совместно разрабатывать и тестировать их, создавать материальную основу фреймворка.

А быть может уже делиться своими наработками, как это сделал Виталий на примерах b-round, b-icon, g-png?

Примерами таких блоков могут быть используемые почти на каждом сайте - постраничная навигация, "хлебные крошки", облако тегов...

almazmusic пишет

1 http-запрос за стилями

10 ноября 2009 года, 20:26 ссылка

Вот просмотрел 2 раза Ваши видео о теории и о практике фреймворка своими руками, но всё равно не понял одной вещи.

Вопрос: запрашивая файл стилей, откуда cgi-скрипт (который, судя по видео, собирает кирпичики в дом) берёт названия нужных ему (точнее даже конкретной странице) кирпичиков, из которых потом выдирает содержимое и заталкавает в один файл? Какой порядок в создании большого стилевого файла?


Может кривовато выразился, если так, то спрашивайте, я уточню вопрос. Просто тема для меня очень актуальна, т.к. в последнее время очень много крупных проектов пошло.


Спасибо!

Алексей Красман пишет

Универсальный css-класс для блоков с круглыми уголками

19 октября 2009 года, 02:17 ссылка

Приветствую всех! Я новый член вашего клуба и мне, как и всем вам, интересна тема создания универсальных компонентов, для верстки часто встречающихся елементов. Такими элементами, безусловно, являются блоки с круглыми углами.

На апрельском субботнике, Виталий Харисов обещал выложить в клубе супер универсальный метод скругления уголков, и до недавнего времени я терпеливо ждал его появления, используя для текущих проектов способ before:/after:. Но на днях я решил сам поэкспериментировать и попробовать написать нечто подобное и хочу поделиться с вами результатами своей работы. Мой метод основан на седующих решениях:

  • изпользование символа &bull; вместо графики, что позволяет менять радиус скругления и цвет уголков из css
  • все размеры указанны в em, для кроссплатформенности и кроссбраузерности
  • возможность делать блоки как с фоном так и просто с рамкой например 2px
  • не используется ни графика, ни JS, ни expression
  • используются отдельные стили для IE7 и ниже

И так, как вы уже поняли самое главное это то, что вместо картинок и спрайтов я использую символ булета большого размера.

Отличие моего метода от аналогов в том что он не только отлично работает во всех браузерах под Windows(IE6+, Opera, FF2+, Safari3+, Chrome), но и под MacOS и  Linux.

С удовольствием продемонстрирую это на примере.

Очень интересно ваше мнение, коллеги, особенно Виталия Харисова.



Денис Боровиков пишет

18 сентября 2009 года, 15:48 ссылка

Здравствуйте.

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

Блоки, имена которых используются для выбора через ява-скриптовые фреймворки (jQuery и т.п.) я предваряю префиксом  js-

В скриптах получается что-то вроде $(".js-mp3").bind("click", function() { ...

Сначала я использовал для этого префикс модификатора m- но потом решил что неправильно использовать префикс, имеющий отношение к CSS в JS. Вот такая мысль.

Логин или имя пользователя

Найдены:

 

Что получается:    изменить 
Подписаться на комментарии к записи

Получать уведомления о всех ответах в этом обсуждении.

 
Отписаться от комментарев к записи

Получать уведомления только о тех ответах в этом обсуждении, которые адресованы лично вам.

 
Вы следите за этой записьюя в курсе
Вы прекратили следить за этой записьюя в курсе
К сожалению, комментарий не удалось отправить. Попробуйте ещё раз.я в курсе