Энциклопедия создания сайтов

         

Энциклопедия создания сайтов для начинающих.

Вот... поговорим теперь о конкретном. О рабочем столе. Что на нем должно быть и как за ним работать.

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

Компьютер может быть любым. Конечно же, лучше, когда он быстрый, но это не обязательно. Для создания хорошей страницы это совершенно не обязательно. Неплохо бы иметь и цветной монитор, но если его нет, это не может быть причиной для бездействия. Дмитрий Кирсанов, например, очень долго работал за монохромным монитором. Это не помешало ему стать автором популярных цветных страниц. (Правда, когда он купил-таки цветной экран, то пришел в ужас от раскраски собственных сайтов.)

При создании страниц я рекомен do you удержаться от использования таких программ как FrontPage(r), HomePage(r), PageMill(r), SiteMill(r) и т.п. Если вы одной рукой мешаете в кастрюле борщ, другой утомительно замачиваете белье, а третьей собираетесь делать сайт, то это ваши программы (они для домохозяек).

Чем плохи программы типа FrontPage(r)

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

Страницы, вышедшие из FrontPage(r) - это как раз такие гренки. Их видно за километр и они неудобоваримы.

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

Чем отличается текстовый редактор от текстового процессора? Тем, что первый редактирует, а второй - процессирует? Ну да. Текстовому редактору не нужны разные шрифты, поддержка графики, таблицы, чертежи. Он мал и неприхотлив. Он быстро обрабатывает тексты любого размера. Это то, что нужно для HTML. Если вы работаете на Макинтоше, лучшее, что можно себе представить - редактор BBEdit. Он подкрашивает таги, запоминает положение и размер окна, умеет редактировать файлы прямо на сервере (у него FTP встроен), имеет расширенные возможности поиска и вообще всячески скрашивает жизнь.
<




А зачем вам вообще нужно делать страницу

   Хотя этот вопрос можно и не задавать. Страницы создают для себя или для фирмы.

Собственная страница нужна человеку как "penis extender" (англ.) - нечто, увеличивающее самомнение, подкрепляющее самоуверенность, поддерживающее самочувствие. Человек хочет себя показать. Делать это можно по-разному. Например, рассказать, что вы учитесь в школе такой-то, у вас есть кот и вы любите ходить в походы. И закончить на этом. Тогда кроме вашего же кота на страницу никто заходить не будет, разве что по ошибке.

Можно же создать интересное место, наполнить его информацией, поддерживать и обновлять его. И получать от этого удовольствия не меньше, чем от издания собственного журнала.

Фирме страница нужна тоже. Но не из соображений тщеславия, а потому что про фирму должны знать. А если про нее ничего не знают, то пойдут в ту, про которую знают. WWW-страница экономит фирме кучу денег, рассказывает о ней потенциальному клиенту нужную информацию. И справляется с этим, замечу, гораздо лучше лицемерного менеджера по продажам, который с улыбкой подходит, интересуясь: "Чем могу вам помочь?" Да ничем, отвали ты, сам разберусь.

В этом, кстати, тоже большой плюс Интернета - никто жарко не дышит в лицо, предлагая Утюг Электрический УПЦ-3496. Человек сам придет, утюг исследует, принципиальную схему изучит, сделает потребительское решение и тем самым убедит себя в необходимости приобретения данной модели. Но это так, философское отступление.

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

Copyright © 1997-1999 Артемий Лебедев

E-mail: tema@tema.ru

На главную страницу




 

Стандартные события

ОБРАТИТЕ ВНИМАНИЕ: события для некоторых HTML элементов , которые описаны здесь поддерживаются некоторыми версиями Netscape

и более поздними версиями Internet Explorer

Чтобы использовать браузер v4. 0 создавая сценарии, удостовертесь, что ваши потенциальные клиенты используют требуемую версию браузера, или они были перенанаправлены соответственно на нужную страницу.

onclick

Событие   onclick    может использоваться, чтобы выполнить функции сценария, когда пользователь нажимает на специфический элемент. Internet Explorer 4.0

поддерживает это событие почти для всех HTML элементов, в то время как Netscape и более ранние версии Internet Explorer поддерживают это только в некотрых элементах (типа links, image map и т.д.). См. порядок событий onmouse*   для деталей .

ondblclick

Cобытие  ondblclick   происходит, когда пользователем осуществляются двойные щелчки на специфическом элементе (почти все элементы для Internet Explorer 4.0). Например, следующая ссылка не отвечает на одиночно нажимание - нормальным способом, но двойное нажатие направляет к новому документу.

Это событие для Internet Explorer 4.0 и выше и Netscape 4.0 и выше.

Netscape 3.0 полностью поддерживает onclick событие и , но не поддерживает ondblclick событие, поэтому для пользователей Netscape 3.0 , ссылка будет полностью мертва. Пользователи Internet Explorer 3. 0x получили бы ошибку создания сценария.

 <A HREF="other_page.htm" onclick="javascript:return false" ondblclick="self.location.href ='other_page.html'">ссылка</A>  

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

ссылка-пример

Обратите внимание, что используются системные параметры настройки мыши, чтобы определить различие между одиночным и двойным щелчком.

ondragstart

Иногда, пользователь пытается перетащить элемент, куда-нибудь в другое место.


Стандартные МЕТОДЫ

Ниже перечисленные методы поддерживаются Internet Explorer`ом 4.0 На самом деле их больше, чем описано здесь, но на мой взгляд, я имею в виду - для меня они не пригодны...

К тому же ни один из методов не поддерживается Netscape`ом

или любыми предыдущими версиями Internet Explorer

click

Метод  click  может использоваться, чтобы 'нажать' определенный объект через создание сценария,вызывая событие  onClick 

для специфического элемента.

Например, нажмите верхнюю ссылку 1 , и это ' нажмет ' вторую ссылку 2:

Ссылка 1

Ссылка 2

insertAdjacentHTML

Метод insertAdjacentHTML  может использоваться, чтобы вставить новый HTML элемент в документ, без того, чтобы удалить предыдущий HTML. Например:

 document.all.tags("P").item(1).insertAdjacentHTML("BeforeBegin", "<P>Вот вам новый параграф")  

Добавил бы новый  <P>'Вот вам новый параграф' передвторым параграфом в документе. Возможные значения для позиционирования:

 BeforeBegin 

 AfterBegin 

 BeforeEnd 

 AfterEnd 

Попробуйте сами...

insertAdjacentText

Метод  insertAdjacentText  идентичен методу insertAdjacentHTML , за исключением того, что это вставляет текст.

[ На главную страницу ] [ К оглавлению ]




 

Стандартные свойства

Для любого элемента, которые поддерживаетInternet Explorer 4.0,к элементу могут быть добавлены любые атрибуты на ваш выбор, и управление их значениями доступно через создание сценариев.

className

Свойство  className  может используется, чтобы определить, или установить, какое значение из параметров style sheet`а (настройки стиля документов) данный элемент использует. Например, следующий элемент <А> использует style sheet class " warning "

<A HREF="warning.htm" CLASS="warning"> the warning </A>  

Например в style sheet используя следующие значения

.warning { text-decoration: none; } .warning:hover { color:#878187; }

мы добьемся того, что внешний вид ссылки будет без подчеркивания, а при on mouse over появится подчеркивание, более того сменится цвет ссылки...Это конечно не ново...

document

Свойство  document  содержит ссылку к объекту документа, в котором содержится элемент . Через это могут быть получены, различные свойства объекта документа. Например

  document.all.tags('Div')

Обращается ко всем тэгам <DIV>.

filters

Свойство  filters  из коллекции фильтров представляет совокупность Фильтров, примененную к определенному элементу. Например:

<IMG ID="logo" SRC="images/logo.gif" WIDTH="384" HEIGHT="154" STYLE="filter:revealTrans(Duration=3.0, Transition=12);VISIBILITY:hidden" >

. . .

logo.filters.item(0).Apply()

logo.style.visibility=""

logo.filters.item(0).Play()

Где к изображению применен фильтр Transition filter, который позже вызван в сценарии JavaScript.

id

Свойство  id  присваивает уникальное имя определенному элементу, что впоследствие помогает к нему обратиться...

innerHTML

Свойство  innerHTML  Позволяет вписать в любой элемент с заранее присвоенным ID Новый HTML код полностью заменив предыдущий.

language

Свойство  language  определяет язык сценария используемый для элемента. По умолчанию в Explorer`е используется JavaScript.

style

Свойство  style  определяет конкретный стиль для конкретного элемента.

title

Атрибут  title  отражает подсказку. Значения атрибута  title 

обычно используются (в Internet Explorer 4.0) как ToolTips, и отображаются, когда мышь проходит над специфическим элементом. Возможно динамически изменить свойство  title  через создание сценария.

[ На главную страницу ] [ К оглавлению ]




Визуальные

фильтры

`Dynamic

HTML`

для IE4

Обратите внимание: фильтры, описанные здесь поддерживаются только Internet Explorer 4.0. Визуальные Фильтры должны быть помещены в Style Sheets поскольку они применяются, используя атрибуты Style Sheet.

Визуальные Фильтры обеспечивают управление визуальными объектами. Также, через создание сценария, примененные фильтры - могут динамически меняться без перезагрузки документа. Обычно, они применяются к элементу <IMG>, но могут применяться и к элементу <DIV>, который в свою очередь могут содержать любой HTML, так что визуальные фильтры могут применяться фактически к любому содержанию. Обратите внимание, что, если они применяются к текстовым блокам ( в элементах <DIV>), элемент <DIV> должен определить атрибуты ширины и высоты Style Sheets .

Список визуальных Фильтров:

Фильтр Описание
Alpha Различные эффекты прозрачности объекта.
Blur Размывает и смазывает объект.
Chroma Делает определенный цвет прозрачным.
DropShadow Копирует и сдвигает объект в виде тени.
FlipH Горизонтальное зеркальное изображение объекта.
FlipV Вертикальное зеркальное изображение объекта.
Glow Adds radiance around the outside edges of the object.
Gray Уничтожает цвета - делает ЧБ объект.
Invert Название говорит само за себя.
Light Осветляет объект.
Mask Выделяет объект.
Shadow Еще один вид тени(у меня не работают др. параметры).
Wave Создает волнистый эффект.
XRay Что-то типа Invert`а и Gray`я.

Internet Explorer так же поддерживает Transition Filters (Reveal и Blend transitions) фильтры появления и смешивания объекта.

Основной синтаксис применения фильтров:

 STYLE="filter:ИМЯ_ФИЛЬТРА(ПАРАМЕТР1, ПАРАМЕТР2...)"  

Параметры для каждого фильтра определяются свои собственные они описаны далее.

alpha

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




Dynamic HTML

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

'Dynamic HTML' поддерживается и Microsoft`ом и Netscap`ом, версиями браузеров Internet Explorer 4.0 и Communicator 4.0.

Далее будут рассмотрены стандартные 'Dynamic HTML ' свойства, методы и события.

События Dynamic HTML

Методы Dynamic HTML

Свойства Dynamic HTML

Визуальные фильтры

На главную страницу




 

Фрэймы

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

Каждый фрэйм имеет свой URL, что позволяет загружать его независимо от других фрэймов

Каждый фрэйм имеет собственое имя (параметр NAME), позволяющее переходить к нему из другого фрэйма

Размер фрэйма может быть изменен пользователем прямо на экране при помощи мыши (если это не запрешено указанием специального параметра)

Данные свойства фрэймов позволяют создавать продвинутые интерфейсные решения, такие как:

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

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

Создавать окна результатов запросов, когда в одном фрэйме находитс собственно запрос, а в другом результаты запроса

Создавать формы типа "мастер-деталь" для WEB-приложений, обслуживающих базы данных

<HTML>

<HEAD>...</HEAD>

<FRAMESET>...</FRAMESET>

</HTML>

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

Бродя по Интернету, вы наверняка не раз видели странички разбитые на несколько частей. Эти части и называются фреймами. Программно разбиение окна браузера на фреймы реализуется так:

1. Создается html файл (обычно это первая страничка сервера по имени index.htm) в котором задаются размеры и количество фреймов, а также имена файлов соответствующих фреймам и некоторые атрибуты для каждого фрейма.




Энциклопедия создания сайтов для начинающих

Version 3.00

New Web-Masters Club

   Перед Вами сборник публикаций лучших веб-дизайнеров и   веб-мастеров Рунета. Все собрано, систематизированно и готово к употреблению. Дерзайте!

Начать изучение

   Что нового в третьей версии:

- Добавлено "Руководство по DHTML";

- Добавлен третий этап обучения "Изучение психологии в Интернет и ее применение в создании сайтов";

- Добавлена статья Georgy Good "Об эффективном расположении элементов графики и текста на экране";

- Добавлена статья Georgy Good "О элементах восприятия и цветах"

    Что нового во второй версии:

- Добавлено "Практическое руководство по HTML" Николая Чувахина;

- Добавлена коллекция JavaScripts;

- Добавлена статья Владислава Золотухина "Фреймы";

- Добавлена статья Виктора Ануприенко " Создание META-тегов"




Энциклопедия создания сайтов для начинающих

Version 3.00

New Web-Masters Club

Этап номер 1. Создание сайта.

   Для начала ознакомьтесь с мнением Артемия Лебедева на тему А зачем вам вообще нужно делать страницу?  Далее у нас в программе советы чайнику от студии JS. Что делать? - Классический русский вопрос неминуемо встает перед каждым, кто решил создать собственный сайт в Интернет. Итак, с чего начинается создание страницы?

   Кстати,  Вы уже ознакомились с основами сетевого жаргона, а то дальше мы можем не понять друг друга.

   Теперь поговорим о том, как форматировать текст.

   Настало время познакомиться с фреймами, но я не рекомендую применять их на своих сайтах.

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

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

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

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

   Чтобы сделать свои странички более интересными, интерактивными и интеллектуальными, Вам надо познакомиться с JavaScript'ами.

Кроме Javascripts, существует еще один язык, который позволит создать Вам нечто необычайное. Итак, далее будут рассмотрены стандартные Dynamic HTML  свойства, методы и события.

   Перед тем, как закончить первый этап обучения, хочу Вам дать несколько полезных советов лично от себя.

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

Этап номер 2. Реклама сайта.

   На этом этапе я хочу представить Вам несколько публикаций.

1. Основы сетевой рекламы. Станислав Жарков.

2. Обмен ссылками. Тимофей Бокарев.

3. Создание META-тегов.

Виктор Ануприенко.

Этап номер 3.

Изучение психологии в Интернет и ее применение в создании сайтов.

Нейро-Лингвистическя Психология -  наука о коммуникации людей, структуры (описание) их внутреннего опыта и быстрого моделирования (использования) поведения  людей.

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

Georgy Good.

Project Psychology Online Russia www.psycho.all.ru

  1. Об эффективном расположении элементов графики и текста на экране. Georgy Good.

2. О элементах восприятия и цветах. Georgy Good.

   Вот, вроде бы и все...

Присылайте свои предложения, вопросы, комментарии на mail@urcov.vrn.ru

Жду от Вас материалов для пополнения "Энциклопедии".

Copyright (c) 1998-1999 New Web-Masters Club

Created by Волынский Александр Николаевич



Практическое руководство по HTML

Для чего нужно это руководство?

Это руководство задумано как учебник для тех, кто хочет публиковать документацию любого рода на глобальной компьютерной сети Интернет. Насколько велика Интернет, точно не знает никто. Ходят слухи, что в 1996 году число крупных машин (серверов) и локальных сетей, подключенных к Интернет, перевалило за 10 миллионов. Точное число пользователей просто никому не известно. Известно только, что оно очень велико — несколько сот миллионов человек по всему миру. Чтобы опубликовать документ (здесь и далее под документом понимается файл, содержащий некоторую информацию) на Интернет, достаточно поместить его на сервер, постоянно подключенный к Интернет и способный общаться с другими серверами с помощью протокола передачи гипертекстов (HyperText Transfer Protocol, или http://). Совокупность таких серверов получила название "всемирной паутины" (World Wide Web, или WWW). Разработку документов, однако, можно проводить и на компьютере, не имеющем выхода в Интернет. Автор, например, разрабатывал Руководство в текстовом процессоре Microsoft Word 2.0, а затем перенес в формат HTML и разместил на сервере Yellow Internet (http://www.yi.com/home/ChuvakhinNikolai/). Любой желающий может бесплатно разместить на этом сервере свои файлы суммарным объемом до двух мегабайт. Автор приветствует распространение Руководства в печатном и электронном виде при соблюдении трех условий:

Руководство распространяется целиком и бесплатно.

Руководство не подвергается модификации без согласия автора.

Руководство распространяется с указанием следующих сведений об авторе: имя — Николай Чувахин, адрес электронной почты — nc@iname.com, сервер Интернет — http://www.yi.com/home/ChuvakhinNikolai/.

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



Что такое HTML?

Термин HTML (HyperText Markup Language) означает "язык маркировки гипертекстов". Первую версию HTML разработал сотрудник Европейской лаборатории физики элементарных частиц Тим Бернерс-Ли. Со времени создания первой версии HTML претерпел некоторые изменения. Как и многое другое в компьютерном мире, версии, или спецификации, HTML оказались пронумерованными. Известны спецификации 2.0, 3.0 и 3.2. Текущую спецификацию HTML всегда можно найти на сервере W3C (http://www.w3.org/). Спецификация 3.2, датированная 11 января 1997 года, находится на http://www.w3.org/pub/WWW/TR/REC-html32.html. Изложение этой спецификации на русском языке будет размещено (если уже не размещено) на http://www.yi.com/home/ChuvakhinNikolai/html32.htm. Все, о чем написано в Руководстве, будет гарантированно работать с программным обеспечением, поддерживающим любую известную на сегодня спецификацию HTML. Естественно, для этого пришлось опустить некоторые детали, которые описаны не во всех спецификациях или описаны в разных спецификациях по-разному. Однако могу Вас уверить, что Ваши документы будут полностью работоспособными и вполне приличными по внешнему виду.

Что Вам понадобится для освоения HTML?

Для освоения HTML по этому Руководству Вам понадобятся две вещи:

Любой браузер, т.е., программа, пригодная для просмотра HTML-файлов. Мне лично очень нравится Netscape Navigator, поэтому именно его команды я и буду приводить, описывая операции с браузером.

Любой редактор текстовых файлов, поддерживающий русский язык в выбранной Вами кодировке. Если на Вашем компьютере установлен Windows, вполне подойдет Notepad.

Мы будем использовать текстовый редактор для подготовки HTML-файлов, а браузер — как инструмент контроля за сделанным. Свои первые HTML-файлы Вы будете разрабатывать у себя на локальном диске. Другими словами, компьютер, на котором Вы будете заниматься, может и не иметь подключения к Интернет. При этом один и тот же *.htm-файл может быть одновременно открыт и в Notepad, и в Netscape Navigator.


Сохранив изменения в Notepad, просто нажмите кнопку Reload ("перезагрузить") в Netscape Navigator, чтобы увидеть эти изменения реализованными в HTML-документе.

Необходимое отступление о редакторах HTML

В настоящее время широко используются два типа редакторов HTML:

Редакторы типа "что видишь, то и получишь" (Netscape Navigator Gold, Microsoft Front Page). Пользователь не видит "внутренностей" документа, с которым он работает, точно так же, как при работе с текстовым процессором типа Microsoft Word или Word Perfect. Кстати говоря, существует довольно много конвертеров, способных преобразовывать документы, созданные в Microsoft Word или Word Perfect, в HTML-документы.

Редакторы собственно HTML-текстов (HotDog, Ken Nesbitt Web Editor и многие другие). В процессе работы пользователь видит внутреннее содержание HTML-файла и может изменять его либо вручную, либо вызывая команды меню для вставки определенных элементов HTML. Работа с таким редактором очень похожа на работу с интерактивной средой программирования типа Microsoft Visual Basic или Borland Delphi.

Как я уже говорил, нам для изучения HTML понадобится только текстовый редактор и браузер. Когда Вы освоите HTML в минимальной степени, Вы сами сможете подобрать себе редактор по вкусу.

Наш первый HTML-документ

Как устроен HTML-документ

HTML-документ — это просто текстовый файл с расширением *.htm (Unix-системы могут содержать файлы с расширением *.html). Вот самый простой HTML-документ:

<html>      <head>            <title>                 Пример 1            </title>      </head>       <body>            <H1>                 Привет!            </H1>            <P>                 Это простейший пример HTML-документа.            </P>            <P>                 Этот *.htm-файл может быть одновременно открыт                 и в Notepad, и в Netscape. Сохранив изменения в Notepad,                 просто нажмите кнопку Reload ('перезагрузить') в Netscape,                 чтобы увидеть эти изменения реализованными в HTML-документе.            </P>       </body>  </html>

Для удобства чтения я ввел дополнительные отступы, однако в HTML это совсем не обязательно.


Более того, браузеры просто игнорируют символы конца строки и множественные пробелы в HTML-файлах. Поэтому наш пример вполне мог бы выглядеть и вот так:

<html>  <head>  <title>Пример 1</title>  </head>  <body>  <H1>Привет!</H1>  <P>Это простейший пример HTML-документа.</P>  <P>Этот *.htm-файл может быть одновременно открыт и в Notepad, и в Netscape.  Сохранив изменения в Notepad, просто нажмите кнопку Reload ('перезагрузить')  в Netscape, чтобы увидеть эти изменения реализованными в HTML-документе.</P>  </body>  </html>

Как видно из примера, вся информация о форматировании документа сосредоточена в его фрагментах, заключенных между знаками "<" и ">". Такой фрагмент (например, <html>) называется меткой (по-английски — tag, читается "тэг"). Большинство HTML-меток — парные, то есть на каждую открывающую метку вида <tag>

есть закрывающая метка вида </tag> с тем же именем, но с добавлением "/". Метки можно вводить как большими, так и маленькими буквами. Например, метки <body>, <BODY> и <Body>

будут восприняты браузером одинаково. Многие метки, помимо имени, могут содержать атрибуты

— элементы, дающие дополнительную информацию о том, как браузер должен обработать текущую метку. В нашем простейшем документе, однако, нет ни одного атрибута. Но мы обязательно встретимся с атрибутами уже в следующем разделе.

Обязательные метки

<html> ... </html>

Метка <html> должна открывать HTML-документ. Аналогично, метка </html>

должна завершать HTML-документ.

<head> ... </head>

Эта пара меток указывает на начало и конец заголовка документа. Помимо наименования документа (см. описание метки <title> ниже), в этот раздел может включаться множество служебной информации, о которой мы обязательно поговорим чуть позже.

<title> ... </title>



Все, что находится между метками <title>

и </title>, толкуется браузером как название документа. Netscape Navigator, например, показывает название текущего документа в заголовке окна и печатает его в левом верхнем углу каждой страницы при выводе на принтер. Рекомендуется название не длиннее 64 символов.

<body> ... </body>

Эта пара меток указывает на начало и конец тела HTML-документа, каковое тело, собственно, и определяет содержание документа.

<H1> ... </H1> — <H6> ... </H6>

Метки вида <Hi> (где i — цифра от 1 до 6) описывают заголовки шести различных уровней. Заголовок первого уровня — самый крупный, шестого уровня, естественно — самый мелкий.

<P> ... </P>

Такая пара меток описывает абзац. Все, что заключено между <P> и </P>, воспринимается как один абзац. Метки <Hi> и <P> могут содержать дополнительный атрибут ALIGN (читается "элайн", от английского "выравнивать"), например:

<H1 ALIGN=CENTER>Выравнивание заголовка по центру</H1>

или

<P >Образец абзаца с выравниванием по правому краю</P>

Подытожим все, что мы знаем, с помощью примера 2:

<html>  <head>  <title>Пример 2</title>  </head>  <body>  <H1 ALIGN=CENTER>Привет!</H1>  <H2>Это чуть более сложный пример HTML-документа</H2>  <P>Теперь мы знаем, что абзац можно выравнивать не только влево, </P>  <P ALIGN=CENTER>но и по центру</P> <P >или по правому краю.</P>  </body>  </html>

С этого момента Вы знаете достаточно, чтобы создавать простые HTML-документы самостоятельно от начала до конца. В следующем разделе мы поговорим, как можно улучшить наш простой HTML-документ. Начнем с малого — с абзаца.

Внутри абзаца

Непарные метки

В этом разделе мы поговорим о метках, которые не подчиняются двум основным правилам HTML: все они непарные, а некоторые (так называемые &-последовательности) к тому же должны вводиться только маленькими буквами.

<BR>

Эта метка используется, если необходимо перейти на новую строку, не прерывая абзаца. Очень удобно при публикации стихов.

<html> <head>  <title>Пример 3</title>  </head>  <body>  <H1>Стих</H1>  <H2>Автор неизвестен</H2>  <P>Однажды в студеную зимнюю пору<BR>  Сижу за решеткой в темнице сырой.<BR>  Гляжу - поднимается медленно в гору<BR>  Вскормленный в неволе орел молодой.</P>  <P>И шествуя важно, в спокойствии чинном,<BR>  Мой грустный товарищ, махая крылом,<BR>  В больших сапогах, в полушубке овчинном,<BR>  Кровавую пищу клюет под окном.</P>  </body> </html>

<HR>

Метка <HR> описывает вот такую горизонтальную линию:

Метка может дополнительно включать атрибуты SIZE (определяет толщину линии в пикселах) и/или WIDTH (определяет размах линии в процентах от ширины экрана). В примере 4 приведена небольшая коллекция горизонтальных линий.

<html>  <head>  <title>Пример 4</title>  </head>  <body>  <H1>Коллекция горизонтальных линий</H1>  <HR SIZE=2 WIDTH=100%><BR>  <HR SIZE=4 WIDTH=50%><BR>  <HR SIZE=8 WIDTH=25%><BR>  <HR SIZE=16 WIDTH=12%><BR>  </body>  </html>

&-последовательности

Поскольку символы "<" и ">" воспринимаются браузерами как начало и конец HTML-меток, возникает вопрос: а как показать эти символы на экране? В HTML это делается с помощью &-последовательностей (их еще называют символьными объектами или эскейп-последовательностями).


Браузер показывает на экране символ "<", когда встречает в тексте последовательность &lt;

(по первым буквам английских слов less than — меньше, чем). Знак ">" кодируется последовательностью &gt; (по первым буквам английских слов greater than — больше, чем). Символ "&" (амперсанд) кодируется последовательностью &amp; Двойные кавычки (") кодируются последовательностью &quot;

Помните: точка с запятой — обязательный элемент &-последовательности. Кроме того, все буквы, составляющие последовательность, должны быть в нижнем регистре (т.е., маленькие). Использование меток типа &QUOT; или &AMP; не допускается. Вообще говоря, &-последовательности определены для всех символов из второй половины ASCII-таблицы (куда, естественно, входят и русские буквы). Дело в том, что некоторые серверы не поддерживают восьмибитную передачу данных, и поэтому могут передавать символы с ASCII-кодами выше 127 только в виде &-последовательностей.

Комментарии

Браузеры игнорируют любой текст, помещенный между <!-- и -->. Это удобно для размещения комментариев.

<!-- Это комментарий -->

Форматирование шрифта

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

Физические стили

Под физическом стилем принято понимать прямое указание браузеру на модификацию текущего шрифта. Например, все, что находится между метками <B> и </B>, будет написано жирным шрифтом. Текст между метками <I>

и </I> будет написан наклонным шрифтом. Несколько особняком стоит пара меток <TT>

и </TT>. Текст, размещенный между этими метками, будет написан шрифтом, имитирующим пишущую машинку, то есть имеющим фиксированную ширину символа.



Логические стили

При использовании логических стилей автор документа не может знать заранее, что увидит на экране читатель. Разные браузеры толкуют одни и те же метки логических стилей по-разному. Некоторые браузеры игнорируют некоторые метки вообще и показывают нормальный текст вместо выделенного логическим стилем. Вот самые распространенные логические стили.

<EM> ... </EM>

От английского emphasis — акцент.

<STRONG> ... </STRONG>

От английского strong emphasis — сильный акцент.

<CODE> ... </CODE>

Рекомендуется использовать для фрагментов исходных текстов.

<SAMP> ... </SAMP>

От английского sample — образец. Рекомендуется использовать для демонстрации образцов сообщений, выводимых на экран программами.

<KBD> ... </KBD>

От английского keyboard — клавиатура. Рекомендуется использовать для указания того, что нужно ввести с клавиатуры.

<VAR> ... </VAR>

От английского variable — переменная. Рекомендуется использовать для написания имен переменных.

Пример

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

<html>  <head>  <title>Пример 5</title>  </head>  <body>  <H1>Шрифтовое выделение фрагментов текста</H1>  <P>Теперь мы знаем, что фрагменты текста можно выделять  <B>жирным</B> или <I>наклонным</I> шрифтом. Кроме того, можно  включать в текст фрагменты с фиксированной шириной символа  <TT>(имитация пишущей машинки)</TT></P>  <P>Кроме того, существует ряд логических стилей:</P>  <P><EM>EM - от английского emphasis - акцент </EM><BR>  <STRONG>STRONG - от английского strong emphasis - сильный акцент </STRONG><BR>  <CODE>CODE - для фрагментов исходных текстов</CODE><BR>  <SAMP>SAMP - от английского sample - образец </SAMP><BR>  <KBD>KBD - от английского keyboard - клавиатура</KBD><BR>  <VAR>VAR - от английского variable - переменная

Организация текста внутри документа

HTML позволяет определять внешний вид целых абзацев текста. Абзацы можно организовывать в списки, выводить их на экран в отформатированном виде, или увеличивать левое поле. Разберем все по порядку.

Ненумерованные списки: <UL> ... </UL>

Текст, расположенный между метками <UL>

и </UL>, воспринимается как ненумерованный список. Каждый новый элемент списка следует начинать с метки <LI>. Например, чтобы создать вот такой список:

Иван;

Данила;

белая кобыла

необходим вот такой HTML-текст:

<UL> <LI>Иван;  <LI>Данила;  <LI>белая кобыла  </UL>

Обратите внимание: у метки <LI>

нет парной закрывающей метки.

Нумерованные списки: <OL> ... </OL>

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

<OL>  <LI>Иван;  <LI>Данила;  <LI>белая кобыла  </OL>

получится вот такой список:

Иван;

Данила;

белая кобыла

Списки определений: <DL> ... </DL>

Список определений несколько отличается от других видов списков. Вместо меток <LI>

в списках определений используются метки <DT>

(от английского definition term — определяемый термин) и <DD> (от английского definition definition — определение определения). Разберем это на примере. Допустим, у нас имеется следующий фрагмент HTML-текста:

<DL> <DT>HTML  <DD>Термин HTML (HyperText Markup Language) означает 'язык  маркировки гипертекстов'. Первую версию HTML разработал сотрудник  Европейской лаборатории физики элементарных частиц Тим Бернерс-Ли.  <DT>HTML-документ  <DD>Текстовый файл с расширением *.htm (Unix-системы могут  содержать файлы с расширением *.html).  </DL>



Этот фрагмент будет выведен на экран следующим образом:

HTML

Термин HTML (HyperText Markup Language) означает 'язык маркировки гипертекстов'. Первую версию HTML разработал сотрудник Европейской лаборатории физики элементарных частиц Тим Бернерс-Ли.

HTML-документ

Текстовый файл с расширением *.htm (Unix-системы могут содержать файлы с расширением *.html).

Обратите внимание: точно так же, как метки <LI>, метки <DT> и <DD> не имеют парных закрывающих меток. Если определяемые термины достаточно коротки, можно использовать модифицированную открывающую метку <DL COMPACT>. Например, вот такой фрагмент HTML-текста:

<DL COMPACT>  <DT>А  <DD>Первая буква алфавита  <DT>Б  <DD>Вторая буква алфавита  <DT>В  <DD>Третья буква алфавита  </DL>

будет выведен на экран примерно так:

А

Первая буква алфавита

Б

Вторая буква алфавита

В

Третья буква алфавита

Вложенные списки

Элемент любого списка может содержать в себе целый список любого вида. Число уровней вложенности в принципе не ограничено, однако злоупотреблять вложенными списками все же не следует. Вложенные списки очень удобны при подготовке разного рода планов и оглавлений. Наши знания о списках можно вкратце свести в пример 6:

<html> <head>  <title>Пример 6</title>  </head>  <body>  <H1>HTML поддерживает несколько видов списков </H1>  <DL> <DT>Ненумерованные списки  <DD>Элементы ненумерованного списка выделяются специальным  символом и отступом слева:  <UL>  <LI>Элемент 1  <LI>Элемент 2  <LI>Элемент 3  </UL>  <DT>Нумерованные списки  <DD>Элементы нумерованного списка выделяются отступом слева, а  также нумерацией:  <OL>  <LI>Элемент 1  <LI>Элемент 2  <LI>Элемент 3  </OL>  <DT>Списки определений  <DD>Этот вид списков чуть сложнее, чем два предыдущих, но и  выглядит более эффектно.  <P>Помните, что списки можно встраивать один в другой, но не  следует закладывать слишком много уровней вложенности. </P>  <P>Обратите внимание, что внутри элемента списка может находиться  несколько абзацев.Все абзацы при этом будут иметь одинаковое  левое поле. </P>  </DL>  </body>  </html>

Форматированный текст: <PRE> ... </PRE>

В самом начале мы говорили о том, что браузеры игнорируют множественные пробелы и символы конца строки. Из этого правила, однако, есть исключение. Текст, заключенный между метками <PRE> и </PRE> (от английского preformatted — предварительно форматированный), выводится браузером на экран как есть — со всеми пробелами, символами табуляции и конца строки. Это очень удобно при создании простых таблиц.

Текст с отступом: <BLOCKQUOTE> ... </BLOCKQUOTE>

Текст, заключенный между метками <BLOCKQUOTE>

и </BLOCKQUOTE>, выводится браузером на экран с увеличенным левым полем.

За пределами HTML-файла

Связывание

Как уже упоминалось в самом начале, сокращение HTML означает "язык маркировки гипертекстов". Про маркировку мы уже поговорили достаточно. Не пора ли перейти к гипертексту? Прежде всего, что же такое гипертекст? В отличие от обыкновенного текста, который можно читать только от начала к концу, гипертекст позволяет осуществлять мгновенный переход от одного фрагмента текста к другому. Системы помощи многих популярных программных продуктов устроены именно по гипертекстовому принципу. При нажатии левой кнопкой мыши на некоторый выделенный фрагмент текущего документа происходит переход к некоторому заранее назначенному документу или фрагменту документа. В HTML переход от одного фрагмента текста к другому задается с помощью метки вида:

<A HREF="[адрес перехода]">выделенный фрагмент текста</A>

В качестве параметра [адрес перехода]

может использоваться несколько типов аргументов. Самое простое — это задать имя другого HTML-документа, к которому нужно перейти. Например:

<A HREF="pr.htm">Перейти к оглавлению</A>

Такой фрагмент HTML-текста приведет к появлению в документе выделенного фрагмента Перейти к оглавлению, при нажатии на который в текущее окно будет загружен документ pr.htm. Обратите внимание: если в адресе перехода не указан каталог, переход будет выполнен внутри текущего каталога. Если в адресе перехода не указан сервер, переход будет выполнен на текущем сервере. Из этого следует одно очень важное практическое соображение. Если Вы подготовили к публикации некоторую группу HTML-документов, которые ссылаются друг на друга только по имени файла и находятся в одном каталоге на Вашем компьютере, вся эта группа документов будет работать точно так же, если ее поместить в любой другой каталог на любом другом компьютере, на локальной сети или... на Интернет! Таким образом, у Вас появляется возможность разрабатывать целые коллекции документов без подключения к Интернет, и только после окончательной готовности, подтвержденной испытаниями, помещать коллекции документов на Интернет целиком.


На практике, однако, часто бывает необходимо дать ссылку на документ, находящийся на другом сервере. Например, если Вы хотите дать ссылку на это руководство со своей странички, Вам придется ввести в свой HTML-документ примерно такой фрагмент:

<A HREF="http://www.yi.com/home/ChuvakhinNikolai/pr.htm"> Практическое руководство по HTML Николая Чувахина</A>

При необходимости можно задать переход не просто к некоторому документу, но и к определенному месту внутри этого документа. Для этого необходимо создать в документе, к которому будет задан переход, некоторую опорную точку, или анкер. Разберем это на примере. Допустим, что необходимо осуществить переход из файла 1.htm

к словам "Переход закончен" в файле 2.htm

(файлы находятся в одном каталоге). Прежде всего, необходимо создать вот такой анкер в файле 2.htm:

<A NAME="AAA">Переход закончен</A>

Слова "Переход закончен" при этом никак не будут выделены в тексте документа. Затем в файле 1.htm (или в любом другом) можно определить переход на этот анкер:

<A HREF="2.htm#AAA">Переход к анкеру AAA</A>

Кстати говоря, переход к этому анкеру можно определить и внутри самого документа 2.htm

— достаточно только включить в него вот такой фрагмент:

<A HREF="#AAA">Переход к анкеру AAA</A>

На практике это очень удобно при создании больших документов. В начале документа можно поместить оглавление, состоящее из ссылок на анкеры, расположенные в заголовках разделов документа. Во избежание недоразумений рекомендуется задавать имена анкеров латинскими буквами. Следите за написанием имен анкеров: большинство браузеров отличают большие буквы от маленьких. Если имя анкера определено как AAA, ссылка на анкер aaa или AaA не выведет Вас на анкер AAA, хотя документ, скорее всего, будет загружен корректно. Пока что мы обсуждали только ссылки на HTML-документы. Однако возможны ссылки и на другие виды ресурсов:

<A HREF="ftp://server/directory/file.ext">Выгрузить файл</A>



Такая ссылка, если ей воспользоваться, запустит протокол передачи файлов и начнет выгрузку файла file.ext, находящегося в каталоге directory на сервере server, на локальный диск пользователя.

<A HREF="mailto:user@mail.box">Послать письмо</A>

Если пользователь совершит переход по такой ссылке, у него на экране откроется окно ввода исходящего сообщения его почтовой программы. В строке To: ("Куда") окна почтовой программы будет указано user@mail.box. Разберем все, что мы знаем о связывании, с помощью примера 7.

<HTML>  <HEAD>  <TITLE>Пример 7</TITLE>  </HEAD>  <BODY> <H1>Связывание </H1>  <P>С помощью ссылок можно переходить к другим файлам  (например, к <A HREF="pr.htm">оглавлению этого  руководства</A>).</P>  <P>Можно выгружать файлы (например,  <A HREF="ftp://yi.com/home/ChuvakhinNikolai/html-pr.doc">это  руководство в формате Microsoft Word 2.0</A>) по FTP.</P>  <P>Можно дать пользователю возможность послать почту (например,  <A HREF="mailto:nc@iname.com">автору этого руководства</A>).</P>  </BODY>  </HTML>

Изображения в HTML-документе

Встроить изображение в HTML-документ очень просто. Для этого нужно только иметь это самое изображение в формате GIF (файл с расширением *.gif) или JPEG (файл с расширением *.jpg

или *.jpeg) и одну строчку в HTML-тексте. Допустим, нам нужно включить в документ изображение, записанное в файл picture.gif, находящийся в одном каталоге с HTML-документом. Тогда строчка будет вот такая:

<IMG SRC="picture.gif">

Метка <IMG SRC="[имя файла]">

может также включать атрибут ALT="[текст]", например:

<IMG SRC="picture.gif" ALT="Картинка">

Встретив такую метку, браузер покажет на экране текст Картинка и начнет загружать на его место картинку из файла picture.gif.


Атрибут ALT может оказаться необходимым для старых браузеров, которые не поддерживают изображений, а также на случай, если у браузера отключена автоматическая загрузка изображений (при медленном подключении к Интернет это делается для экономии времени). Файл, содержаций изображение, может находиться в другом каталоге или даже на другом сервере. В этом случае стоит указать его полное имя (см. раздел "Связывание"). Разберем все, что мы знаем об изображениях, с помощью примера 8.

<HTML>  <HEAD>  <TITLE>Пример 8</TITLE>  </HEAD>  <BODY> <H1>Изображения </H1>  <P>Изображение можно встроить очень просто: </P>  <P><IMG SRC="picture.gif"></P>  <P>Кроме того, изображение можно сделать "горячим", то есть  осуществлять переход при нажатии на изображение:</P>  <P><A HREF="pr.htm"><IMG SRC="picture.gif"></A></P>  </BODY>  </HTML>

Обратите внимание на вторую часть примера. Если ссылка на изображение находится между метками <A HREF="..."> и </A>, изображение фактически становится кнопкой, при нажатии на которую происходит переход по ссылке (в примере 8 переход происходит на оглавление Руководства).

Тайное становится явным,или Видимое действие невидимых меток

Цветовая гамма HTML-документа

Если Вы читаете это Руководство на Интернет, Вы уже могли заметить, что главы Руководства и примеры несколько отличаются по цветовой гамме. Главы Руководства написаны черным по белому, а гипертекстовые ссылки выделены красным цветом. Я не знаю, как Вы видите примеры, но у меня они написаны черным по серому с выделением ссылок синим цветом. Дело в том, что главы Руководства содержат HTML-метки, определяющие их цветовую гамму. Примеры таких меток не содержат, поэтому их цветовая гамма устанавливается браузером самостоятельно. Именно поэтому я не знаю, какие цвета Вы видите в примерах — это определяется настройкой Вашего браузера. Цветовая гамма HTML-документа определяется атрибутами, размещенными внутри метки <BODY>. Вот список этих атрибутов:

bgcolor

Определяет цвет фона документа.

text

Определяет цвет текста документа.

link

Определяет цвет выделенного элемента текста, при нажатии на который происходит переход по гипертекстовой ссылке.

vlink

Определяет цвет ссылки на документ, который уже был просмотрен ранее.

alink

Определяет цвет ссылки в момент, когда на нее указывает курсор мыши и нажата ее правая кнопка, то есть непосредственно перед переходом по ссылке.

Цвет кодируется последовательностью из трех пар символов. Каждая пара представляет собой шестнадцатиричное значение насыщенности заданного цвета одним из трех основных цветов (красным, зеленым и синим) в диапазоне от нуля (00) до 255 (FF). Разберем несколько примеров.

bgcolor=#FFFFFF

Цвет фона. Насыщенность красным, зеленым и синим одинакова — FF (это шестнадцатиричное представление числа 255). Результат — белый цвет.

text=#000000

Цвет текста. Насыщенность красным, зеленым и синим одинакова — 00 (ноль). Результат — черный цвет.

link=#FF0000

Цвет гипертекстовой ссылки. Насыщенность красным — FF (255), зеленым и синим — 00 (ноль).


Результат — красный цвет.

Кроме того, метка <BODY> может включать атрибут background="[имя файла]", который задает изображение, служащее фоном для текста и других изображений. Как и любое другое изображение, фон должен быть представлен в формате GIF (файл с расширением *.gif) или JPEG (файл с расширением *.jpg или *.jpeg). Браузеры заполняют множественными копиями изображения-фона все пространство окна, в котором открыт документ, подобно тому, как при строительстве большие пространства стен покрывают маленькими (и одинаковыми) плитками. Важно отметить, что цвет фона и изображение-фон никак не отображаются на бумаге при выводе HTML-документа на печать. Из этого есть одно важное практическое следствие: старайтесь не использовать текст белого цвета.

Заголовок HTML-документа: что в нем может быть интересного?

Заголовок HTML-документа, вообще говоря, не виден пользователю при просмотре. Однако в нем есть некоторые интересные особенности, которые стоит знать. Заголовок HTML-документа может включать неограниченное количество так называемых META-инструкций. META-инструкция — это просто способ определить некоторую переменную путем указания ее имени (атрибут NAME) и значения (атрибут CONTENT). Вот некоторые наиболее типичные META-инструкции:

<META NAME="description" CONTENT="Это руководство - учебник для тех, кто хочет публиковать документацию любого рода на глобальной  компьютерной сети Интернет">

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

<META NAME="keywords" CONTENT="Интернет, HTML, WWW, руководство,  публикация, гипертекст">

Такая META-инструкция определяет переменную keywords, содержащую набор ключевых слов, описывающих содержание документа.


На практике поиск по ключевым словам очень удобно использовать при строительстве поискового механизма, работающего в пределах одного сервера (со стороны очень похоже, что именно такой подход был использован, например, при создании сервера технической поддержки фирмы Novell, ведущего производителя операционных систем для локальных компьютерных сетей). Другая группа META-инструкций определяет эквиваленты команд протокола передачи гипертекстов. (Не переживайте, это не так страшно, как кажется на первый взгляд!) Разберем несколько примеров:

<META HTTP-EQUIV="Content-type"  CONTENT="text/html; charset=windows-1251">

Эта META-инструкция дает браузеру указание интерпретировать загружаемый документ как содержащий HTML-текст в кодировке Windows/1251.

<META HTTP-EQUIV="Content-type"  CONTENT="text/html; charset=koi8-r">

Эта META-инструкция абсолютно аналогична предыдущей, только в качестве кодировки указана КОИ-8.

<META HTTP-EQUIV="Refresh" CONTENT="[время]; URL=[документ]">

Такая META-инструкция дает браузеру примерно такое указание: "Если через [время]

секунд после завершения загрузки этого документа пользователь не перейдет к другому документу, начать загрузку ресурса [документ]". Более конкретно это может выглядеть, к примеру, вот так:

<META HTTP-EQUIV="Refresh"  CONTENT="10; URL=http://www.yi.com/home/ChuvakhinNikolai/">

Если пользователь не предпримет никаких видимых действий в течение 10 секунд после загрузки документа, содержащего такую инструкцию, автоматически будет загружен документ http://www.yi.com/home/ChuvakhinNikolai/. META-инструкцию Refresh можно использовать, например, если Вы перенесли некоторый документ с одного сервера на другой. Вместо копии документа на старом сервере можно оставить короткое сообщение о переносе, включающее META-инструкцию Refresh

и адрес документа на новом сервере. Если в качестве параметра [документ] подставить имя файла, содержащего звук, через [время]



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

Пример

В отличие от всех примеров, которые мы рассматривали ранее, пример 9 состоит не из одного, а из трех файлов. Используя META-инструкцию Refresh, мы создадим небольшой слайд-фильм из трех кадров (файлов e0009.htm, e0009a.htm и e0009b.htm), которые будут циклически повторяться. Для остановки демонстрации нужно будет воспользоваться любой из гипертекстовых ссылок.

<HTML><!--файл e0009.htm -->  <HEAD>  <TITLE>Пример 9</TITLE>  <META HTTP-EQUIV="Refresh" CONTENT="2; URL=e0009a.htm">  </HEAD>  <BODY bgcolor=#FFFFFF text=#000000 link=#FF0000>  <H1>Слайд-демонстрация цветовых гамм <BR>  с помощью META-инструкции Refresh </H1>  <P>Черный текст на белом фоне </P>  <P>[<A HREF="pr.htm">Возврат к оглавлению</A>|  <A HREF="pr0006.htm">Возврат к главе 6</A>]</P>  </BODY>  </HTML><!--конец файла e0009.htm -->

<HTML><!--файл e0009a.htm -->  <HEAD>  <TITLE>Пример 9a</TITLE>  <META HTTP-EQUIV="Refresh" CONTENT="2; URL=e0009b.htm">  </HEAD>  <BODY bgcolor=#000000 text=#FFFFFF link=#FF0000>  <H1>Слайд-демонстрация цветовых гамм <BR>  с помощью META-инструкции Refresh </H1>  <P>Белый текст на черном фоне </P>  <P>[<A HREF="pr.htm">Возврат к оглавлению</A>|  <A HREF="pr0006.htm">Возврат к главе 6</A>]</P>  </BODY>  </HTML><!--конец файла e0009a.htm -->

<HTML><!--файл e0009b.htm -->  <HEAD>  <TITLE>Пример 9b</TITLE>  <META HTTP-EQUIV="Refresh" CONTENT="2; URL=e0009.htm">  </HEAD>  <BODY bgcolor=#C0C0C0 text=#0000FF link=#FF0000>  <H1>Слайд-демонстрация цветовых гамм <BR>  с помощью META-инструкции Refresh </H1>  <P>Синий текст на сером фоне </P>  <P>[<A HREF="pr.htm">Возврат к оглавлению</A>|  <A HREF="pr0006.htm">Возврат к главе

Таблицы

Для чего нужны таблицы?

На этот вопрос есть очевидный ответ: таблицы нужны для представления информации в табличном виде. Есть, однако, и менее очевидные ответы. До настоящего времени мы имели дело с документами, в которых существовал только один "поток" текста. На практике иногда очень хочется расположить текст в несколько колонок. Таблица может в этом помочь. Кроме того, таблица, состоящая из одной ячейки, может очень эффектно выделить фрагмент текста, на который Вы хотите обратить внимание читателя.

Как устроена таблица

В устройстве таблицы легче всего разобраться на простом примере.

<HTML>  <HEAD>  <TITLE>Пример 10</TITLE>  </HEAD>  <H1>Простейшая таблица </H1>  <TABLE BORDER=1> <!--Это начало таблицы-->  <CAPTION>        <!--Это заголовок таблицы-->  У таблицы может быть заголовок  </CAPTION>  <TR>             <!--Это начало первой строки-->  <TD>             <!--Это начало первой ячейки-->  Первая строка, первая колонка  </TD>            <!--Это конец первой ячейки-->  <TD>             <!--Это начало второй ячейки-->  Первая строка, вторая колонка  </TD>            <!--Это конец второй ячейки-->  </TR>            <!--Это конец первой строки-->  <TR>             <!--Это начало второй строки-->  <TD>             <!--Это начало первой ячейки-->  Вторая строка, первая колонка  </TD>            <!--Это конец первой ячейки-->  <TD>             <!--Это начало второй ячейки-->  Вторая строка, вторая колонка  </TD>            <!--Это конец второй ячейки-->  </TR>            <!--Это конец второй строки-->  </TABLE>         <!--Это конец таблицы-->  </BODY>  </HTML>



Таблица начинается с метки <TABLE>

и заканчивается меткой </TABLE>. Метка <TABLE>

может включать несколько атрибутов:

ALIGN

Устанавливает расположение таблицы по отношению к полям документа. Допустимые значения: ALIGN=LEFT (выравнивание влево), ALIGN=CENTER

(выравнивание по центру),

(выравнивание вправо).

WIDTH

Ширина таблицы. Ее можно задать в пикселах (например, WIDTH=400) или в процентах от ширины страницы (например, WIDTH=80%).

BORDER

Устанавливает ширину внешней рамки таблицы и ячеек в пикселах (например, BORDER=4). Если атрибут не установлен, таблица показывается без рамки.

CELLSPACING

Устанавливает расстояние между рамками ячеек таблицы в пикселах (например, CELLSPACING=2).

CELLPADDING

Устанавливает расстояние между рамкой ячейки и текстом в пикселах (например, CELLPADDING=10).

Таблица может иметь заголовок (<CAPTION> ... </CAPTION>), хотя заголовок не является обязательным. Метка <CAPTION> может включать атрибут ALIGN. Допустимые значения: <CAPTION ALIGN=TOP> (заголовок помещается над таблицей) и <CAPTION ALIGN=BOTTOM> (заголовок помещается под таблицей). Каждая строка таблицы начинается с метки <TR>

и заканчивается меткой </TR>. Метка <TR>

может включать следующие атрибуты:

ALIGN

Устанавливает выравнивание текста в ячейках строки. Допустимые значения: ALIGN=LEFT

(выравнивание влево), ALIGN=CENTER (выравнивание по центру), (выравнивание вправо).

VALIGN

Устанавливает вертикальное выравнивание текста в ячейках строки. Допустимые значения: VALIGN=TOP (выравнивание по верхнему краю), VALIGN=MIDDLE (выравнивание по центру), VALIGN=BOTTOM

(выравнивание по нижнему краю).

Каждая ячейка таблицы начинается с метки <TD> и заканчивается меткой </TD>. Метка <TD> может включать следующие атрибуты:

NOWRAP

Присутствие этого атрибута означает, что содержимое ячейки должно быть показано в одну строку.

COLSPAN

Устанавливает "размах" ячейки по горизонтали.


Например, COLSPAN= 3 означает, что ячейка простирается на три колонки.

ROWSPAN

Устанавливает "размах" ячейки по вертикали. Например, ROWSPAN=2 означает, что ячейка занимает две строки.

ALIGN

Устанавливает выравнивание текста в ячейке. Допустимые значения: ALIGN=LEFT

(выравнивание влево), ALIGN=CENTER (выравнивание по центру), (выравнивание вправо).

VALIGN

Устанавливает вертикальное выравнивание текста в ячейке. Допустимые значения: VALIGN=TOP (выравнивание по верхнему краю), VALIGN=MIDDLE (выравнивание по центру), VALIGN=BOTTOM

(выравнивание по нижнему краю).

WIDTH

Устанавливает ширину ячейки в пикселах (например, WIDTH=200).

HEIGHT

Устанавливает высоту ячейки в пикселах (например, HEIGHT=40).

Если ячейка таблицы пуста, вокруг нее не рисуется рамка. Если ячейка пуста, а рамка нужна, в ячейку можно ввести символьный объект &nbsp;

(non-breaking space — неразрывающий пробел). Ячейка по-прежнему будет пустой, а рамка вокруг нее будет. Любопытно отметить, что любая ячейка таблицы может содержать в себе другую таблицу.

Формы. Для чего нужны формы?

Форма — это инструмент, с помощью которого HTML- документ может послать некоторую информацию в некоторую заранее определенную точку внешнего мира, где информация будет некоторым образом обработана. Рассказать о формах в книге, посвященной HTML, достаточно трудно. Причина очень простая: создать форму гораздо проще, чем ту "точку внешнего мира", в которую форма будет посылать информацию. В качестве такой "точки" в большинстве случаев выступает программа, написанная на Перл или Си. Программы, обрабатывающие данные, переданные формами, часто называют CGI-скриптами. Сокращение CGI (Common Gateways Interface) означает "общепринятый интерфейс шлюзов". Написание CGI-скриптов в большинстве случаев требует хорошего знания соответствующего языка программирования и возможностей операционной системы Unix. В последнее время определенное распространение получил язык PHP/FI, инструкции которого можно встраивать прямо в HTML-документы (документы при этом сохраняются в виде файлов с расширением *.pht или *.php). Формы передают информацию программам-обработчикам в виде пар [имя переменной]=[значение переменной]. Имена переменных следует задавать латинскими буквами. Значения переменных воспринимаются обработчиками как строки, даже если они содержат только цифры.

Как устроена форма

Форма открывается меткой <FORM> и заканчивается меткой </FORM>. HTML-документ может содержать в себе несколько форм, однако формы не должны находиться одна внутри другой. HTML-текст, включая метки, может размещаться внутри форм без ограничений. Метка <FORM> может содержать три атрибута, один из которых является обязательным. Вот эти атрибуты:

ACTION

Обязательный атрибут. Определяет, где находится обработчик формы.

METHOD

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


Допустимые значения: METHOD=POST и METHOD=GET. Если значение атрибута не установлено, по умолчанию предполагается METHOD=GET.

ENCTYPE

Определяет, каким образом данные из формы будут закодированы для передачи обработчику. Если значение атрибута не установлено, по умолчанию предполагается ENCTYPE=application/x-www-form-urlencoded.

Простейшая форма

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

<INPUT TYPE=submit>

Встретив такую строчку внутри формы, браузер нарисует на экране кнопку с надписью Submit

(читается "сабмит" с ударением на втором слоге, от английского "подавать"), при нажатии на которую все имеющиеся в форме данные будут переданы обработчику, определенному в метке <FORM>. Надпись на кнопке можно задать такую, какая нравится, путем введения атрибута VALUE="[Надпись]"

(читается "вэлью" с ударением на первом слоге, от английского "значение"), например:

<INPUT TYPE=submit VALUE="Поехали!">

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

<HTML> <HEAD>  <TITLE>Пример 11</TITLE>  </HEAD> <H1>Простейшая форма </H1>  <FORM ACTION="pr0008.htm"> <!--Это начало формы-->  <INPUT TYPE=submit VALUE="Назад, к главе 8...">  </FORM> <!--Это конец формы-->  </BODY> </HTML>

Надпись, нанесенную на кнопку, можно при необходимости передать обработчику путем введения в определение кнопки атрибута NAME=[имя]

(читается "нэйм", от английского "имя"), например:

<INPUT TYPE=submit NAME=button VALUE="Поехали!">

При нажатии на такую кнопку обработчик вместе со всеми остальными данными получит и переменную button со значением Поехали!.


В форме может быть несколько кнопок типа submit с различными именами и/или значениями. Обработчик, таким образом, может действовать по-разному в зависимости от того, какую именно кнопку submit

нажал пользователь.

Как форма собирает данные

Существуют и другие типы элементов <INPUT>. Каждый элемент <INPUT> должен включать атрибут NAME=[имя], определяющий имя элемента (и, соответственно, имя переменной, которая будет передана обработчику). Имя должно задаваться только латинскими буквами. Большинство элементов <INPUT>

должны включать атрибут VALUE="[значение]", определяющий значение, которое будет передано обработчику под этим именем. Для элементов <INPUT TYPE=text> и <INPUT TYPE=password>, однако, этот атрибут не обязателен, поскольку значение соответствующей переменной может вводиться пользователем с клавиатуры. Основные типы элементов <INPUT>:

TYPE=text

Определяет окно для ввода строки текста. Может содержать дополнительные атрибуты SIZE=[число]

(ширина окна ввода в символах) и MAXLENGTH=[число]

(максимально допустимая длина вводимой строки в символах). Пример:

<INPUT TYPE=text SIZE=20 NAME=user VALUE="Иван">

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

TYPE=password

Определяет окно для ввода пароля. Абсолютно аналогичен типу text, только вместо символов вводимого текста показывает на экране звездочки (*). Пример:

<INPUT TYPE=password NAME=pw SIZE=20 MAXLENGTH=10>

Определяет окно шириной 20 символов для ввода пароля. Максимально допустимая длина пароля — 10 символов. Введенный пароль передается обработчику в переменной pw.

TYPE=radio

Определяет радиокнопку. Может содержать дополнительный атрибут checked

(показывает, что кнопка помечена). В группе радиокнопок с одинаковыми именами может быть только одна помеченная радиокнопка.


Пример:

<INPUT TYPE=radio NAME=modem VALUE="9600" checked> 9600 бит/с

<INPUT TYPE=radio NAME=modem VALUE="14400"> 14400 бит/с <INPUT TYPE=radio NAME=modem VALUE="28800"> 28800 бит/с

Определяет группу из трех радиокнопок, подписанных 9600 бит/с, 14400 бит/с и 28800 бит/с. Первоначально помечена первая из кнопок. Если пользователь не отметит другую кнопку, обработчику будет передана переменная modem

со значением 9600. Если пользователь отметит другую кнопку, обработчику будет передана переменная modem со значением 14400 или 28800.

TYPE=checkbox

Определяет квадрат, в котором можно сделать пометку. Может содержать дополнительный атрибут checked (показывает, что квадрат помечен). В отличие от радиокнопок, в группе квадратов с одинаковыми именами может быть несколько помеченных квадратов. Пример:

<INPUT TYPE=checkbox NAME=comp VALUE="PC"> Персональные компьютеры

<INPUT TYPE=checkbox NAME=comp VALUE="WS" checked> Рабочие станции <INPUT TYPE=checkbox NAME=comp VALUE="LAN"> Серверы локальных сетей <INPUT TYPE=checkbox NAME=comp VALUE="IS" checked> Серверы Интернет

Определяет группу из четырех квадратов. Первоначально помечены второй и четвертый квадраты. Если пользователь не произведет изменений, обработчику будут переданы две переменные: comp=WS и comp=IS.

TYPE=hidden

Определяет скрытый элемент данных, который не виден пользователю при заполнении формы и передается обработчику без изменений. Такой элемент иногда полезно иметь в форме, которая время от времени подвергается переработке, чтобы обработчик мог знать, с какой версией формы он имеет дело. Другие возможные варианты использования Вы вполне можете придумать сами. Пример:

<INPUT TYPE=hidden NAME=version VALUE="1.1">

Определяет скрытую переменную version, которая передается обработчику со значением 1.1.

TYPE=reset

Определяет кнопку, при нажатии на которую форма возвращается в исходное состояние.


Поскольку при использовании этой кнопки данные обработчику не передаются, кнопка типа reset

может и не иметь атрибута name. Пример:

<INPUT TYPE=reset VALUE="Очистить поля формы">

Определяет кнопку Очистить поля формы, при нажатии на которую форма возвращается в исходное состояние.

Помимо элементов <INPUT>, формы могут содержать меню <SELECT> и поля для ввода текста <TEXTAREA>. Меню <SELECT> из n

элементов выглядит примерно так:

<SELECT NAME="[имя]">  <OPTION VALUE="[значение 1]">[текст 1]  <OPTION VALUE="[значение 2]">[текст 2]  ...  <OPTION VALUE="[значение n]">[текст n]  </SELECT>

Как Вы видите, меню начинается с метки <SELECT>

и заканчивается меткой </SELECT>. Метка <SELECT>

содержит обязательный атрибут NAME, определяющий имя переменной, которую генерирует меню. Метка <SELECT> может также содержать атрибут MULTIPLE, присутствие которого показывает, что из меню можно выбрать несколько элементов. Большинство браузеров показывают меню <SELECT MULTIPLE> в виде окна, в котором находятся элементы меню (высоту окна в строках можно задать атрибутом SIZE=[число]). Меню <SELECT>

в большинстве случаев показывается в виде выпадающего меню. Метка <OPTION> определяет элемент меню. Обязательный атрибут VALUE

устанавливает значение, которое будет передано обработчику, если выбран этот элемент меню. Метка <OPTION> может включать атрибут checked, показывающий, что данный элемент отмечен по умолчанию. Разберем небольшой пример.

<SELECT NAME="selection">  <OPTION VALUE="option1" checked>Вариант 1  <OPTION VALUE="option2">Вариант 2 <OPTION VALUE="option3">Вариант 3  </SELECT>

Такой фрагмент определяет меню из трех элементов: Вариант 1, Вариант 2 и Вариант 3. По умолчанию выбран элемент Вариант 1. Обработчику будет передана переменная selection



значение которой может быть option1 (по умолчанию), option2 или option3. После всего, что мы уже узнали, элемент <TEXTAREA> может показаться совсем простым. Например:

<TEXTAREA NAME=address ROWS=5 COLS=50>  А здесь - Ваш адрес... </TEXTAREA>

Все атрибуты обязательны. Атрибут NAME

определяет имя, под которым содержимое окна будет передано обработчику (в примере — address). Атрибут ROWS устанавливает высоту окна в строках (в примере — 5). Атрибут COLS

устанавливает ширину окна в символах (в примере — 50). Текст, размещенный между метками <TEXTAREA>

и </TEXTAREA>, представляет собой содержимое окна по умолчанию. Пользователь может его отредактировать или просто стереть. Важно знать, что русские буквы в окне <TEXTAREA> при передаче обработчику могут быть конвертированы в соответствующие им символьные объекты.

Пример

Для демонстрации использования форм я написал небольшую программу на PHP, которая находится по адресу:

http://206.31.82.215/hp/nc/fd-win.pht

Исходные данные в эту программу передаст форма, описанная в примере 12:

<HTML> <HEAD>  <TITLE>Пример 12</TITLE>  </HEAD> <H1>Несколько более сложная форма </H1>  <FORM ACTION="http://206.31.82.215/hp/nc/fd-win.pht" METHOD=post>  <H2>Расскажите немного о себе...</H2>  <P>Указывать подлинные данные совсем не обязательно.  Для целей демонстрации вполне подойдут и вымышленные. </P>  <P>Имя: <INPUT TYPE=text SIZE=40 NAME=fn><BR> Фамилия: <INPUT TYPE=text SIZE=40 NAME=ln><BR>  Пол: <INPUT TYPE=radio NAME=gender VALUE="male" checked>мужской  <INPUT TYPE=radio NAME=gender VALUE="female">женский<BR>  Возраст: <INPUT TYPE=text SIZE=5 NAME=age> лет<BR>  <INPUT TYPE=submit VALUE="Запустить обработчик"></P>  </FORM>  </BODY> </HTML>



Заполняйте форму, жмите на кнопку и смотрите, что будет...

Маленькая хитрость, 

или Как отправить форму почтой

Все это прекрасно, скажут скептики, но на кой ляд нужны формы людям, которым их нечем обработать? Отчасти это верно, но только отчасти. HTML предоставляет в Ваше распоряжение довольно мощный механизм пересылки содержимого форм по электронной почте. Вот как это выглядит на практике. Допустим, что мы слегка изменили Пример 12. Вместо строки

<FORM ACTION="http://206.31.82.215/hp/nc/fd-win.pht" METHOD=post>

мы ввели строку

<FORM ACTION="mailto:user@mail.box" ENCTYPE=text/plain>

Обратите внимание, что мы изменили алгоритм кодирования на text/plain, то есть фактически выключили кодирование вообще. Предположим теперь, что пользователь указал, имя Иван, фамилию Петров, мужской пол и возраст 22 года. Теперь вопрос: что произойдет, если пользователь нажмет на кнопку Запустить обработчик? Ответ прост. На адрес user@mail.box электронной почтой автоматически будет отправлено сообщение следующего содержания:

fn=Иван  ln=Петров  gender=male  age=22

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