Внутренние стандарты. Верстка.
Некоторый хаос в разработке позволяет двигаться быстрее, быстрее что-то менять, обходясь без бюрократических процедур, что насколько я понимаю, является одним из плюсов концепции экстремального программирования.
Однако, наступает такой момент, когда кому-то из команды разработчиков становится сложно, или невозможно, разобраться в части написанной другим человеком. В первую очередь, это, наверное, касается программного кода, хотя и CSS может быть совершенно не читабельным и запутанным.
Преимущества и недостатки стандартов как таковых всем, я думаю, понятны. Однако хотелось бы узнать о практическом опыте их применения. В свою очередь хотелось бы продемонстировать часть CSS стандартов, принимаемых у нас. Версткой у нас занимаются только двое, однако даже в такой минимальной команде уже возможно недопонимание. Ниже привожу черновики внутренних мини-стандартов.
Поддержка разных браузеров.
При верстке любого дизайна необходимо поэтапно проверять результат верстки в разных браузерах. Результат верстки должен соответствовать нарисованному дизайн-макету. Т.е. схема расположения элементов дизайна, цвета, шрифты, паддинги, маргины, другие стили должны быть максимально приближены к нарисованному дизайн-макету. Набор поддерживаемых браузеров определяется спецификацией конкретного проекта. По умолчанию нужно поддерживать следующие браузеры: Mozilla Firefox (1.5.0.7+), IE (6.0+).
Табличная верстка VS. верстка «на дивах».
Таблицы в HTML коде рекоммендуется использовать исключтельно для представления табличных данных. Табличные данные представляют собой набор полей (столбцы) и значений (строки) некоторого параметра.
Использование таблиц для форматирования элементов дизайна страницы не допускается.
Выравнивание элементов Check-box и Radio-button.
Элемент check-box должен быть выровнен по вертикали по центру относителньно label-а. Между самим check-box-ом и label-ом должен быть отступ. Тоже самое правило применяется и к Radio-button-ам.
Форматирование CSS классов.
Пример правильного форматирования CSS класса:
.message-success {
background: #BFE894 url(../../images/success-bg.gif);
color: #3F5A3F;
font-size: 80%;
padding: 4px 5px 4px 5px;
margin: 0 0 20px 0;
border: 1px solid #96d168;
}
Пояснения к вышеприведенному примеру правильного форматирования:
- Название класса должно соответствовать смыслу элемента. Например, если это класс для таблицы кредиток в кратком виде, то надо так и назвать класс: «credit-cards-table-quick-view».
- Название класса может содержать буквы латинского алфавита и знак «дэфис»(минус). Примечание: Символ «подчеркивание»(_), так же как и цифры в названии класса недопустимы.
- После названия класса ставится «пробел» и «{»;
- После имени параметра ставится двоеточие, а затем, перед его значением, ставится «пробел»;
- После значение параметра ставится двоеточие и перевод строки;
- Padding-и & Margin-ы указываются в одной строке (padding: 0 0 0 0), за исключением случаев перегрузки уже указанных padding и margin значений;
- Отделяем переводами строки логические блоки класса. Обязательно отделяются Padding-и и Margin-ы, Border-ы, шрифтовые стили.


(2 votes, average: 4.5 out of 5)









Ярослав Швецов:
За войны против убивать надо
Олег Курносов:
Ярослав, ты за или против?
Олег Курносов:
Я бы добавил еще, что табулатуру нужно соблюдать в совокупности с программным кодом. А вообще список хороший, без такого поэтапного дела потом IE например за бортом останется, или все переверстывать заново, если какое изменение от заказчика попрошено было.
bolk:
Opera 9 поддерживаться не надо? Safari?
к сожалению, есть случаи, к счастью, их не так много, когда без таблиц всё-таки не обойтись. IE не поддерживает display: table и иже с ними, поэтому в некоторых случаях в резиновом дизайне таблицы - необходимость.
Мы, например, разрешаем использовать цифры. box-4-admin и border-0 - это корочем, чем box-for-admin и border-zero-width.
Ярослав Швецов:
Я против догматики непонятно с какой целью.
Олег Курносов:
2bolk: а цифры в названиях класса разве не deprecated by W3C?
Алексей Мамаев:
Окаывается цифры (насколько я понял из мини-исследования
) нехорошо ставить первым символом в названии класса, а так можно… И еще нашел статью на webmascon-е, в которой затрагивается эта тема: CSS: правильное использование - залог успеха. В ней как раз и говориться о некоторых правилах, которые рекомендуется соблюдать для оптимизации читаемости, размера, поиска стилей.
Алексей Мамаев:
Oper-у и Safari пока по-умолчанию не поддерживаем, т.е. если нет специальных требований.
Совсем без таблиц худо, согласен. Иногда, даже если и есть вариант сделать все “руляще” на дивах, то он может занять неоправдано много времени, и выгоднее взять старые добрые таблицы
Буду дополнять и выкладывать свод правил. Если есть вопросы или дополнения, будем рады. Всем спасибо за комментарии.
bolk:
У Opera достаточно высокий процент. У нас на adme.ru - Opera занимает ~15% (сегодня: Opera 9 - 14%, Opera 8 - 2.2, Opera 7 - 0.8%)
Алексей Мамаев:
Вчера посмотрел статистику татсофта (конечно не adme.ru, но что-то тоже видно
) за апрель :
Аудитория разных проектов, конечно, разнится, но стоит задуматься на поддержкой. Спасибо за данные
garA:
А у нас, напрмер, по-умолчанию необходимо поддерживать следующие браузеры: ФФ1+, ФФ2, ИЕ6, ИЕ7, Опера8+, Опера9+.. И весь код должен проходить валидацию..
Что касается вышеописанного кода:
1) согласен, что название класса (или идентификатора) должно соотвествовать смыслу элемента, к которому он привязан. Но писать «credit-cards-table-quick-view» ИМХО это чересчур..
2) я что-то нигде не видел, что использовать цифры и нижнее подчеркивание запрещено.. да, действительно, не рекомендуется использовать цифры в начале, но в конце названия класса ИМХО можно..
3) если после каждого логического блока “ставить” отступ, то как это отразиться на весе файла?
4) с остальными пунктами, в принципе, я согласен, хотя сам не использую..