- •Создаем веб-сайт
- •1. Содержание сайта
- •2. Навигация по сайту
- •3. Расположение файлов
- •4. Реализация сайта Шаблон и внешний вид страниц
- •Пример 1. Содержимое файла шаблон.Html
- •Реализация меню
- •Пример 2. Содержимое файла create_menu.Js
- •Пример 3. Таблица строки меню
- •Пример 4. Сценарий, показывающий и скрывающий всплывающее меню
- •Пример 5. Таблица, соответствующая меню Информация
- •Разворачивающиеся абзацы
- •Пример 6. Использование разворачивающихся абзацев
- •Пример 7. Сценарий, реализующий работу разворачивающихся абзацев
- •Прочие сценарии
- •Пример 8. Содержимое файла load_info.Js
- •Используемые таблицы стилей
- •Пример 9. Содержимое файла page.Css
- •Пример 10. Содержимое файла menu.Css
- •5. Примеры работы сайта
- •6.Публикация сайта в Интернете
- •6.1. Ищем место для сайта
- •6.2. Доменное имя для сайта
- •6.3. Проблема стартовой страницы
- •Пример 6.1.1. Страница-редиректор
- •6.4. Администрирование сайта
- •Использование форм
- •Использование Проводника Windows
- •6.5. Увеличение посещаемости сайта
Пример 5. Таблица, соответствующая меню Информация
<TABLE id = «general» class = «hidden»>
<TR id = "general_history" class = "item"
onMouseOver = "general_history.className = 'selected'"
onMouseOut = "general_history.className = 'item'">
<TD><A href = "history.html">История</A></TD>
</TR>
<TR id = "general_values" class = "item"
onMouseOver = "general_values.className = 'selected'"
onMouseOut = "general_values.className = 'item'">
<TD><A href = "values.html">Пищевая ценность яблок</A></TD>
</TR>
<TR id = "general_collectsave" class = "item"
onMouseOver = "general_collectsave.className = 'selected'"
onMouseOut = "general_collectsave.className = 'item'">
<TD><A href = "collectsave.html">Сбор и хранение яблок</A></TD>
</TR>
</TABLE>
При просмотре текста примера 5 можно увидеть, что текст пунктов меню, как и текст пунктов строки меню, заключен в теги <A> и </A>. Это сделано для упрощения, ведь, кроме навигации (основная функция гиперссылок), других функций на меню не возлагается.
Подсветка выделенных пунктов меню осуществляется за счет изменения их стилевого класса при обработке событий onMouseOver и onMouseOut.
Следует отметить один недостаток использованной реализации меню: хотя и подсвечивается вся ячейка таблицы, «срабатывает» пункт меню только при щелчке кнопкой мыши на тексте гиперссылки. Это потому, что внутрь тегов <A> и </A> заключен только текст, а не вся ячейка таблицы. Это сделано лишь для того, чтобы не усложнять еще больше сценарий, создающий меню. Вы можете устранить этот недостаток самостоятельно, изменив фрагменты типа
<TD><A href = «history.html»>История</A></TD>
на
<A href = «history.html»><TD><A href = «history.html»>История</A></TD></A>
Если же просто поместить внутрь элемента A ячейку (не помещая еще и текст), то меню тоже будет работать, но форма указателя над текстом будет уже не та (текстовый I‑указатель).
Разворачивающиеся абзацы
Как было сказано выше, особое внимание нужно уделить представлению на страницах рецептов (если не забыли, сайт по большей части кулинарной тематики). Поэтому рассмотрим, как можно повысить удобство при работе со списком рецептов, который планируется разместить на сайте.
Для этого можно использовать следующий прием. В текст страницы помещаются как рецепты, так и их названия. При этом сразу показываются пользователю только названия рецептов. При щелчке кнопкой мыши на названии под ним появляется сам рецепт (порядок приготовления и состав блюда). Для скрытия рецепта пользователь должен опять щелкнуть кнопкой мыши на его названии.
Собственно так и реализовано представление рецептов на сайте. Фрагмент HTML‑документа, в котором используется описанный подход (разворачивающиеся абзацы), приведен в примере 6.
Пример 6. Использование разворачивающихся абзацев
...
<TD class = "content">
<!–Далее идет содержимое страницы–>
<P>Текст страницы...
<P class = "exp" onClick = "expand(recept1_body)">
<A href = "expand" class = "exp_ref"
onClick = "event.returnValue = false;">
Рецепт 1
</A>
<DIV class = "exp_hidden" id = "recept1_body">
<SPAN class = "process">
Порядок приготовления блюда
</SPAN>
<P class = "products">Состав блюда
</DIV>
<P class = "exp" onClick = "expand(recept2_body)">
<A href = "expand" class = "exp_ref"
onClick = "event.returnValue = false;">
Рецепт 2
</A>
<DIV class = "exp_hidden" id = "recept2_body">
<SPAN class = "process">
Порядок приготовления блюда
</SPAN>
<P class = "products">Состав блюда
</DIV>
<P>Прочий текст страницы...
</TD>
...
В приведенном выше примере, помимо текста, к содержимому страницы добавлены два рецепта (см. элементы, имеющие стилевой класс exp, разворачиваемая часть этих элементов имеет стилевой класс exp_hidden, когда она скрыта, и класс expboby, когда показана).
Страница, фрагмент которой приведен в примере 6, выглядит так, как показано на рис. 3.
Рис. 14.3. Представление рецептов
Работоспособность используемого способа представления рецептов обеспечивает небольшой сценарий (функция), находящийся там же, где и сценарий, отвечающий за всплывающее меню, то есть в файле popup_menu.js (пример 7).
