Текст книги "Веб-дизайн"
Автор книги: Дмитрий Кирсанов
Жанр:
Интернет
сообщить о нарушении
Текущая страница: 2 (всего у книги 29 страниц) [доступный отрывок для чтения: 11 страниц]
Очевидно, чувствуя потерю инициативы, корпорация Netscape решилась весной 1998 г. на беспрецедентный шаг – опубликовала исходные тексты своего броузера на сайте http://www.mozilla.org/ и пригласила всех желающих программистов и тестеров принять на некоммерческой основе участие в подготовке следующей версии. Как это ни странно, именно работающие из чистой «любви к искусству» энтузиасты создали многие свободно распространяемые и пользующиеся притом огромной популярностью программы (в их числе даже целая операционная система‑Linux), и Netscape явно не прочь подзарядиться новыми силами и идеями из этого неисчерпаемого и почти бесплатного источника. По некоторым сведениям, не коммерческих конкурентов, а именно «открытые» программы со свободно распространяемым исходным кодом Microsoft считает главной угрозой для своего могущества.
Три, четыре… Одновременно с разработкой конкурентоспособного броузера Microsoft решила «навести порядок» и в мире HTML. Взяв под свою опеку W3C, она напитала его денежными и людскими ресурсами и тем самым заработала право едва ли не решающего голоса в этой организации. Проект HTML 3 был заморожен, а вместо него в сжатые сроки создан стандарт HTML 3.2, который, по сути, всего лишь описывает большинство расширений Netscape (с тем же успехом их можно назвать теперь «расширениями Microsoft»). Пройдя обычный в W3C процесс обсуждения и внесения поправок, спецификация HTML 3.2 была утверждена в январе 1997 года. Спираль развития HTML завершила свой первый виток – как и в «золотой век», расхождения между предписаниями стандарта и реализацией HTML в броузерах вновь были сведены к минимуму.
В декабре того же 1997 г., с принятием стандарта HTML 4.0, маятник, похоже, качнулся уже в обратную сторону – наряду с дальнейшим обогащением репертуара визуальных тегов, эта версия ввела немало пусть и не вполне «логических», но очень важных расширений для поддержки многоязычных документов (стр. 32) и обеспечения доступности документа в разных средах (стр. 34). Кроме того, в HTML 4 наконец–то прямо в тексте стандарта четко проведено разделение логических и визуальных тегов (последние объявлены «нерекомендованными», «deprecated»). Кстати, объем спецификации HTML 4 (которую я советую прочесть всем, кто имеет хоть какое–то отношение к веб–дизайну) в несколько раз больше, чем у 3.2, в основном не за счет описания новых тегов, а благодаря гораздо более подробному обоснованию целей и идеологии языка – так, в спецификацию включен даже краткий курс SGML и разбор HTML DTD.
Многие считают, что язык HTML исчерпал потенциал своего развития и что добавление новых тегов вряд ли выведет его на принципиально иной уровень. История HTML, полная борьбы и противоречий, по–видимому, близится к завершению. Точнее, подошла к концу история его развития, так как применяться в более или менее неизменном (и, по–видимому, близком к современному) виде он будет еще долго – ведь в мире накоплено огромное количество ресурсов, жестко привязанных к этому языку. Очень хочется надеяться на то, что наследником HTML станет XML (стр. 47) – язык, гораздо более близкий по идеологии к SGML и в то же время достаточно простой для массового применения. Врожденные и теперь уже вряд ли исправимые недостатки HTML особенно очевидны для тех, кто занимается практическим веб–дизайном: из–за того, что HTML с самого начала не был рассчитан на описание внешнего вида документа, он не в состоянии удовлетворительно выполнить эту задачу даже сейчас, при наличии множества визуально–ориентированных тегов. Прямым следствием этого является огромное количество расхождений в интерпретации тегов броузерами. Как бы строго вы ни следовали стандарту, HTML-файл приходится обязательно тестировать по меньшей мере в графических броузерах фирм Netscape и Microsoft, и чаще всего такое тестирование не обходится без неприятных сюрпризов: отступы, пробелы, размеры элементов оформления и логика их размещения на странице даже для простейших тегов различаются довольно сильно.
Изучение любого компьютерного языка начинается со знакомства с его основными строительными блоками – операторами, выражениями, переменными. С этой точки зрения язык HTML крайне прост, чтобы не сказать – примитивен: кроме обычного текста, HTML-файл содержит лишь один тип управляющих конструкций, так называемые теги (tags).
Важно понимать различие между тегами – единицами разметки и элементами – составными частями документа. Теги, во–первых, разделяют исходный неформатированный текст документа на элементы, а во–вторых, создают новые элементы, которым ничего не соответствовало в тексте (например, графические вставки или Java–апплеты). Соответственно, и сами теги бывают двух видов – парные, охватывающие какой–то фрагмент текста и/или другие теги, и стоящие в одиночестве непарные:
<парный–тег>текст или другие тегипарный–тег>
<непарный–тег>
Парные теги должны вкладываться друг в друга без пересечений, т. е. если в области действия тега А открылся тег В, он должен закрыться до того, как закроется тег А.
Особый подкласс составляют парные теги с игнорируемым содержимым. Например, стандарт предписывает броузеру игнорировать все, что расположено между тегом OBJECT и парным ему закрывающим тегом. С другой стороны, встретив любой неизвестный ему тег, броузер интерпретирует содержимое этого тега как обычно, не обращая внимания на «скобки* парного тега. В результате новые версии броузеров, поддерживающие тег OBJECT, увидят именно этот тег и его атрибуты, а более старые версии, наоборот, отреагируют на его «заместитель» – текст или другие теги, вставленные внутрь парного тега OBJECT.
Многие теги, как парные, так и непарные, имеют атрибуты, изменяющие и уточняющие действие тега:
<тег атрибут 1=«значение» атрибут 2=«значение» …>
Регистр букв в идентификаторах тегов и атрибутов (но не в значениях атрибутов) не учитывается. Пары атрибут=«значение» распознаются как таковые только внутри угловых скобок тега и отделяются друг от друга пробелами. В большинстве случаев атрибуты являются необязательными, и в их отсутствие интерпретатор HTML должен использовать значения по умолчанию, заданные в стандарте языка. Существуют атрибуты, не требующие присвоения значения, сам факт присутствия которых просто включает какой–то режим работы данного тега. Согласно стандарту, кавычки вокруг значения атрибута обязательны в тех случаях, когда значение это содержит какие–либо символы кроме букв, цифр, точки или дефиса; однако если вас интересует совместимость с XML, то лучше пользоваться кавычками всегда.
Подстановки. Чтобы ввести в документ символы, отсутствующие на клавиатуре или же имеющие в синтаксисе HTML специальное значение, употребляются подстановки (entities) двух видов – мнемонические и числовые. Первые имеют вид &мнемонический код;, например;
è для ё
< для <
& для &
Набор мнемонических кодов, определенный в стандарте HTML, включает в себя, в частности, весь символьный репертуар Latin‑1 (в том числе символ неразрываемого пробела , стр.229), а начиная с HTML версии 4 и некоторые из символов Unicode (стр. 231).
В числовых подстановках вместо мнемонического кода используется десятичный числовой код нужного символа с добавлением впереди символа # (например, б 0; для того же символа неразрываемого пробела). Важно помнить, что код символа берется из стандарта Unicode вне зависимости от кодировки основного текста документа. Так, в какой бы кодировке ни был представлен русский текст документа, подстановка для кириллической буквы «А» всегда будет иметь вид А (хотя поймет ли такую подстановку броузер – это уже другой вопрос).
Минимальный документ. Интересно задаться вопросом – каково содержимое минимального документа, который тем не менее отвечает с формальной точки зрения стандарту HTML? Ответ на этот вопрос содержится в спецификации HTML 4, но он достаточно интересен, чтобы привести его и здесь. Оказывается, обязательными в HTML-документе являются только два тега: TITLE (стр. 199) и! DOCTYPE. Последний тег, о существовании которого очень многие не подозревают, согласно синтаксису SGML необходим, чтобы удостоверить, что данный файл – именно HTML (а не, скажем, XML), и указать притом его версию (точнее, тот DTD, которому он соответствует, – стр.48). Например:
С другой стороны, такое решение неплохо смотрится только в текстовых броузерах вроде Lynx, тогда как владельцам речевых броузеров, скорее всего, не очень–то понравится слушать монотонное «знак равенства, знак равенства, знак равенства…» • Для кнопок панелей навигации (стр. 206) и всех прочих изображений–ссылок разумно принять особое правило оформления alt–текстов (например, я рекомендую заключать их в квадратные скобки). Это следует делать не только для того, чтобы ссылки легко было найти в текстовом эквиваленте страницы, но и для отделения alt–текстов друг от друга: дело в том, что, если графические вставки идут одна за другой без пробелов, их alt–тексты также не будут ничем разделены, если только пробелы или другие символы–разделители не предусмотрены в них самих. Приведенные здесь правила рассчитаны на то, чтобы облегчить доступ к информации на любых платформах и в любых средах – графической, текстовой или звуковой (стр. 34). В последнее время, однако, графические броузеры несколько переопределили семантику атрибута alt: начиная с четвертых версий броузеры Netscape и Microsoft не только показывают alt–текст на месте отсутствующей графики, но и выводят его в виде «всплывающей подсказки» (floating tip), возникающей при поднесении курсора мыши к изображению. С одной стороны, это нововведение заставит визуальных дизайнеров внимательнее относиться к расстановке alt–текстов на своих страницах – не писать туда что попало и не забывать о пустых alt–текстах у вспомогательных изображений. С другой стороны, непосредственное участие alt–текстов в процессе интерактивного исследования страницы заставляет дизайнера отказаться от дословного воспроизведения в alt–текстах содержимого графических вставок: сейчас не редкость страницы, в которых, например, alt–тексты дают расширенные пояснения для слишком лаконичных или же вообще лишенных текста кнопок навигации. Доступность: изображения–карты. В HTML существует два способа сделать так, чтобы части одного изображения служили ссылками на разные адреса: серверные (server–side) и клиентские (client–side) изображения–карты (image maps). Первый из этих способов, предполагающий посылку серверу координат точки, в которой произошел щелчок мыши, и получение в ответ URL-адреса, на который нужно перейти, сейчас встречается уже довольно редко, и это нельзя не приветствовать: поскольку само понятие «координат» имеет смысл только в графической среде, оформленные таким образом ссылки по определению недоступны никому, кроме пользователей графических броузеров. Клиентские изображения–карты, которые хранят конфигурацию областей, чувствительных к щелчку мыши, и соответствующие им UR. L прямо в HTML-файле, с этой точки зрения куда предпочтительнее: неграфический броузер может, проигнорировав само изображение, представить список его чувствительных областей в виде обычных ссылок. Для этого нужно не забыть снабдить каждый тег AREA внутри тега MAP атрибутом alt (который, кстати, согласно стандарту является его единственным обязательным атрибутом), чей текст и будет оформлен в виде соответствующей ссылки. Еще предпочтительнее, однако, совсем отказаться от карт и разрезать изображение на отдельные «кнопки», не забыв прописать для каждой соответствующий alt–текст. Графические броузеры позволят вам заверстать изображения вплотную без каких–либо швов или зазоров, так что дизайн страницы от этого не пострадает. Кроме гарантированной Доступности в неграфических средах, это решение позволяет иногда понизить для исходного изображения цветовую глубину и, соответственно, уменьшить общин объем файлов страницы (стр. 253).