Проектирование
Если не знаешь, зачем сайт и куда его применить — не делай его совсем. Это, пожалуй, ключевое правило проектирования сайта. Потому что во всех остальных случаях есть материал, идеи и хотя бы приблизительное представление, как воплотить идею в жизнь.
После того, как идея появилась и в достаточной мере оформилась, а материалы оказались подготовленными, следует решить кроссворд.
Кроссворды, как известно, обладают одной особенностью: все без исключения должно встать на свои места так, чтобы не осталось пустых мест. В случае с разработкой сайта действует такое же правило: все компоненты сайта должны вступать между собой в такие отношения, чтобы не оставалось смысловых пробелов. Чтобы ничего не было упущено, но и слишком многого бы не получилось.
Тривиальный пример — построение главной страницы. С одной стороны, на ней должно уместиться все основное, что есть на сайте, хотя бы в виде ссылок и анонсов. С другой стороны, если на главной странице будет переизбыток информации, ею будет трудно пользоваться. Остается найти золотую середину: либо частью ссылок пожертвовать, либо сделать изящное иерархическое меню, которое позволит расположить на главной странице большинство ссылок, если не все.
Процесс создания сайта после проектирования включает, как правило, три фазы (не обязательно протекающие последовательно — часто и параллельно). Это дизайн, верстка и программирование. Зачастую три фазы выполняют три разных человека (или даже три группы людей). И смысл проектирования в этом случае — сделать так, чтобы все трое могли сразу начать свою работу, потому что общая концепция уже решена, и можно работать уже по готовому техническому заданию. Даже если всю работу делает один человек, важно изначально представлять себе процесс, чтобы не переделывать десятки раз уже готовую работу.
Но цель проектирования не только в том, чтобы в первом приближении разработать структуру сайта и внешний вид, но в том, чтобы учесть десятки мелочей, нужных для того, чтобы сайт выглядел полно-
Стью завершенным. Ведь завершенность, как известно, — это не только когда уже нечего добавить. Это еще и когда больше нечего выкинуть. 1.1. В сторону смысла: форма и содержание |
|
Понятия «форма» и «содержание» появились очень давно. Аналогично, важность разграничения формы и содержания тоже была осознана давным-давно. Тем не менее, при создании веб-страниц принцип такого разграничения проводится далеко не всегда. Типичный пример — редизайн. Первый (штатный) дизайнер делает сайт, состоящий из 214 страниц в формате. html, в каждом из них пишет навигационное меню, а стили в связанном CSS-файле описывают только цвет ссылок и нулевые отступы по краям страницы. На каждой странице он заголовки выделяет не тэгом <h1>, а сочетанием тэгов <b> и <font size=+4>, причем не всегда закрывает их. Потом дизайнер увольняется. Шедевр висит на сервере два года, а потом руководству сообщают, что сайт не соответствует современным требованиям, плюс к тому — на нем нельзя оставить отзыв, сделать заказ и отправить письмо. Руководство раскошеливается и приглашает веб-дизайнера со стороны. Тот смотрит файлы сайта и ужасается. Потому что переделать это невозможно: проще сделать заново. Почему так происходит? Потому что первый дизайнер брал страницы одну за другой и просто вставлял новый текст вместо старого. Потому что он не смотрел вперед и не думал, что сайт нужно будет переделывать: например, добавить пару разделов (из-за чего 214 раз придется переписывать фрагмент кода, отвечающий за навигацию). Изменить раздел логотипа (аналогичный объем переделок). Он не думал, что любой поисковой системе будет сложно автоматически вычленить заголовок страницы из массива текста, не размеченного логически. Он вообще не осознавал, что фрагменты веб-страницы могут обладать семантикой. Не думал, что можно разметить их не формальными тэгами (которые только изменяют внешний вид), а логическими. Дело в том, что если вид заголовков, размеченных парой тэгов <h1>...</h1>, разонравился, его можно изменить правкой всего одной строки в CSS-файле, а не редактировать 214 страниц. Аналогично, если есть семантически схожие блоки текста, их можно оформить парой <span class = "...">...</span> и придумать имя класса, который будет описан в том же CSS-файле. Не всегда, конечно, первый вариант сайта настолько плачевен. Но необходимость вносить изменения на веб-страницы есть всегда, |
|
28 |
1.1 |
Если сайт жив и обновляется. И вносить эти изменения чаще всего будет тот же веб-дизайнер, который и начинал дело. Этот факт нужно предусмотреть с самого начала. Для этого рекомендуется соблюдать всего три простые правила.
В каждом отдельно взятом файле (статья, описание продукта, поисковый механизм и т. п.) описание внешнего вида данной страницы должно сводиться к минимуму. Например, разбивка на абзацы. А если страницы включаются в файл, который обрабатывает их, то оформление текста абзаца нужными тэгами может происходить и на сервере.
Пожалуйста, не делайте разбивку на абзацы при помощи тэга <Ьг>... И еще хуже — с помощью него же плюс несколько неразрывных пробелов в начале, чтобы имитировать книжный вид абзацев. Представьте, что с вашего сайта берут текст, копируют его в программу верстки, назначают стиль и, тихо ругаясь матом, убирают лишние пробелы, а потом еще разбивают один ваш большой абзац в местах принудительного перевода строки на настоящие абзацы. Книжный вид абзацев можно, например, имитировать так:
| <р style="text-indent:2em; тагдіп:0рх">...</р>.
Возможно даже, что текст будет представлять собой запись в базе данных. В этом случае просто меньше возможностей для того, чтобы разнообразить верстку текста на каждой странице. Это в нашем случае не принципиально.
Принципиальным является то, что оформление должно быть собрано в отдельных файлах, которые просто связываются с содержательными файлами явно (например, включением таблиц стилей) или автоматически (предварительная обработка корневым файлом остальных на сервере и выдача посетителю страницы, сформированной из нескольких файлов). Серверные технологии тут всегда предпочтительнее, потому что они позволяют гибко управлять взаимоотношениями файлов.
Вырежи и сохрани
Серверных решений может быть несколько. Самое простое — включение на сервере в каждый из содержательных файлов одного или двух «оформительских» файлов (например, в верхнем шапка и меню, а в нижнем — нижняя панель с адресом компании и строкой поиска). Это делается с помощью директив include или require в зависимости от языка (поддерживается PHP, Perl, ASP, SSI и другими языками). Второй способ (действует
На сервере Apache) — использование файла. htaccess, в котором пишутся директивы, автоматически вставляющие файлы с оформлением в начало или конец страницы. Способ удобнее тем, что имя одного из файлов может поменяться, а нижний блок вообще дизайнер захочет убрать. Наконец, есть третий способ: обратное включение. Это значит, что есть файл с «ядерным сценарием», или «ядром», который берет откуда-то (например, из переменной $QUERY_STRING, читающей строку запроса из адресной строки) данные о том файле, который нужно вывести, обрабатывает его, а затем включает в себя и выводит на экран. Очень гибкий способ, имеющий массу реализаций.
В итоге всех этих манипуляций с файлами у нас остается не так уж много: девственно чистые файлы с содержанием страниц и заголовками (опороченные разве что разбивкой на абзацы или иными тэгами, обеспечивающими грамотную и красивую верстку), с одной стороны, и файлы сценариев по обработке страниц — с другой. Каждый отвечает только за порученные ему задачи.
В тексте, конечно, допустима разметка. Но, учитывая реализацию языков разметки в современных браузерах [на момент написания статьи — Internet Explorer 7, Netscape 8 (обещают 9), Opera 9, Firefox 2 (обещают 3), Safari 2 (обещают 3), Konqueror 3.5 и т. п.], вполне можно обойтись тэгами <div> и <span> с классами, которые описываются в связанном CSS-файле, заголовочными тэгами, ссылками и картинками. Желательно, чтобы имена классов были не произвольными, а семантическими. Согласитесь, если вы назовете класс «advice», то в дальнейшем класс блоков, отвечающий за советы пользователю, вы можете оформить как угодно, тогда как если вы назовете его «blueframe», то при смене дизайна необходимо будет сменить и имя стиля — вдруг вы решите заключить все советы в красную рамку? А советов в ста пятнадцати файлах уже набралось порядка тысячи.
Последнее важное правило: автоматизируйте повторы. Если у вас на одной странице повторяются блоки текста с одинаковым оформлением, то, возможно, стоит этот текст вынести в отдельный файл, разграничить значимые блоки разделителями (например, |) и написать в основном файле страницы сценарий, который будет разбивать текст на фрагменты, заносить фрагменты в массив и на основе этого массива формировать цикл с повторением кода, оформляющего внешний вид текста.
1.1 |
Автоматизация, естественно, не замыкается на этом примере. Основная мысль заключается в том, что, если встречаются повторяющиеся фрагменты кода (и есть вероятность, что количество повторов будет больше двух или трех), лучше доверять делать такие повторы скриптам.
Для хранения же «чистых» данных есть два основных способа: базы данных и файлы. В первом случае данные, связанные друг с другом, просто разнесены в разные ячейки виртуальной таблицы, где все строки пронумерованы, а столбцы поименованы. А с файлами можно поступить по-разному: либо хранить все значимые фрагменты в отдельных небольших файлах, либо (как было описано выше) разделять фрагменты данных в одном файле — после чего анализировать файл скриптом, — либо использовать одну из форм XML (семантически размеченные файлы). Последнее зависит от ваших потребностей. Если XML-файлы для вас — это основное хранилище данных со сложной рубрикацией, то стоит использовать собственно язык XML в связке с XSLT-преобразованиями, причем желательно на сервере с помощью модулей языков веб-программирования — браузеры не всегда корректно интерпретируют эту связку. Если пойти по пути наименьшего сопротивления, то можно разные фрагменты данных заключать в тэги, принятые на вашем сайте (например, <coшments>тэги комментариев</coшments>), а функцию разбора файла на фрагменты, ограниченные этими тэгами, возложить на самостоятельно написанный скрипт. Практика показывает, что такой скрипт вполне можно уместить в 10 строчек:
Function XMLer($string name,$tag name)
{
$tag name = strtolower($tag name); if(strpos($string name,$tag name)===false)
{
$tag name = strtoupper($tag name);
}
$tagnu = strlen($tag name)+2;
$begi = strpos($string name,"<".$tag name.">")+$tagnu;
$string name = substr($string name,$begi);
$fini = strpos($string name,"</".$tag name.">"); return substr($string name,0,$fini);
}
Такой подход облегчает изменение структуры: правка вида всех повторяющихся фрагментов производится только в одном месте. Резюме
Итак, выносим все повторяющееся в отдельные файлы, разграничивая содержимое и оформление, делаем разметку семантической,
А повторы автоматизируем. Смысл этих советов не только в том, чтобы большой объем работы сделать в меньшие сроки, не теряя качества, но и в том, чтобы в вашей работе появилось новое качество: семантика. Использование смысловой (семантической) разметки веб-страниц делает возможными многоаспектную автоматическую обработку текстов и гибкое управление данными. 1.2. Избыточность и недостаточность |
|
Как-то я заинтересовался новостью, анонс которой увидел на сервере mail. ru, открыл ее и увидел примерно такую картину, которую вы можете видеть на следующей странице. Пунктирной серой рамкой на этой странице я обвел новость, которая мне требовалась. Внизу новости была форма голосования, и я готов допустить, что она мне тоже требовалась, хотя я все-таки сомневаюсь в этом. А все остальное — это логотип, навигация (без них никуда), анонсы остальных новостей и реклама. Причем анонсы и реклама занимают большую часть площади и повторяются от страницы к странице — а ведь в первую очередь это почтовый портал! В итоге около трех четвертей загруженной информации оказались мне не нужны; кроме того, из-за неравномерной нагруженности колонок пострадал дизайн страницы. Как можно было этого избежать? Поскольку я читаю в первую очередь новость, по которой щелкнул, загрузить следовало только ее, навигационный блок (с логотипом, конечно) и несколько ссылок: на архив, котировки, знакомства, голосования, другие новости. Совершенно необязательно было загружать заголовки других новостей, блоки, посвященные знакомствам и другим вещам, которые к новости не имеют отношения. На веб-страницах вообще нежелательно давать большие массивы информации (если это, конечно, не статьи и не книги) — фрагментарные, или рубрицирован - ные, сведения воспринять проще (и экономнее). Резюме: все, что не относится к теме любой данной веб-страницы, следует давать в виде лаконичных ссылок, например: «Знакомства», «Другие новости». В этом случае, даже если за ссылкой будет скрыт большой объем информации, но он будет подгружаться на страницу динамически, посетители вряд ли будут иметь что-то против этого. Если на сайте что-то оказывается лишним, с этим можно мириться: кому-то это лишнее окажется полезным, а остальные в конце кон- |
|
32 |
Цов просто перестают обращать на избыточную информацию внимание. Гораздо хуже, если не удается найти то, что требуется.
Гость, оказавшийся на чужой кухне, зачастую не в состоянии найти соль или специи. «В этом доме даже соли нет», — говорит он и покидает кухню, что называется, несолоно хлебавши. Ему не приходит в голову, что соль может лежать в непривычном месте, например, в баночке с надписью «Кофе». Строго говоря, он и не должен особо думать, где взять соль: за него должны были подумать хозяева.
Похожая проблема наблюдается на многих сайтах. Если посетитель — не фанат данного сайта (или студии, создавшей сайт), он не в состоянии иногда найти элементарных вещей. И причина этого — не неопытность посетителя, а непроду - манность структуры сайта.
Разработчик каждого сайта должен думать о трех вещах, прямо или косвенно имеющих отношение к структуре и навигации сайтов: руб - рицирование содержимого сайта; выделение уникальных моментов; дополнительные возможности навигации, в первую очередь поисковая система. Рассмотрим каждый из компонентов подробнее.
Пользователь заходит на сайт, и если его цель — не прочитать новости и основную информацию на главной странице, — он обратится к навигационному меню. И если меню невнятное, нечетко и неявно представляет структуру сайта, то разобраться в нем будет непросто. Правильное создание рубрикации сайта и меню — задача нетриви-
Проектирование |
|
Альная. Наиболее общей рекомендацией можно считать следующую: не следует создавать слишком много разделов. Если организация, которой посвящен сайт, занимается большим количеством разных видов деятельности, нужно выявить общие направления, а в каждом из этих направлений конкретизировать виды деятельности. Например, если организация занимается покраской и сервисным обслуживанием автомобилей, то, очевидно, на ее сайте может быть всего четыре раздела: «Виды деятельности», «Ассортимент» (или «Продукция», если организация занимается не только торговлей, но и производством), «Сотрудничество», «Контакты». В этом случае сразу понятно, в какой раздел нужно зайти, чтобы найти информацию о поставщиках или оборудовании для ремонта (подъемники, стапели), как договориться о сотрудничестве и найти офис организации. Минимальное число разделов, которые должны быть в меню на сайте — три. Если раздела всего два, и им посвящено по одной странице, есть ли смысл вообще заводить сайт? В этом случае бывает достаточно визитной карточки на плотной бумаге размером 9 на 5 см. Максимальное число разделов, в которых посетитель не запутается сразу и бесповоротно, — не более семи. Как бы скептически вы ни относились к исследованиям по поводу человеческой памяти и внимательности, ориентироваться посетителю все же удобнее в небольшом количестве разделов. Оптимальный вариант — 4 или 5 основных разделов, в которых иерархически располагаются остальные. Однако не стоит доводить этот принцип до крайности и организовывать структуру, в которой глубина иерархической вложенности будет достигать 10 узлов: чтобы добраться до нужной страницы, посетителю придется пройти через несколько промежуточных страниц, на четвертой-пятой ему это, вероятно, надоест. Важность разработки логической структуры сайта важна еще на самом начальном этапе. От этого зависит техническая разработка структуры сайта, решение о способе хранения данных (очевидно, что способ хранения данных во многом зависит от количества разделов и степени однотипности данных в разделах: где-то требуются табличные структуры, где-то — сложная верстка, а где-то разделы представляют собой блог). От этого также зависит во многом дизайн страниц: не менее очевидно, что кроме вертикального меню слева и горизонтального сверху есть и другие способы представления меню на веб-страницах. Наконец, принятие решения о составе разделов и их иерархической структуре будет влиять на степень удобства использования сайта, что немаловажно. Второй момент, о котором нужно всегда помнить, — это яркое представление особенностей вашего сайта. Многие сайты содержат какую-то уникальную информацию. (О полной уникальности говорить сложно в связи с легкостью копирования информации. Можно говорить о том, что какие-то сайты являются первоисточниками уникальной информации.) Это могут быть |
|
34 |
Справочные сведения, статистические данные, подборки статей по определенной теме, коды программ, репродукции произведений художников, аудиозаписи, авторские монографии и исследования, демонстрация ноу-хау и так далее. Несомненно, данный сайт будет более посещаемым, если он не копирует информацию (исключение представляют дайджесты разных форм, в том числе и ленты RSS с разных сайтов, собранные в одном месте), а предоставляет какую-то новую, необычную и полезную из первых рук. Такая информация должна стать основной частью сайта, а на главной странице и в навигационном меню ссылки на фрагменты этой информации должны быть хорошо видны.
Выделение важной информации происходит по принципу контраста или по принципу визуального акцентирования.
Принцип контраста заключается в использовании средств, нетипичных для данной страницы. Например, если все меню набрано мелким шрифтом одного цвета с небольшими междустрочными интервалами, то пункт меню, ведущий на страницу с эксклюзивом, можно выделить размером и увеличением междустрочного интервала, что визуально выделит ссылку из ряда аналогичных. Черно-белое или монохромное меню можно разбавить цветным пунктом, что сразу выделит его. Светлый текст на темном фоне, встретившийся среди темных ссылок на светлом фоне, также будет очень заметным.
Визуальное акцентирование обычно осуществляется при помощи более яркого или насыщенного цвета, полужирного начертания, рамок и подчеркиваний, курсива, увеличение кегля шрифта, использования изображений и при помощи сочетаний перечисленных способов.
Наконец, третий момент — это использование дополнительных средств навигации по сайту.
Как бы ни было удобно навигационное меню, найдется множество посетителей, кому оно покажется непонятным или кому будет лень в нем разобраться. Поэтому, если, конечно, сайт не состоит из трех страниц, разработчик должен задуматься и об использовании альтернативных средств нахождения информации.
По типу наиболее близким к меню средством являются индексы, или так называемые карты сайта. Это обычно одна страница (реже несколько), где собраны ссылки на все разделы данного сайта. Ссылки должны быть представлены не сплошным списком, а структурировано. Хорошо, если разработчик позаботится о том, чтобы предоставить несколько видов загрузки карты сайта: по темам (разделам), по дате последнего обновления (или по дате создания) страниц, по степени посещаемости (с помощью простой таблицы в базе данных очень легко сделать статистику посещения каждой отдельно взятой страницы), по количеству комментариев к страницам (если такая возможность предусмотрена), по ключевым словам, по авторам материалов и по другим критериям, актуальным для сайта.
Проектирование |
|
Но даже в случае с индексами посетителю приходится прилагать определенные интеллектуальные усилия, чтобы найти нужную информацию. Если же вы приверженец идей Якоба Нильсена и Стивена Круга (основная идея последнего отражена в подзаголовке его известной книги: «Не заставляйте меня думать»), то вы просто обязаны включить в разрабатываемый сайт механизм поиска информации. В этом случае вы позволите посетителю переложить работу по поиску информации на плечи сценариев. Поисковые системы на сайтах могут работать в традиционный и динамическом режиме. Первый подход к созданию локального поисковика — серверный, то есть посетитель вводит запрос, нажимает кнопку «Искать» или клавишу Enter (Return), запрос отправляется на сервер, сценарий на сервере анализирует строки в файлах и БД на предмет соответствия запросу и в случае нахождения нужного результата выдает его посетителю. В этом случае требуется перезагрузка страницы. Второй подход, динамический, предполагает, что результаты выводятся на страницу (ту же самую, откуда производится поисковый запрос) если не по мере набора букв пользователем, то сразу же после какого-то его действия. Механизм такого поиска довольно прост: по событию onKeyUp (отпускание клавиши на клавиатуре) запускается действие функции, которая передает запрос на сервер (через <iframe> или с помощью возможностей AJAX), а по возвращении результата он выводится в браузер без перезагрузки страницы. Поиск можно реализовывать не полнотекстовый, а только по заголовкам: в этом случае он происходит намного быстрее, а в качестве результатов выводится своеобразное меню из заголовков страниц, наиболее точно соответствующих критерию поиска. (Динамическое меню — достаточно удобная вещь, но все же посетитель должен иметь возможность вернуть его в стандартное состояние.) Еще одним, достаточно редко используемым альтернативным средством навигации являются ссылки по теме. Если они не представлены в виде громоздких абзацев, в отношении трафика они достаточно экономны, но очень полезны. Помещать их следует в прямой области видимости посетителя, однако не так, чтобы они «перебивали» более важные ссылки. Нужно помнить, что это именно дополнительные ссылки. Подобные ссылки можно выносить на поля рядом с тем абзацем, для которого они актуальны, можно формировать блок таких ссылок в начале или конце страницы. Важно только одно: чтобы посетитель, для которого интересна тематика данной страницы, получил еще материалы по теме. Кроме навигации, на сайтах часто сложно найти средства обратной связи — при всем богатстве сетевых средств общения, среди которых не только электронная почта (которую можно использовать как идентификационную запись в некоторых клиентов), но и ICQ, форум, чат, книга отзывов, комментарии к записям и страницам, вопро- |
|
36 |
Сы и персональные сообщения. Да и телефоны с обычной почтой еще никто не отменял. Разработчики сайта не всегда задумываются о том, что у посетителя могут возникнуть вопросы, его могут преисполнить слова благодарности или гнев за бесцельно потраченное время. На самом деле, неужели не интересно узнать мнение посетителей о ресурсе и его ценности?
В лучшем случае ссылку на то или иное средство нужно размещать на каждой странице. Тогда у посетителя не будет необходимости писать, на какой странице он побывал до того, как решил оставить впечатления. Дело в том, что посетитель может просто забыть указать это, и владельцы сайта будут недоумевать, что он имел в виду.
Еще две мелочи, которые очень сильно портят жизнь многим посетителям сайтов, — отсутствие возможности отключения мультимедийных приправ: заставки и звука.
Заставки на сайтах, созданные на флэше, — это одно из самых бесполезных и навязчивых изобретений веб-дизайнеров. Единственное исключение — так называемые прелоудеры (preloaders), которые сообщают, сколько времени или процентов осталось до окончательной загрузки ролика. В остальных случаях, какими бы красивыми заставки ни были, они не способствуют предоставлению информации, а только задерживают загрузку основной части сайта. Первый и второй разы заставкой полюбоваться можно, на третий раз посетитель с нетерпением ждет ее окончания, потому что ему нужны новости и какая-то информация, скрытая в недрах сайта. Поэтому правило, которым не нужно пренебрегать, формулируется просто: дайте посетителю возможность пропустить заставку, поставьте прямую ссылку на смысловую страницу сайта.
Многие дизайнеры любят баловать посетителей своих сайтов фоновой музыкой. Только не все их них понимают, что во время посещения сайта многие пользователи слушают музыку. Посетители очень удивляются, когда обнаруживают смешивание двух звуковых потоков, а если в браузере открыто несколько страниц, то они не сразу понимают, какое окно издает звуки. Методов включения звукового сопровождения на сайт два: средствами HTML (с участием скриптов) и флэш. В первом случае скриптами же его можно и отключить: не отнимайте у посетителя эту возможность. Во втором случае все еще проще: если вы сумели включить звуковой файл в ролик, сумеете написать скрипт и для его выключения. Музыка без возможности отключения имеет право на существование только на сайтах музыкантов.
И еще один пример, который очень повеселил меня и заставил сформулировать очередное правило.
На сайте одной компании, которую не стоит называть, в числе прочего есть раздел о вакансиях. Текст в нем написан подробно и со вкусом. Не могу не удержаться, чтобы не процитировать его (орфография и пунктуация сохранены):
Проектирование |
|
«Компания <пропущено> всегда открыта как для абмициозных, творческих профессионалов, так и для людей, только начинающих свою трудовую деятельность. Мы предлагаем работу в молодом дружном коллективе, демократичную обстановку и все возможности для карьерного и профессионального роста. Основной компенсационный пакет: 1) . Достойный уровень официальной заработной платы, премии; 2) . Оплачиваемый отпуск (28 календарных дней); 3) . Добровольное медицинское страхование (для иногородних - оформление обязательного медицинского страхования) Дополнительный (социальный) компенсационный пакет: 1) . Корпоративные мероприятия; 2) . Сауна, бассейн, кабинет психологической разгрузки; 3) . Обучение (посещение тренингов, семинаров, профессиональных форумов и выставок).» А чуть ниже примечание: «В настоящее время все вакансии в компании <пропущено> закрыты.» Человек, вдохновившийся описанием, уже жаждет найти себе работу, и тут такое разочарование. Итак, обещанное очередное правило. Если вакансий на сайте нет, из меню нужно убрать ссылку на этот раздел, пока вакансии не появятся. А если более абстрактно — нельзя делать ссылку на то, чего нет на сайте. На этом же сайте мне встретилось выпадающее меню (<select>), содержащее только один пункт. Выбирать, собственно, не из чего, если предлагается только один вариант. Поэтому и списка выбора там быть не должно. |
|
38 |
Вавилонские сайты