О левых и правых (не политика)
18 Dec. 2008В комментариях к предыдущей заметке было высказано мнение, что для основных блоков шаблона страницы удобнее всего использовать (описательные) имена, описывающие расположение этих блоков на странице: header, middle, wrap, content, left, right, footer.
Раньше был бы одназначно против, сказав, что нужно использовать только семантические имена. Сейчас я рассматриваю вопрос двояко. Семантика ценна для меня, по-прежнему, но описательные имена тоже могут быть полезны. В зависимости оттого, что первично в процессе разработки: разметка или оформление.
Например, мы можем иметь дело с HTML-кодом, генерируемым программой (CMS), и для такого чужого кода мы должны написать оформление. Желательно, не трогая HTML-код, занимаясь в основном CSS. В таком случае лично я предпочел бы код с исключительно семантическими именами, без всяких left-right.
В другом случае мы имеем дело с готовым CSS-кодом (CSS-фреймворки и т.п.). Под который мы пишем HTML-шаблон или просто страницу, расставляя блоки контента по своим местам. В основном, работая с HTML, внося лишь небольшие правки в чужой CSS-код. В таком случае мне проще оперировать описательными именами: left-column, float-right, например. Или даже color-red и bkg-green. Особенно, если страницы имеют сложную верстку — на разных страницах разную. Бывают случаи, когда семантически-одинаковые элементы по-разному оформлены. Еще приходится об экономии кода думать…
При этом легко сделать так, чтобы один тип имен не мешал другому. Это возможно, если использовать для разметки только классы. Тогда каждому элементу мы сможем дать и семантическое и, при необходимости, описательное имя.
18 Dec. 2008 at 23:12
Но если бы W3C создавая стандарты и спецификации, придерживалась более строгих формулировок, а в нынешнем варианте не которые из них довольно расплывчаты и двойственны, многих проблем с наименованием блоков определяющих собственно глобальную разметку, можно было бы избежать :)
Иногда создается впечатление, что там нет профессиональных верстальщиков, к примеру вот здесь -[http://www.w3.org/TR/WCAG20/] при уменьшении размеров окна браузера по горизонтали, после появления горизонтальной прокрутки, потрогав оную, вы увидите “красивую” картинку :(
Грустно все это :)
19 Dec. 2008 at 08:12
После знакомства с css-фреймворком blueprint и верстки пары никак к этому не подготовленных макетов “под blueprint” (уж такое тз) – потерял всякий интерес к “верстке сеткой”, грязно ругаюсь, а немногочисленные названия предопределенных классов снятся в страшном сне. В ближайшее время не возьмусь ни за один проект, где требуется работа с каким-либо css-фреймворком, отличным от reset.css. Простите, личное.
Если же просят поругать чужую верстку, без зазрения совести указываю как ошибку на “презентационные наименования классов”. :)
2gordi, не совсем понятно, вы предлагаете, чтобы наименования блоков были описаны в спецификациях от w3c?
Как-то бы не хотелось, да и подозреваю, что не будет.
К слову, а где по ссылке горизонтальная прокрутка?
Ну и по моему скромному мнению, верстальщики w3c просто закрывают глаза на вопросы кроссбраузерности и это их полное право.
19 Dec. 2008 at 15:12
W3C — это компания ученых. С дизайнерами и веб-верстальщиками там крайне напряженно. При разработке стандартов эти люди руководствовались несколько иными целями, нежели большинство веб-разработчиков практиков (подробнее об этом И. Сагалаев писал, сейчас об этом часто пишут за границей).
Я давное пришел к выводу, что веб-стандарты: 1) это не только и не столько про верстку; 2) это не только спецификации w3c, но еще и труды множества других организаций, и даже блогеров, например. Когда блогер придумыват прием, который потом используют тысячи – это стандарт де-факто (очень сильно упрощаю).
Михаил, спасибо за рассказ. Почему-то редко мы говорим друг-другу о своем рабочем опыте применения стандартов. Я все же допускаю, что презентационные имена имеют право на жизнь, если они встроены в архитектуру сайта и workflow команды. А не тогда, когда приходится верстать макеты, никак не подготовленные к фреймворку.
19 Dec. 2008 at 17:12
Михаил Валенцев: “…вы предлагаете, чтобы наименования блоков были описаны ..”
Нет конечно, но побольше строгости не помешает :)
“…вопросы кроссбраузерности и это их полное право…”
Писать правила и им же не соотвествовать, моветон однако, не находите?
uggallery: “…Когда блогер придумыват прием, который потом используют тысячи – это стандарт де-факто…”
Другой вопрос на сколько это хорошо или плохо :)
02 Feb. 2009 at 15:02
Есть такие типы сайтов — веб-сервисы. Одни из них — социальные сети. Попробуйте семантично и гибко верстать. Не получится. Придется придумывать псевдо-семантичные классы, чтобы по желанию дизайнера разместить такого-то размера зеленую кнопку в такой-то блок с такой-то надписью. Цвет, размер и логика элемента могут быть разными и ничего с этим не сделаешь.