Недизайн
 
03.06.2003
Андрей Бугаев
Гуриев Владимир


 
стр. 1
стр. 2 >>

Почти по Остеру

Когда гуру дизайна находит время, чтобы поучить любителей приемам веб-дизайна, то среди множества полезных советов часто проскальзывает мысль: мол, в дизайне правил никаких нет и нужно руководствоваться собственным вкусом и требованиями художественной задачи, не обращая внимания на опыт остальных мастеров мыши и стилуса. Смысла в этом совете не больше, чем во фразе «все дороги ведут в Рим». Разумеется, каждый нормальный человек знает, что дорога из Иваново в Кострому ведет только из Иванова в Кострому и обратно. Однако не все начинающие дизайнеры понимают, что фразу об «отсутствии правил» тоже не следует понимать буквально и чтобы сделать приемлемый (почему приемлемый, а не хороший или отличный, мы поговорим ниже) макет веб-ресурса, о ней нужно немедленно забыть. К сожалению, слова авторитета о бесконечности средств художественного самовыражения запоминаются лучше всего — что, согласитесь, гораздо проще, чем выучить правила совместимости цветовых решений или принять разумные ограничения, которые — примени их — сделают страничку лучше и удобнее.

Когда известный веб-дизайнер говорит, что правила дизайна не догма, он отпускает себе грехи, потому что сам этим правилам следует далеко не всегда. И вместо того, чтобы каждый раз объяснять, почему он пренебрег тем или иным стандартом, проще сказать, что придерживаться его необязательно. Это действительно так, но что позволено Юпитеру, увы, не позволено быку. Мы с вами быки — иначе вы не читали бы эту статью, а нам Якоб Нильсен приносил бы кофе. С сахаром.

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

Браузер браузеру волк

Компания AOL долго судилась с Microsoft, обвиняя последнюю в монопольных замашках и неправедном занятии рынка, телефона и телеграфа. И все прогрессивное человечество сочувствовало разработчикам Netscape, которых задавила корпоративная махина Microsoft. Однако если бы кто-то поинтересовался мнением веб-дизайнеров и верстальщиков HTML, то с удивлением узнал бы, что всю команду Netscape нужно вывести в чистое поле, поставить лицом к стенке и расстрелять. А потом вывести в это же поле разработчиков Opera.

Войны браузеров привели к тому, что все браузеры обрабатывают HTML по-разному. И нет никакой уверенности, что ваша страничка будет корректно отображаться и в Internet Explorer, и в Netscape, и в Opera, трех самых распространенных на сегодняшний день семействах. Ситуация усугубляется еще и тем, что каждая программа просмотра веб-ресурсов представлена на рынке множеством версий (да еще и под разные платформы!), причем если со спецификацией HTML 4 худо-бедно совместимы все, то поддержка JavaScript и CSS — уже больной вопрос.

Наверное, больше всех виновата в возникшей сумятице именно Microsoft, которая начала вводить в свои продукты фишки, противоречащие стандартам, однако победителей не судят — различные инкарнации IE на сегодня являются самым популярным браузером в мире. Отсюда не следует, что можно ограничиться совместимостью с IE и «забить» на поддержку остальных смотрелок (хотя многие дизайнеры-любители поступают именно так, зачастую даже не подозревая, что пользователям Opera и Netscape их сайт недоступен). «Забить» нельзя, потому что при этом отсекаются целые сегменты пользователей. Например, те, кто работает в Linux. Да и в любом случае — устанавливать новый браузер только для того, чтобы зайти на ваш сайт, никто не будет.

Пример простейшего скрипта, определяющего пользовательский браузер и перенаправляющего его на соответствующую страничку:

<script type=»text/javascript»>
function redirect_navigator()
{
 if(navigator.appName==’Microsoft Internet Explorer’)
 window.location.href=’ie.html’;
 else if(navigator.appName==’Netscape’)
window.location.href=’netscape.html’;
 else
 { window.location.href=’other.html’; }
}
</script>
Скрипт вызывается в теге body так:
<body onLoad=»redirect_navigator();»>

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

Обычно для определения типа браузера используется JavaScript, хотя у этого способа есть существенный недостаток. Дело в том, что код JavaScript выполняется на машине клиента, где этот модуль может быть просто-напросто отключен. Более надежным выглядел бы скрипт, выполняющийся на сервере (пример такого кода можно найти по адресу forum.dklab.ru/php/heap/SkriptOpredeleniyaBrauzera.html.

Второй путь полегче. Необходимо кодировать страничку так, чтобы ее понимали все браузеры, упрощая те элементы, которые Netscape и Opera понять не в состоянии, и отказываясь от фирменных «фишек» Microsoft. При этом первоначальный дизайн, если он писался без оглядки на альтернативные браузеры, может заметно измениться.

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

К сожалению, в журнальной статье нет места, чтобы описать все различия между браузерами. Впрочем, в этом нет нужды — в Сети достаточно сервисов (в том числе и бесплатных; см., например, anybrowser.com/siteviewer.html), позволяющих определить, насколько страница совместима с разными версиями смотрелок.


 
стр. 1
стр. 2 >>

<<Веб-дизайн: анимация
Все материалы номера
Как это не сделать >>