Nickolay.info. Тексты. Заметки о Web-дизайне

Воркотня и ругательства о сайтостроительстве :)

6 основных идиотизмов Web-дизайна

Поскольку мой подход ни малейшей популярностью не пользуется, я могу просто расслабиться и немного позлобствовать. Ну, накипело за те 10 лет, когда периодически делал сайты, чтоб заказчику "было красиво", внутренне абсолютно не принимая того, что делаю. Хорошо ещё, что практически не занимался "дизайном", а больше кодом и логикой проекта. Итак, основные идиотизмы:

N 1. Загонять всё содержимое в таблицу, даже я в блоге не удержался и так сделал (правда, тут легко отменить). А на фига, собственно? Края можно сделать через стили. Небольшие поля-отступы слева и справа, которые привычны по бумажным книгам и улучшают восприятие текста - тем более через стили. И всё равно таблица появится только после полной загрузки, что бы там ни писали.

N 2. Вертикальные меню. Особенно в отдельной полосе, на которой больше ничего нет. Хоть убейте, не понимаю, зачем терять треть площади страницы. Чтобы закрасить её голубеньким или жёлтеньким?

N 3. Пестрота. Больше 3-4 основных цветов оформления - всегда рябит в глазах. Но некоторым чем больше похоже на взрыв лакокрасочного предприятия, тем лучше.

N 4. Cтили не по назначению. Классы, чтоб оформить логически продуманные части иерерхии содержимого - понятно. Переоформление стандартных тегов - понятно (на самом деле, всё необходимое - то есть, и логическая, и физическая разметка, есть в "голом HTML"). Но стиль ради стиля...

N 5. Куча немодерируемых идиотских комментов. Исключение - автор вернулся к статье и на основе разумных комментов её поправил. Но это ещё большая редкость, чем сами разумные комменты. Самое лучшее, конечно, вообще от них избавляться. Кому есть что сказать, напишут и на E-mail.

N 6. Навигация. Всегда чего-то да не хватает. Ещё чаще вместо чего-то нужного - что-то бесполезное. В идеале, конечно, должны быть

  1. иерархическая чёткая навигация по дереву категорий,
  2. "ассоциативные" связи статей по ключевым словам-тегам,
  3. группировка-сортировка по времени.

Однако, ни разу такой продуманной "тройной" навигации я не видел.

Общепринято для блогов - есть время и теги, но нет понятной логической структуры (да и сложновато её вписать в формат обычного блога).

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

Типовой форум - "дерево" и "лента", иерархия и актуальность, но теги обычно не вписываются. Да и попробуй заставь посетителей UGC-ресурса их нормально ставить.

Немного о тегах

Теги - одно из самых мерзких изобретений "Web 2.0". Зайдите хоть куда - самый популярный тег - "я" или "фотки" (у меня вот "личное"). Проблема даже не в том, чтоб научить пользователя ставить их правильно (хотя это тоже нерешаемая задача). Проблема - даже если Вы ставите теги как единственный админ своего г**нопортала, Вы тоже мыслите неточно и, главное, никак не соотносите своих неточностей и тараканов с неточностями и тараканами своих посетителей (мне писали, что никак не найти "тега про программирование мобилок", я-то назвал его java2me, а надо было, видимо, "праграммиравание для мабилы"). Поэтому, кстати, я название тега всегда делаю изменяемым, а возможности его именования жёстко ограничиваю (к примеру, всегда из одного слова, с игнорированием регистра символов и т.п.)

Второй момент - ну не хочется мне делать сложных, и главное, бессмысленно сложных вещей. К тому же, я совершенно искренне уверен, что лучший текстовый редактор - это Блокнот, ну или любой другой редактор неформатированного текста (конкретно Блокнот как раз глючит на отображении длинных абзацев, если включить "Перенос по словам"). А лучшие операции с текстом - простые и естественные "вырезать - копировать - вставить", "разорвать строку - убрать разрыв" и т.п. А лучшее соотнесение объектов - то, которое показано прямо в тексте, скажем, чем это не дерево:

Люди
 Мужчины
  Мальчики
  Юноши
  Мужчины
  Старики
 Женщины
  Девочки
  Девушки
  Женщины
  Старушки

Не писать же, в самом деле, абсолютно избыточных "операторных скобок", как в большинстве языков программирования (кроме Python, во всех мне известных)... Скажете, что одинаковых слов не может быть на разных уровнях дерева? В жизни ещё как может. Как тогда отличить "женщину" в смысле пола от "женщины" в смысле возраста? Ну, можно цветом выделить, если имя дочернего узла совпадает с именем родительского. И сразу ясно, кто "главный" на этом уровне. Что касается взаимозаменяемости объектов, попросту говоря, синонимов, тут тем более всё понятно:

Кошка = Киса = Кошечка = ...

или так лучше (?):

Кошка, Киса, Кошечка

Какие ещё бывают отношения? Вот антонимы:

Плохой - Хороший

или

Плохой, гадкий - Хороший, клёвый

Омонимы, т.е. разные по значению, но одинаковые по написанию слова (хрестоматийный пример - коса), выделять было бы особо нечего, двусмысленность теряется за счёт иерархичности тегов. Паронимы (однокоренные слова, сходные по звучанию, но разные по значению - поступок и проступок, невежа и невежда, а также омофоны - слова, которые звучат одинаково, но пишутся по-разному и имеют разное значение, скажем, луг и лук, плод и плот) - тоже не создадут дополнительных проблем.

Ну а гиперонимы (слова с более широким значением, выражающие родовые понятие, названия класса) и гипонимы (слова с более узким значением, называющие предмет как элемент класса) у нас уже есть за счёт иерархичности.

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

Одна позиция - не работает...

Все, кто изучал CSS, знают об относительном и абсолютном позиционировании объектов на странице. Зачастую дизайн сайта таков, что ширина основной таблицы, центрированной относительно окна бразуера, задана в пикселах. Это не так уж страшно, хотя и не кошерно. Проблемы начинаются, когда относительно этой таблицы мы пытаемся позиционировать дополнительные блоки с информацией, например, так:

<div style="position:absolute;left:664px;top:324px">
Блок "Наши контакты"
</div>

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

Если блок является блоком верхнего уровня страницы (прямым потомком элемента BODY) или же у блока, в который он вложен, не определено свойство position, то вложенный блок позиционируется просто относительно окна браузера, а значит, указанное расстояние в пикселах или процентах всегда относительно и "наши контакты" могут оказаться поверх совсем не той части страницы, что мы ожидаем.

Получается, позиционировать надо всё, начиная с основной таблицы шаблона. При этом, поскольку позицинирование делатся на основании свойств left и top (левого верхнего угла объекта) относительно позиции ближайшего позиционированного предка или, если такового нет, то относительно левого верхнего угла окна бразуера, мы теряем удобное и естественное выравнивание основной таблицы шаблона по центру.

Поэтому я и предпочитаю классику HTML - "порезать" таблицу на части и вставить эти самые контакты в одну из её ячеек :)

Рейтинг@Mail.ru
вверх гостевая; E-mail