Сканеры и сканирование

Аппаратное (оптическое) разрешение

Аппаратное (оптическое) разрешение

Аппаратное (оптическое) разрешение (Hardware/optical Resolution) непосредственно связано с плотностью размещения светочувствительных элементов в матрице сканера. Это — основной параметр сканера (точнее, его оптико-электронной системы). Обычно указывается разрешение по горизонтали и вертикали, например, 300x600 ppi. Следует ориентироваться на меньшую величину, т. е. на горизонтальное разрешение. Вертикальное разрешение, которое обычно вдвое больше горизонтального, получается в конечном счете интерполяцией (обработкой результатов непосредственного сканирования) и напрямую не связано с плотностью чувствительных элементов (это так называемое разрешение двойного шага). Чтобы увеличить разрешение сканера, нужно уменьшить размер светочувствительного элемента. Но с уменьшением размера теряется чувствительность элемента к свету и, как следствие, ухудшается соотношение сигнал/шум. Таким образом, повышение разрешения — нетривиальная техническая задача.

Борьба с муаром

Борьба с муаром

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

Часы в блестящем металлическом корпусе Блики вполне приемлемы

Рисунок 128. Часы в блестящем металлическом корпусе. Блики вполне приемлемы

Часы в блестящем металлическом корпусе Блики вполне приемлемы Средним по отражательным свойствам объектом сканирования является печатная плата. Подобные изображения могут использоваться, например, в качестве иллюстраций книг и статей.

Диалоговое окно сканера MFS 1200SP фирмы Mustek

Рисунок 120. Диалоговое окно сканера MFS 1200SP фирмы Mustek

Диалоговое окно сканера MFS 1200SP фирмы Mustek В Photoshop сканер вызывается командой File>Import (Файл>Импорт)> Название_сканера. При этом открывается диалоговое окно сканера (интерфейс его TWAIN-модуля). Кроме того, возможно, сразу же будет открыто еще одно окно для предварительного просмотра изображения и выбора области сканирования.
Если оно не открывается автоматически, нажмите кнопку Prescan (Предварительное сканирование) в диалоговом окне сканера.
Итак, диалоговое окно сканера на экране монитора. Следовательно, сканер установлен на компьютере и имеет связь с графической прикладной программой. Теперь можно приступить к собственно сканированию. Откройте крышку сканера, положите на рабочее поле (стекло) оригинал (изображением вниз), закройте крышку и щелкните на кнопке Prescan в диалоговом окне. В результате в окне предварительного просмотра появится изображение оригинала, отсканированное с низким разрешением. Это — черновой эскиз оригинала. До окончательного сканирования еще дело не дошло. Теперь можно выделить область сканирования, т. е. участок оригинала, который вам нужен. Для этого с помощью мыши переместите и/или измените размеры рамки, которая видна на фоне эскиза. Для более точного позиционирования рамки можно использовать клавиши со стрелками при нажатой клавише . Чтобы отсканировать указанную область оригинала при текущих значениях параметров, щелкните на кнопке Scan (Сканировать). В диалоговом окне сканера отображаются размеры изображения в выбранных единицах измерения (пикселах, см, мм или дюймах), а также в килобайтах. В результате отсканированное изображение будет загружено в новое окно графического редактора. Вы можете обработать его, если необходимо, а затем сохранить в файле графического формата (см. главу 3). Однако перед сканированием обычно производят настройку параметров? чтобы получить результат с нужным качеством.
При настройке параметров чаще всего пытаются найти компромисс между качеством результирующего изображения (скана), его объемом и временем сканирования. Обычно улучшение качества сопряжено с увеличением объема занимаемой памяти и времени. Затраты времени становятся весьма заметными, если требуется отсканировать подряд много оригиналов, например, несколько десятков фотографий или страниц журнала. Сканирование с большим запасом разрешения приводит к большим затратам памяти и дискового пространства. Например, цветная фотография размером 4x6 дюймов (примерно 10x15 см) при сканировании с разрешением 600 ppi потребует более 25 Мбайт. Такие большие изображения медленно обрабатываются.
Можно выделить два основных подхода к выбору параметров сканирования. Первый состоит в том, что качество результата должно определяться в первую очередь характеристиками устройств и материалов вывода (монитор, принтеры различного типа, полиграфическая техника, печать на газетной или мелованной бумаге и т. п.). Согласно этому подходу, не стоит создавать изображение очень высокого качества, если его вывод будет производиться устройствами с низкими характеристиками («не в коня корм»). Однако при смене типа устройства вывода часто оказывается, что нужно заново сканировать изображение, но уже при других значениях параметров. Данный подход характерен для офисных работ, но нередко применяется и дизайнерами. Согласно второму подходу, при сканировании следует получить максимально возможную графическую информацию об оригинале, а только затем обработать ее в редакторе применительно к типу устройства вывода. Девиз этого подхода: «от того, что мы имеем, всегда можно отказаться». Этот подход применяют, когда заранее не известно, где и как будет использовано изображение. Он типичен, прежде всего, для дизайнеров.


Главное окно программы FineReader

Рисунок 130. Главное окно программы FineReader

Главное окно программы FineReader С помошью программы OCR результат сканирования будет разделен на текст и рисунки (если они есть) и может быть сохранен в файле формата, доступного текстовым или табличным редакторам, например, MS Word или MS Excel.
Вы можете сначала отсканировать текстовый документ и сохранить результат в файле графического формата, например, JPEG или TIFF, а затем открыть его в программе OCR и выполнить распознавание (recognize) символов. Но можно поступить и иначе: выполнить сканирование прямо из программы OCR, а затем произвести распознавание. Мы предпочитаем именно этот путь. Кстати, многие программы OCR позволяют произвести сканирование и распознавание с помошью одной команды. Однако в случае, когда вы сканируете много фрагментов, а распознаете лишь некоторые из них, лучше разъединить эти процессы.
Современные программы OCR справляются с ситуацией, когда оригинал положен на рабочее поле сканера не очень прямо. Это удобно, поскольку можно просто небрежно бросать оригиналы на рабочее поле, не слишком заботясь об их выравнивании. Однако не советуем вам злоупотреблять этой возможностью.
Некоторые программы OCR требуют, чтобы текстовый документ был отсканирован в режиме Artline. Солидные и современные программы OCR не обременят вас этим ограничением.
Если оригинал представляет собой просто текст без графики, то сканировать его нужно в режимах Artline или Gray. Режим Artline обычно применяют к высококачественным отпечаткам текста без иллюстраций, полученным, например, с помошью лазерного или струйного принтера. Разрешение сканирования выбирается в зависимости от размера шрифта. Для шрифтов размеров 12 пт и менее разрешение в режиме Artline устанавливают около 400—450 ppi. Для более крупных шрифтов разрешение можно уменьшить до 200-300 ppi. В режиме Gray на один пиксел требуется в 8 раз больше памяти, чем в режиме Artline . Однако при сканировании текстов в этом режиме можно устанавливать меньшее разрешение, чем в режиме Artline , — примерно 150-300 ppi в зависимости от размера и гарнитуры шрифта. Если объем занимаемой памяти и время сканирования для вас не критичны, то советуем выбирать режим Gray. При сканировании документов, содержащих, кроме текста, картинки, следует выбирать режим Gray (или Color, если требуется получить цветные изображения картинок). В этих режимах сканирования удается получить больше графической информации об оригинале, которая важна для высококачественного распознавания символов.
Программа OCR при распознавании текста в графическом изображении использует словари разных языков, что позволяет ей исправлять дефекты сканирования. Тем не менее, ошибки распознавания текста все же остаются. Перед тем как инициировать собственно распознавание, просмотрите результат сканирования.
Прежде всего следует обратить внимание на качество отображения таких букв, как «е» и «с», «к» и «н», «л» и «п», «i» и «1», «r» и «г». Если случаев взаимной замены в перечисленных парах букв много, лучше повторить сканирование при большем разрешении. Если результат распознавания содержит слишком много ошибок, то также советуем повторить процедуру сканирования при большем разрешении.
Если вам предстоит сканировать множество страниц с текстовой информацией примерно одинакового качества, то целесообразно сначала не спеша правильно подобрать параметры сканирования. Это можно сделать с помощью экспериментов над небольшим фрагментом документа. Подобрав оптимальные значения параметров, можно затем поставить сканирование и распознавание на поток. Программное обеспечение сканеров и OCR обычно имеют специальную команду, задающую пакетный режим работы (Buth mode).


Глубина цвета и разрядность

Глубина цвета и разрядность

Глубина цвета, как мы уже говорили в главе 1, определяется количеством цветов, которые могут быть переданы (представлены), или количеством разрядов (битов) цифрового кода, содержащим описание цвета одного пиксела. Одно с другим связано простой формулой:
Количество цветов = 2Количество бит
В сканере электрический аналоговый сигнал с матрицы светочувствительных элементов преобразуется в цифровой посредством аналого-цифрового преобразователя (АЦП). Цифровой сигнал, несущий информацию о цвете пикселов, характеризуется разрядностью, т. е. количеством двоичных разрядов (битов), которыми кодируется информация о цвете каждого пиксела. АЦП и качество светочувствительных элементов сканера определяют глубину цвета, которую он может обеспечить. В настоящее время все цветные планшетные сканеры для широкого применения обеспечивают как минимум 24-битную глубину цвета (8 бит на каждую из трех базовых составляющих цвета). В пересчете на количество цветов это 224 = 16 777 216, чего вполне достаточно. В то же время существуют сканеры с 30-битным и 36-битным представлением цвета (10 и 12 бит соответственно на каждую составляющую). Реально вы будете работать с 24-битным цветом, но при большей разрядности АЦП, имея избыточную информацию, можно производить цветовую коррекцию изображения в большем диапазоне без потери качества. Сканеры, имеющие большую глубину цвета (разрядность), позволяют сохранить больше оттенков и градаций цвета в темных тонах. Кроме того, младшие разряды выходного кода АЦП обычно флуктуируют (содержат ошибки преобразования). Чем большую разрядность имеет АЦП, тем меньше влияние ошибок преобразования на конечный результат.


Интерполяционное разрешение

Интерполяционное разрешение

Интерполяционное разрешение (Interpolated Resolution) — разрешение изображения, полученного в результате обработки (интерполяции) отсканированного оригинала. Этот искусственный прием повышения разрешения обычно не приводит к увеличению качества изображения. Представьте себе, что реально отсканированные пикселы изображения раздвинуты, а в образовавшиеся промежутки вставлены «вычисленные» пикселы, похожие в каком-то смысле на своих соседей. Результат такой интерполяции зависит от ее алгоритма, но не от сканера. Однако эту операцию можно выполнить средствами графического редактора, например, Photoshop, причем даже лучше, чем собственным программным обеспечением сканера. Интерполяционное разрешение, как правило, в несколько раз больше аппаратного, но практически это ничего не означает, хотя может ввести в заблуждение покупателя. Значимым параметром является именно аппаратное (оптическое) разрешение.
В техническом паспорте сканера иногда указывается просто разрешение. В этом случае имеется в виду аппаратное (оптическое) разрешение. Нередко указываются и аппаратное, и интерполяционное разрешение, например, 600х 1200 (9600) ppi. Здесь 600 — аппаратное разрешение, а 9600 — интерполяционное.

Изображение типа Artline

Рисунок 121. Изображение типа Artline


Изображение типа Artline



Изображение типа Halftone

Рисунок 122. Изображение типа Halftone


Изображение типа Halftone

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

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

Если вам нужно получить изображение в оттенках серого (полутоновое) из цветного оригинала, выберите режим Gray. А можно отсканировать его и в режиме Color, и затем в графическом редакторе преобразовать в полутоновое. В Photoshop для этого есть специальная команда Image>Mode>Black&White (Изображение>Режим>Черно-белый). Кроме того, для получения полутонового изображения из цветного можно просто выбрать один из его цветовых каналов, который наилучшим образом передает графическую информацию. Вообще говоря, результат будет отличаться от полученного с помощью команды Image>Mode>Black&White (Изображение>Режим>Черно-белый), но попробовать стоит. Более подробно об этом уже говорилось в главе 1. Впрочем, сканирование в режиме Gray требует меньше памяти и происходит быстрее, чем в режиме Color.
Нецветные, но с плавными переходами оттенков серого, изображения следует сканировать в режиме Gray. Как правило, это черно-белые фотографии и подобные им нецветные иллюстрации из книг, журналов и газет. Нередко в этом режиме сканируют текстовые документы не очень хорошего качества, чтобы потом обработать их программой OCR. Если ваша программа OCR допускает (а скорее всего это именно так) сканирование текстов в режиме Gray, то выберите именно этот режим. Со временем вы научитесь более тонко настраивать режимы сканирования.

Черно-белые (двухцветные) изображения без полутоновых переходов обычно сканируются в режиме Artline. Типичными примерами таких изображений являются чертежи и схемы, в которых преобладают линии, а не области, заполненные цветом. В этом режиме часто сканируют четкие отпечатки текстовых документов, чтобы потом обработать их программой OCR. Некоторые системы OCR требуют, чтобы исходное изображение было отсканировано в режиме Artline, но к FineReader это не относится. Хотя в режиме Artline на представление одного пиксела отводится всего 1 бит, сканирование всего изображения в этом режиме обычно требует большого разрешения (около 400 ppi) и, таким образом, экономия на представлении пиксела нивелируется. Главным образом, именно поэтому вместо режима Artline часто используют Gray.

Режим Halftone используется нечасто и, в основном, тогда, когда оригинал имеет довольно заметную печатную растровую структуру или образован множеством штрихов (рисунки и фотографии из газет).

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

Если вы легко различаете цветные и полутоновые (в оттенках серого) оригиналы, то этого еще не достаточно. С точки зрения сканирования нужно уметь различать источники получения оригинала. Изображения, которые вы собираетесь сканировать, могут быть получены различными способами, которые приходится учитывать. Так, фотоснимки, распечатки со струйных и лазерных принтеров, рисунки кистью, карандашом, пером и т. п., объемные предметы — это одно. А вот иллюстрации из печатных изданий — это другое. Оригиналы, созданные типографским способом, имеют собственную периодическую структуру — так называемый печатный растр. Если даже он не заметен на оригинале невооруженным взглядом, то в результате сканирования может отчетливо проступать. Это — следствие оптического эффекта взаимодействия двух и более периодических структур (интерференции), называемое муаром. Новичков иногда обескураживает, что картинка на плохой бумаге сканируется лучше, чем отличный типографский оттиск на мелованной бумаге из шикарных изданий. Дело в том, что на плохой, рыхлой бумаге краска лучше расплывается, затушевывая растровую структуру изображения. Как говорят полиграфисты, на такой бумаге высока степень растискивания. Наоборот, на высококачественной, плотной бумаге растискивание ниже, и печатный растр, незаметный для глаза, оказывается достаточно выраженным, чтобы взаимодействовать с дискретным по своей сути процессом сканирования. В результате получается картинка с нанесенным на нее паразитным периодическим узором — муаром. Заметим, что в струйных принтерах применяется специальная технология внесения элементов случайности в печатный растр, чтобы исключить муар. Муар подавляют различными способами и, в первую очередь, выбором надлежащего разрешения сканирования. Подробнее об этом будет рассказано ниже.





Как устроены и работают сканеры

Как устроены и работают сканеры

Для офисных и домашних задач, а также для большинства работ по компьютерной графике лучше всего подходят так называемые планшетные сканеры. Различные модели этого типа шире других представлены в продаже. Поэтому начнем с рассмотрения принципов построения и функционирования сканеров именно этого типа. Уяснение этих принципов позволит лучше понять значение технических характеристик, которые учитываются при выборе сканеров.
Планшетный сканер (Flatbed scanner) представляет собой прямоугольный пластмассовый корпус с крышкой. Под крышкой находится стеклянная поверхность, на которую помещается оригинал, предназначенный для сканирования. Через это стекло можно разглядеть кое-что из внутренностей сканера. В сканере имеется подвижная каретка, на которой установлены лампа подсветки и система зеркал. Каретка перемещается посредством так называемого шагового двигателя. Свет лампы отражается от оригинала и через систему зеркал и фокусирующих линз попадает на так называемую матрицу, состоящую из датчиков, вырабатывающих электрические сигналы, величина которых определяется интенсивностью падающего на них света. Эти датчики основаны на светочувствительных элементах, называемых приборами с зарядовой связью (ПЗС, Couple Charged Device — CCD). Точнее говоря, на поверхности ПЗС образуется электрический заряд, пропорциональный интенсивности падающего света. Далее нужно только преобразовать величину этого заряда в другую электрическую величину — напряжение. Несколько ПЗС располагаются рядом на одной линейке.
Электрический сигнал на выходе ПЗС является аналоговой величиной (т.е. ее изменение аналогично изменению входной величины — интенсивности света). Далее происходит преобразование аналогового сигнала в цифровую форму с последующей обработкой и передачей в компьютер для дальнейшего использования. Эту функцию выполняет специальное устройство, называемое аналого-цифровым преобразователем (АЦП, Analog-to-digital Converter — ADC). Таким образом, на каждом шаге перемещения каретки сканер считывает одну горизонтальную полоску оригинала, разбитую на дискретные элементы (пикселы), количество которых равно количеству ПЗС на линейке. Все отсканированное изображение состоит из нескольких таких полос.

Какое разрешение сканера следует выбрать

Какое разрешение сканера следует выбрать

Этот вопрос чаще других задают при выборе сканера, поскольку разрешение — один из самых главных параметров сканера, от которого существенно зависит возможность получения высококачественных результатов сканирования. Однако это вовсе не означает, что следует стремиться к максимальному возможному разрешению, тем более, что оно дорого стоит.
Вырабатывая требования к разрешению сканера, важно уяснить общий подход. Сканер является устройством, преобразующим оптическую информацию об оригинале в цифровую форму и, следовательно, осуществляющим ее дискретизацию. Наданном этапе рассмотрения кажется, что чем мельче дискретизация (больше разрешение), тем меньше потерь исходной информации. Однако результаты сканировании предназначены для отображения с помощью некоторого устройства вывода, например, монитора или принтера. Эти устройства имеют свою разрешающую способность. Наконец, глаз человека обладает способностью сглаживать изображения. Кроме того, печатные оригиналы, полученные типографским способом или посредством принтера, также имеют дискретную структуру (печатный растр), хотя это может быть и не заметно для невооруженного глаза. Такие оригиналы обладают собственным разрешением.
Итак, есть оригинал с собственным разрешением, сканер со своей разрешающей способностью и результат сканирования, качество которого должно быть как можно выше. Качество результирующего изображения зависит от установленного разрешения сканера, но до некоторого предела. Если установить разрешение сканера больше собственного разрешения оригинала, то от этого качество результата сканирования, вообще говоря, не улучшится. Мы не хотим сказать, что сканирование с более высоким, чем у оригинала, разрешением бесполезно. Есть ряд причин, когда это нужно делать (например, когда мы собираемся увеличивать изображение при выводе на монитор или принтер или когда надо избавиться от муара). Здесь мы обращаем внимание на то, что улучшение качества результирующего изображения за счет повышения разрешения сканера не беспредельно. Можно увеличивать разрешение сканирования, не добиваясь при этом улучшения качества результирующего изображения, но зато увеличивая его объем и время сканирования.
О выборе разрешения сканирования мы еще неоднократно будем говорить в данной главе. Разрешение сканера — это максимальное разрешение, которое можно установить при сканировании. Так какая же величина разрешения нам нужна? Ответ зависит от того, какие изображения вы собираетесь сканировать и на какие устройства выводить. Ниже мы приведем лишь ориентировочные значения.
Если вы собираетесь сканировать изображения для последующего вывода на экран монитора, то обычно достаточно разрешения 72—l00ppi. Для вывода на обычный офисный или домашний струйный принтер — 100-150 ppi, на высококачественный струйный принтер — от 300 ppi.
При сканировании текстов из газет, журналов и книг с целью последующей обработки программами оптического распознавания символов (OCR — Optical Character Recognition) обычно требуется разрешение 200-400 ppi. Для вывода на экран или принтер эта величину можно уменьшить в несколько раз.
Для любительских фотографий обычно требуется 100-300 ppi. Для иллюстраций из роскошных типографских альбомов и буклетов — 300-600ppi.
Если вы собираетесь увеличивать изображение для вывода на экран или принтер без потери качества (четкости), то разрешение сканирования следует установить с некоторым запасом, т. е. увеличить его в 1,5—2 раза по сравнению с приведенными выше значениями.
Рекламным агентствам, например, требуется высококачественное сканирование слайдов и бумажных оригиналов. При сканировании слайдов для вывода на печать в формате 10x15 см потребуется разрешение 1200 ppi, а в формате А4 - 2400 ppi.
Обобщая изложенное выше, можно сказать, что в большинстве случаев аппаратного разрешения сканера 300 ppi достаточно. Если же сканер имеет разрешение 600 ppi, то это очень хорошо.


Кольца Ньютона

Кольца Ньютона

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


Мелкая сетка на изображении особенно на его светлых участках — муар

Рисунок 126. Мелкая сетка на изображении, особенно на его светлых участках, — муар

Мелкая сетка на изображении особенно на его светлых участках — муар Итак, муар может появиться, если оригинал имеет печатный растр, а разрешение сканирования близко к величине, кратной линеатуре печатного растра. Наиболее часто это происходит, когда выбранное разрешение близко к самой линеатуре.
Линеатура (пространственная частота — screen frequency) измеряется как количество линий на дюйм (lines per inch, Ipi). Это — характеристика, в первую очередь, печатающих устройств и, во вторую очередь, изображений, полученных на них. Газеты обычно имеют линеатуру 85 Ipi, полиграфическая печать высокого качества — 133 Ipi, высшего качества — 300 Ipi (вариантов линеатур немного).
До сканирования печатного оригинала полезно узнать его линеатуру и выбрать разрешение сканирования, немного (на 5-10%) отличающимся от нее. Однако на практике, если вы не знаете линеатуру отпечатка или не хотите тратить время на ее выяснение, выбирайте разрешение сканирования просто в 1,5—2 раза больше, чем предполагаемая линеатура. Например, при сканировании оригиналов газетного качества разрешение устанавливают 100-170ppi; при сканировании изображений высококачественной печати — более 200 ppi. Иногда советуют сканировать с максимальным (оптическим) разрешением сканера. Это вполне согласуется с общей идеей борьбы с муаром путем выбора подходящего разрешения. Кроме того, этот совет очень хорош в случае высококачественного типографского отпечатка. Следуя ему, вы одновременно добиваетесь максимальной четкости и избавляетесь от муара. Если и в этом случае муар не исчез, попытайтесь немного изменить (уменьшить) разрешение. Однако не следует забывать, что при выборе разрешения приходится учитывать и другие критерии (четкость, объем, время, необходимость увеличения).
Другой способ борьбы с муаром состоит в том, чтобы слегка, на 5-15 градусов, наклонить оригинал. Однако последующее его выравнивание средствами графического редактора может снова привести к появлению муара. Для некоторых картинок этот прием вполне приемлем.
В диалоговом окне программного обеспечения большинства сканеров имеется команда (фильтр), специально предназначенная для подавления муара. Она может называться по-разному: Descreen, Demoire pattern и т. п. Однако пользоваться ими следует осторожно, поскольку они уменьшают четкость изображения (смотрите, как бы с водой не выплеснуть и ребенка!). Впрочем, прием, основанный на размытии изображения и последующем восстановлении четкости в графическом редакторе, применяют довольно часто. В Photoshop для удаления муара сначала добавляют к изображению монохроматический шум (меню Filter), затем применяют гауссовское размытие (фильтр Gaussian Blur) и, наконец, восстанавливают четкость с помощью фильтра Sharpen или Unsharp Mask (Нечеткая маска).
Мы уже отмечали в этой главе, что появление муара более вероятно для высококачественных печатных оригиналов, чем для картинок приемлемого качества на газетной бумаге из-за так называемого растискивания (расплывания краски). Впрочем, нередко и на плохой бумаге печатный растр хорошо заметен. В струйных принтерах применяется технология случайного растра, что практически исключает появление муара.
Итак, риск появления муара при сканировании типографских оттисков весьма велик. Муар — не дефект сканера, а проявление природного взаимодействия света с регулярными структурами на пути его прохождения (в оптике есть раздел, специально посвященный прохождению света через решетки). Муар можно подавлять выбором надлежащего разрешения, а также применением фильтров размывания на уровне программного обеспечения сканера или графического редактора. Можно также уменьшить размеры изображения, чтобы сделать муар менее заметным.


Модель иллюстрирующая механизм возникновения муара

Рисунок 125. Модель, иллюстрирующая механизм возникновения муара

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

Модель пульта из черной пластмассы — трудный для сканера оригинал изза слабых отражательных свойств

Рисунок 127. Модель пульта из черной пластмассы — трудный для сканера оригинал из-за слабых отражательных свойств


Модель пульта из черной пластмассы — трудный для сканера оригинал изза слабых отражательных свойств



Настройка основных параметров сканирования

Настройка основных параметров сканирования

Рассмотрим основные параметры сканирования, которые можно настраивать с помощью графического интерфейса TWAIN-модуля. Для конкретности мы взяли в качестве примера интерфейс сканера MFS 1200SP фирмы Mustek. Это — однопроходный цветной планшетный сканер на основе ПЗС с оптическим разрешением 600 ppi и интерполяционным разрешением 9600 ppi, глубиной цвета 30 бит, подключаемый к компьютеру посредством SCSI-адаптера или собственной интерфейсной платы; формат А4; масса 1 кг. Этим сканером мы, авторы книги, с удовольствием пользуемся последние пять лет.
Один из типовых способов работы состоит в вызове диалогового окна сканера из прикладной программы, например, из графического редактора или OCR-системы. При этом результат сканирования будет сразу загружен в редактор, что очень удобно, поскольку редко когда обходится без хотя бы легкой коррекции отсканированного изображения. Заметим, что некоторые сканеры включаются автоматически при их вызове из прикладной программы, а для других нужно предварительно включить питание специальным переключателем.

Область высокого разрешения

Область высокого разрешения

Некоторые планшетные сканеры могут использовать дополнительный объектив с большой степенью увеличения. Для этого случая в техническом паспорте указываются размеры части области рабочего поля сканера, в которой может осуществляться сканирование с повышенным в несколько раз разрешением. Эта область высокого разрешения (High Resolution Area, HRA) обычно намного меньше рабочего поля.


Общие рекомендации

Общие рекомендации

Сканер является симбиозом оптики, механики и электроники. Оптика и механика — наиболее слабые звенья, требующие особенно осторожного и внимательного отношения. Даже самый лучший сканер не гарантирует, что у вас сразу все получится блестяще, как профессиональная фотокамера в руках новичка не cделает снимки лучше, чем фотоаппарат-«мыльница» в руках профессионала. Но высококачественный фотоаппарат может то, чего бытовая камера для широкого потребителя никогда не достигнет. Нужно лишь правильно использовать имеющиеся возможности. Сканер может быть очень мощным и дорогим, либо пригодным для простых целей и, следовательно, дешевым. Каким бы сканером вы ни обладали, важно правильно с ним работать.
Чтобы сканер прослужил долго, а результаты сканирования при правильном выборе настраиваемых параметров были хорошими, необходимо выполнять ряд простых требований. Они совсем не обременительны, но пренебрегать ими не стоит. Кроме того, есть набор элементарных правил и знаний, которые относятся к общей культуре обращения со сканерами. Конечно, мы представляем, что новоиспеченным обладателям сканера хочется как можно скорее получить сногсшибательный результат, а все премудрости оставить на случай разочарований и отчаяния. В таком случае вы можете пропустить до поры этот раздел. Однако заметим: кто предупрежден, тот почти защищен.
Планшетный сканер должен быть установлен на горизонтальной устойчивой поверхности так, чтобы свести возможную вибрацию к минимуму. Вибрация как сказывается на результате сканирования, так и ускоряет износ сканера. К сожалению, ничто не вечно под Луной, но к своему концу никто не опоздает.
Стеклянная поверхность рабочего поля сканера должна быть чистой и сухой. Пыль, пятна и царапины на стекле будут заметны в результате сканирования. Рабочее поле следует протирать чистой мягкой тканью, смоченной спиртом или, на худой конец, водой. При этом нужно следить, чтобы влага не просочилась внутрь корпуса, где расположены лампа, зеркала и матрица светочувствительных элементов. Сканер должен быть установлен в сухом месте и подальше от сквозняков. Сквозняки хорошо заносят пыль в щели, а также, говорят, вызывают простуду. Другими словами, нужно позаботиться о предотвращении конденсации влаги и накоплении пыли внутри корпуса сканера.
Обычно планшетные сканеры снабжены так называемым замком каретки (carriage lock), который запирается на время транспортировки сканера и отпирается перед работой. В любом случае справьтесь по этому вопросу в технической документации. Обычно замок выглядит просто как переключатель. Если при перемещении сканера возможны его встряхивания и сильная вибрация, то следует обязательно использовать замок. Иначе может пострадать самое уязвимое место сканера — его электромеханическая часть. Однако нельзя включать сканер, если его каретка на замке.
Со временем характеристики сканера могут ухудшаться. Прежде всего это связано с изменением параметров лампы: интенсивность, стабильность и спектральный состав света изменяются (так бывает и с обычными люминесцентными лампами). Иногда это обусловлено просто загрязнением поверхности лампы, но может быть вызвано и другими причинами (в частности, естественным старением). Кроме того, засоряется оптика (линзы, зеркала) и ПЗС. Именно поэтому нельзя допускать попадания пыли и влаги внутрь корпуса.. Если же это случилось, то в большинстве случаев дело можно поправить самостоятельно, сняв стеклянную панель рабочего поля и осторожно очистив от грязи и влаги внутренние части корпуса, лампы и зеркал. Однако касаться электронных элементов, особенно светочувствительных элементов, мы вам не советуем. Пусть это сделают специалисты ремонтной мастерской.
При неправильной эксплуатации, а также со временем может ухудшиться так называемое сведение. Эта проблема похожа на проблему сведения лучей в цветных телевизорах и мониторах. Чтобы понять, о чем идет речь, выполните следующий эксперимент. Создайте с помощью высококачественного (например, лазерного) черно-белого принтера тестовый оригинал, содержащий несколько слов различного размера на белом фоне. Затем отсканируйте его в цветном режиме с оптическим разрешением сканера. Ожидается, что в лучшем случае черные буквы будут черными и ничего кроме этих букв не будет видно. Плохое сведение сканера выражается в виде цветных ореолов около черных букв тестового оригинала. Эти ореолы могут быть заметны в различной степени. Вообще говоря, даже новые сканеры допускают этот эффект в некоторых пределах, но в техническом паспорте об этом обычно ничего не пишется. В магазине такие эксперименты также не проводятся, но ничто не мешает вам спросить об этом у продавца. Если вы приобрели новый сканер, то советуем вам сразу же провести эксперимент по сведению, чтобы потом сравнить, не ухудшилось ли оно в процессе эксплуатации сканера. Если результат эксперимента вас совсем не устраивает, то, возможно, вам придется сменить модель на более дорогую.
Если результат сканирования при различных значениях параметров содержит «ужасные» блики, пятна, полосы и даже зеркальные повторения изображения, похожие на оригинал, то, возможно, вы столкнулись с явлением, называемым Ghosting (Появление призраков). Этот эффект связан с серьезными нарушениями в конструкции и функционировании сканера. Сканеры с эффектом Ghosting считаются негодными. Однако паразитные изображения (всякого рода узоры) могут быть обусловлены и другими причинами. Это так называемый муар (moire), обычно возникающий при сканировании оригиналов, созданных типографским способом, а также кольца Ньютона, возникающие при сканировании прозрачных материалов. Эти эффекты не связаны с дефектами сканера и во многих случаях устраняются настройкой параметров сканирования. Об этом более подробно рассказано ниже. Чтобы отсечь гипотезу муара (или колец Ньютона) в пользу гипотезы Ghosting, выполните следующий простой эксперимент. Возьмите фотографию со светлыми и темными участками, не очень контрастную, но и не вялую. Это может быть любительская фотография, снятая обычным фотоаппаратом типа «мыльница» и отпечатанная на фотобумаге (ни в коем случае не картинка из типографского издания). Снимок не должен быть покоробленным. Плотно прижмите его к стеклу рабочего поля сканера. Если результат сканирования все же содержит какие-то посторонние изображения типа регулярных узоров, то измените немного разрешение сканирования. Если паразитные включения в результат сканирования остались, то, скорее всего, вы имеете дело с Ghosting.
Лампа сканера после его включения выходит на требуемый режим постепенно. Поэтому необходимо подождать несколько минут, прежде чем начать сканирование. Если сканируемое изображение меньше рабочего поля сканера, то лучше его расположить посередине, а не на краю, около линеек. Именно в средней части рабочего поля оптико-электронные характеристики сканера наиболее близки к заявленным в паспорте. Это несколько затрудняет выравнивание оригинала, но во многих графических редакторах имеется возможность повернуть изображение на нужный угол. Программы распознавания символов (OCR) обычно это делают автоматически.


Окно установки размеров и разрешения изображения в Photoshop

Рисунок 123. Окно установки размеров и разрешения изображения в Photoshop

Окно установки размеров и разрешения изображения в Photoshop Вообще говоря, оптимизировать окончательный вариант изображения лучше средствами мощного графического редактора, такого как Photoshop. Работа с графикой с точки зрения дизайнера (художника) обычно происходит в пространстве графического редактора, а не средств программного обеспечения сканера. Но это не означает, что программные средства сканера (TWAIN-интерфейса) должны быть навсегда забыты. Хотя они и создавались главным образом для того, чтобы пользователь мог работать со сканером, не завися от имеющегося у него пакета графических программ, иногда их можно эффективно применять еще до того, как Photoshop проявит всю свою мощь.
В следующей таблице приведены в качестве примера затраты памяти при сканировании изображения размером 4x4 дюйма (11x11 см) в различных режимах и при различных разрешениях.
Тип изображения Объем изображения при различных разрешениях
100 ppi 150 ppi 300 ppi 600 ppi
Color 469 Кбайт 1 Мбайт 4,12 Мбайт 16,5 Мбайт
Gray 156 Кбайт 352 Кбайт 1,37 Мбайт 5,5 Мбайт
Artline 19,5 Кбайт 44 Кбайт 175 Кбайт 703 Кбайт
В заключение разговора о разрешении сканирования напомним обстоятельства, которые приходится дополнительно учитывать при выборе разрешения. Во-первых, если отсканированное изображение предназначается для вывода на печать с помощью лазерного или струйного принтера, то устанавливаемое разрешение может быть в 3—4 раза меньше разрешения принтера. Это справедливо в первую очередь для цветных или полутоновых (в оттенках серого) изображений. Для изображений типа Artline или Halftone разрешение сканирования следует выбирать, по возможности, равным разрешению принтера. Например, если у вас обычный струйный принтер с разрешением 300 ppi, то. попробуйте сначала отсканировать изображение с разрешением 75 ppi. Если результат окажется неудовлетворительным, увеличьте разрешение сканирования в 2 раза. Во-вторых, разрешение часто приходится менять при сканировании изображений из высококачественных печатных изданий. Причина тому так называемый муар — эффект взаимодействия нескольких периодических структур (в данном случае, дискретных структур сканирования и печатного растра). Часто этот побочный оптический эффект устраняется выбором более высокого разрешения сканирования. Подавление муара более подробно будет рассмотрено ниже. В-третьих, при выборе начального и, при необходимости, последующих значений разрешения сканирования следует стремиться к тому, чтобы выбранное разрешение было кратно оптическому разрешению сканера, деленному на целую степень двойки:
Устанавливаемое разрешение = Оптическое разрешение : 2 i, где i = 0, 1,2, 3,...
Например, если оптическое разрешение сканера равно 600 ppi, то устанавливаемое разрешение сканирования должно быть как можно ближе к 600, 300, 150, 75 ppi. Такой выбор способствует достижению наибольшей четкости результата сканирования.


Оптическая плотность

Оптическая плотность

Понятие оптической плотности (Optical Density) относится прежде всего к сканируемому оригиналу. Этот параметр характеризует способность оригинала поглощать свет; он обозначается как D или OD. Оптическая плотность вычисляется как десятичный логарифм отношения интенсивностей падающего и отраженного (в случае непрозрачных оригиналов) или проходящего (в случае прозрачных оригиналов) света. Минимальная оптическая плотность (Dmin) соответствует самому светлому (прозрачному) участку оригинала, а максимальная плотность (Dmax) соответствует самому темному (наименее прозрачному) участку. Диапазон возможных значений оптической плотности заключен между 0 (идеально белый или абсолютно прозрачный оригинал) и 4 (черный или абсолютно непрозрачный оригинал).
Типичные значения оптической плотности некоторых типов оригиналов представлены в следующей таблице:
Тип оригинала Оптическая плотность
Изображения на газетной бумаге 0,9
Изображения на мелованной бумаге (высококачественные полиграфические издания) 1,5-1,9
Фотографии любительского и коммерческого качества 2,3
Цветные слайды 2,7-3,0
Негативные пленки 2,8
Высококачественные профессиональные диапозитивы и слайды с двойной эмульсией 3,0-4,0
Динамический диапазон сканера определяется максимальным и минимальным значениями оптической плотности и характеризует его способность работать с различными типами оригиналов. Динамический диапазон сканера связан с его разрядностью (битовой глубиной цвета): чем выше разрядность, тем больше динамический диапазон и наоборот. Для многих планшетных сканеров, главным образом, предназначенных для офисных работ, этот параметр не указывается. В таких случаях считается, что значение оптической плотности приблизительно равно 2,5 (типовое значение для офисных 24-битных сканеров). Для 30-битного сканера этот параметр равен 2,6—3,0, а для 36-битного — от 3,0 и выше.
С увеличением динамического диапазона сканер лучше передает градации яркости в очень светлых и очень темных участках изображения. Наоборот, при недостаточном динамическом диапазоне детали изображения и плавность цветовых переходов в темных и светлых участках теряются.


Основные характеристики оптикоэлектронной системы сканера

Основные характеристики оптико-электронной системы сканера

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


Подключение сканера к компьютеру

Подключение сканера к компьютеру

Данные результатов сканирования в цифровой форме передаются от сканера в компьютер для последующей обработки и/или хранения в виде файлов. Сканеры могут подключаться к компьютеру различными способами. Иначе говоря, они могут иметь различный аппаратный интерфейс.
Одним из наиболее распространенных является SCSI-интерфейс. Он обеспечивается специальной платой (адаптером, картой), вставляемой в разъем (слот) расширения на материнской плате компьютера. К этой плате можно подключать не только сканер с SCSI-интерфейсом, но и другие устройства (например, жесткие диски). Так что, SCSI-интерфейс обеспечивается отдельным устройством, которое уже, возможно, имеется на вашем компьютере. Почти все планшетные сканеры с SCSI-интерфейсом комплектуются усеченной модификацией SCSI-платы, к которой можно подключить только сканер. Таким образом, если на вашем компьютере нет SCSI-адаптера, но есть свободный подходящий слот на материнской плате, то с подключением сканера не возникнет принципиальных проблем. SCSI-интерфейс надежен и обеспечивает быструю передачу данных. Однако может потребоваться установка платы. Для этого следует при выключенном питании компьютера снять кожух системного блока компьютера и установить в один из свободных и подходящих разъемов интерфейсную плату. Подробности вполне понятно описаны в руководстве к сканеру.
Кроме того, есть планшетные сканеры, имеющие собственную интерфейсную плату, которая помимо передачи данных обеспечивает электрическое питание сканера от системного блока компьютера. При этом питание на сканер будет подаваться только при запуске программы сканирования. Следует иметь в виду, что интерфейсная плата сканера может подходить к ISA-слоту или к PCI-слоту материнской платы компьютера. Поэтому прежде чем выбрать такой сканер, следует выяснить, имеется ли в вашем компьютере свободный подходящий слот.
Если вам часто приходится перемещать сканер, подключая его то к одному, то к другому компьютеру, то описанные выше способы могут показаться неудобными: каждый раз необходимо выключить компьютер, снять крышку, вынуть или установить интерфейсную плату. С другой стороны, все эти хлопоты при соответствующей сноровке требуют всего лишь 5 - 10 минут.
Есть сканеры, подключаемые к USB-порту (к универсальной последовательной шине) компьютера. Это — наиболее удобный и быстрый интерфейс, не требующий установки платы в системный блок, а иногда даже выключения компьютера. USB-порт обеспечивает не только обмен данными между компьютером и подключенным к нему внешним устройством, но и питание этого устройства от системного блока питания. Однако это справедливо не для всех устройств. Некоторые из них снабжены своими блоками питания и тогда, как правило, при соединении их кабелем с компьютером последний приходится выключать. В любом случае перед подключением сканера к USB-порту следует узнать из прилагаемого руководства, как именно это делается. Кроме того, нужно иметь в виду, что USB-порты отсутствуют на старых моделях компьютеров (первых Pentium и более ранних).
Многие модели планшетных сканеров подключаются к параллельному порту (LPT) компьютера, к которому обычно подключается принтер. В этом случае сканер подключается через кабель непосредственно к LPT-порту, а принтер — к дополнительному разъему на корпусе сканера. Этот интерфейс медленнее, чем описанные выше. Для подключения сканера к LPT-порту не требуется снимать крышку системного блока, но выключать компьютер на время этой операции все же необходимо.
Вообще говоря, сканеры с любым из рассмотренных выше интерфейсов могут использоваться для работы с графикой. Однако мы отдаем предпочтение интерфейсам SCSI и USB, исходя из соображений надежности, быстродействия и удобства эксплуатации.


Программное обеспечение сканера

Программное обеспечение сканера

Программное обеспечение сканера состоит из двух частей: программного интерфейса и пакета прикладных графических программ. Программный интерфейс обеспечивает управление сканером, а также его связь с графическими программами сторонних производителей. Это так называемый TWAIN-модуль или драйвер сканера. Говорят, что TWAIN — аббревиатура Toolkit Without An Interesting Name (Инструменты без интересного имени). По существу, спецификация TWAIN является стандартом прикладного программного интерфейса периферийных устройств, в том числе и сканеров. С TWAIN должны быть совместимы все выпускаемые сканеры, цифровые фотокамеры и другие периферийные устройства ввода данных. Стандарт TWAIN поддерживают практически все графические программы. В состав Windows 98 и более поздних версий включен TWAIN-модуль. Однако все же рекомендуется устанавливать TWAIN-модуль, поставляемый вместе со сканером (также, как лучше устанавливать драйвер производителя устройства).
Подключив сканер к компьютеру и установив TWAIN-модуль, вы получаете возможность вызывать процедуру сканирования из графической программы, например, Photoshop, MS PhotoEditor, ACDSee, FineReader и многих других. В различных программах команды сканирования называются по-разному: Import>TWAIN, Acquire, Сканировать и т. п. В графическом редакторе Photoshop команда сканирования выбирается в меню File>Import (Файл>Импорт), в ACDSee — File>Acquire.
TWAIN-модуль имеет пользовательский интерфейс (диалоговое окно), с помощью которого можно настроить параметры сканирования. Внешний вид и состав параметров этого модуля могут быть различными, поскольку производители программного обеспечения сканера ограничены только собственно стандартом TWAIN, а совершенствовать пользовательский интерфейс им никто не мешает. Вместе с тем, существует стандартный набор параметров, которые присутствуют во всех интерфейсах: выбор режима и области сканирования, разрешения, контрастности, яркости и т. д.
Кроме TWAIN-модуля в программное обеспечение сканера обычно входит какой-нибудь, обычно весьма скромный по возможностям, графический редактор и, возможно, программа оптического распознавания символов (OCR). Если у вас на компьютере уже установлены солидные программы, например, графический редактор Photoshop и система OCR FineReader, то дополнительные программные средства, поставляемые вместе со сканером, вам не нужны.
Заметим, что есть сканеры с собственным программным интерфейсом, отличным от TWAIN. В этом случае результат сканирования сохраняется в файле графического формата (например, TIFF), который затем можно открыть для просмотра и правки в графическом редакторе.


Различимость линий

Различимость линий

Различимость линий (Line detectability) — максимальное количество параллельных линий на дюйм, которые воспроизводятся с помощью сканера как раздельные линии (без слипаний). Этот параметр характеризует пригодность сканера для работы с чертежами и другими изображениями, содержащими много мелких деталей. Его значение измеряется в линиях на дюйм (lines per inch, Ipi).

Разрешение

Разрешение

Разрешение (Resolution) или разрешающая способность сканера — параметр, характеризующий максимальную точность или степень детальности представления оригинала в цифровом виде. Разрешение измеряется в пикселах на дюйм (pixels per inch, ppi). Нередко разрешение указывают в точках на дюйм (dots per inch, dpi), но эта единица измерения является традиционной для устройств вывода (принтеров). Говоря о разрешении, мы будем использовать ppi. Различают аппаратное (оптическое) и интерполяционное разрешение сканера.

Сетевая карта отсканированная

Рисунок 129. Сетевая карта, отсканированная при разрешении 300ppi без специальной настройки сканера и обработки изображения в графическом редакторе

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


Схема устройства и работы планшетного

Рисунок 119. Схема устройства и работы планшетного сканера на основе ПЗС (CCD): свет лампы отражается от оригинала и через оптическую систему попадает на матрицу светочувствительных элементов, а затем на аналого-цифровой преобразователь (АЦП)

Схема устройства и работы планшетного В цветных сканерах сейчас используются, как правило, трехрядная матрица ПЗС и подсветка оригинала калиброванным белым светом. Каждый ряд матрицы предназначен для восприятия одной из базовых цветовых составляющих света (красной, зеленой и синей). Чтобы разделить цвета, используют либо призму, разлагающую луч белого света на цветные составляющие, либо специальное фильтрующее покрытие ПЗС. Однако существуют цветные сканеры и с однорядной матрицей ПЗС, в которых оригинал по очереди подсвечивается тремя лампами базовых цветов. Однорядная технология с тройной подсветкой считается устаревшей.
Выше мы описали принципы построения и работы так называемых однопроходных сканеров, которые сканируют оригинал за один проход каретки. Однако еще встречаются, хотя больше и не выпускаются промышленностью, трехпроходные сканеры. Это сканеры с однорядной матрицей ПЗС. В них при каждом проходе каретки вдоль оригинала используется один из базовых цветных светофильтров: за каждый проход снимается информация по одному из трех цветовых каналов изображения. Эта технология также устарела.
Кроме CCD-сканеров, основанных на матрице ПЗС, имеются CIS-сканеры (Contact Image Sensor), в которых применяется фотоэлементная технология.
Светочувствительные матрицы, выполненные по этой технологии, воспринимают отраженный оригиналом спет непосредственно через стекло сканера без использования оптических систем фокусировки. Это позволило уменьшить размеры и вес планшетных сканеров более чем в два раза (до 3—4 кг). Однако такие сканеры хороши только для исключительно плоских оригиналов, плотно прилегающих к стеклянной поверхности рабочего поля. При этом качество получаемого изображения существенно зависит от наличия посторонних источников света (крышка CIS-сканера во время сканирования должна быть закрыта). В случае объемных оригиналов качество оставляет желать лучшего, в то время как ССО-сканеры дают неплохие результаты и для объемных (до нескольких см в глубину) предметов.
Планшетные сканеры могут быть снабжены дополнительными устройствами, такими как слайд-адаптер, автоподатчик оригиналов и др. Для одних моделей эти устройства предусмотрены, а для других нет.
Слайд-адаптер (Transparency Media Adapter, TMA) — специальная приставка, позволяющая сканировать прозрачные оригиналы. Сканирование прозрачных материалов происходит с помощью проходящего, а не отраженного света. Иначе говоря, прозрачный оригинал должен находиться между источником света и светочувствительными элементами. Слайд-адаптер представляет собой навесной модуль, снабженный лампой, которая движется синхронно с кареткой сканера. Иногда просто равномерно освещают некоторый участок рабочего поля, чтобы не перемещать лампу. Таким образом, главная цель применения слайд-адаптера заключается в изменении положения источника света.
Если же у вас есть цифровая камера (цифровой фотоаппарат), то слайд-адаптер, скорее всего, вам не нужен.
Если сканировать прозрачные оригиналы без использования слайд-адаптера, то нужно понимать, что при облучении оригинала количества отраженного и проходящего света не равны друг другу. Так, оригинал пропустит какую-то часть падающего цвета, которая затем отразится от белого покрытия крышки сканера и снова пройдет через оригинал. Какая-то часть света отразится от оригинала. Соотношение между частями проходящего и отраженного света зависит от степени прозрачности участка оригинала. Таким образом, светочувствительные элементы матрицы сканера получат свет, дважды прошедший через оригинал, а также свет, отраженный от оригинала. Многократность прохода света через оригинал ослабляет его, а взаимодействие отраженного и проходящего пучков света (интерференция) вызывает искажения и побочные видеоэффекты.
Автоподатчик — устройство, подающее оригиналы в сканер, которое очень удобно использовать при потоковом сканировании однотипных изображений (когда не нужно часто перенастраивать сканер), например, текстов или чертежей приблизительно одинакового качества.
Кроме планшетных, есть и другие типы сканеров: ручные, листопротяжные, барабанные, слайдовые, для сканирования штрих-кодов, скоростные для потоковой работы с документами.
Ручной сканер (Handheld Scanner) — портативный сканер, в котором сканирование осуществляется путем его ручного перемещения по оригиналу. По принципу действия такой сканер аналогичен планшетному. Ширина области сканирования — не более 15см. Первые сканеры для широкого применения появились в продаже в 80-х годах XX века. Они были ручными и позволяли сканировать изображения в оттенках серого цвета. Теперь такие сканеры нелегко найти.
Листопротяжный или роликовый сканер (Sheetfed Scanner) — сканер, в котором оригинал протягивается мимо неподвижной линейной CCD- или CIS-матрицы, разновидность такого сканера — факс-аппарат.
Барабанный сканер (Drum Scanner) — сканер, в котором оригинал закрепляется на вращающемся барабане, а для сканирования используются фотоэлектронные умножители. При этом сканируется точечная область изображения, а сканирующая головка движется вдоль барабана очень близко от оригинала.
Слайдовый сканер (Film-scanner) — разновидность планшетного сканера, предназначенная для сканирования прозрачных материалов (слайдов, негативных фотопленок, рентгеновских снимков и т. п.). Обычно размер таких оригиналов фиксирован. Заметим, что для некоторых планшетных сканеров предусмотрена специальная приставка (слайд-адаптер), предназначенная для сканирования прозрачных материалов (см. выше).
Сканер штрих-кодов (Bar-code Scanner) — сканер, предназначенный для сканирования товарных штрих-кодов. По принципу действия он сходен с ручным сканером и подключается к компьютеру, либо к специализированной торговой системе. При наличии соответствующего программного обеспечения распознавать штрих-коды может любой сканер.
Скоростной сканер для работы с документами (Document Scanner) — разновидность листопротяжного сканера, предназначенная для высокопроизводительного многостраничного ввода. Сканеры могут быть оборудованы приемными и выходными лотками объемом свыше 1000 листов и вводить информацию со скоростью свыше 100 листов в минуту. Некоторые модели этого класса обеспечивают двустороннее (дуплексное) сканирование, подсветку оригинала разными цветами для отсечки цветного фона, компенсацию неоднородности фона, имеют модули динамической обработки разнотипных оригиналов.
Итак, для дома и офиса лучше всего подходит планшетный сканер. Если вы хотите заниматься графическим дизайном, то лучше выбрать CCD-сканер (на основе ПЗС-матрицы), поскольку он позволяет сканировать и объемные предметы. Если вы собираетесь сканировать слайды и другие прозрачные материалы, то следует выбрать сканер, для которого предусмотрен слайд-адаптер. Обычно собственно сканер и подходящий к нему слайд-адаптер продаются отдельно. Если не получается приобрести слайд-адаптер одновременно со сканером, то при необходимости вы сможете сделать это позже. Необходимо также определить максимальные размеры сканируемых изображений. В настоящее время типовым является формат А4, соответствующий обычному листу писчей бумаги. Большинство бытовых сканеров ориентированы именно на этот формат. Для сканирования чертежей и другой конструкторской документации обычно требуется формат A3, соответствующий двум листам формата А4, соединенным по длинной стороне. В настоящее время цены однотипных сканеров для форматов А4 и A3 сближаются. Можно предположить, что оригиналы, не превышающие по размерам формат А4, будут лучше обрабатываться сканером, ориентированным на формат A3.
Перечисленные выше параметры далеко не исчерпывают весь список, но на данном этапе нашего рассмотрения мы пока можем использовать только их. При выборе сканера решающими являются три аспекта: аппаратный интерфейс (способ подключения), оптико-электронная система и программный интерфейс (так называемый TWAIN-модуль). Далее мы рассмотрим их более подробно.


Сканеры и сканирование

Сканеры и сканирование

Исходный материал для создания графических композиций можно найти в уже существующих графических файлах. Однако при этом следует помнить, что некоторые из них являются предметом защиты авторских прав и, следовательно, их нельзя свободно копировать. Можно также создавать свои произведения «с чистого листа», используя средства рисования графических редакторов. Но тогда нужны как художественные способности, так и навыки рисования с помощью компьютера. Есть еще один эффективный способ создания компьютерной графики. Он основан на использовании сканеров или цифровых фотокамер. Хорошие фотокамеры довольно дороги, а сканеры успешно завоевывают рынок товаров массового потребления и вполне доступны. С помощью сканера можно ввести в компьютер картинки из газет, журналов, книг и фотографий как целиком, так и частями, которые послужат вам строительным материалом для будущих композиций. Вы можете создавать эскизы и заготовки сначала на бумаге, а затем вводить их в компьютер посредством сканера и дорабатывать с помощью графических редакторов. Наконец, сканер просто незаменим, когда необходимо превратить бумажный печатный документ в текстовый, чтобы можно было открыть его в текстовом (а не в графическом) редакторе (например, в MS Word) для просмотра и редактирования.
Сканер является устройством для ввода изображений в компьютер. Исходные изображения (оригиналы) обычно находятся на непрозрачных (бумага) или прозрачных (слайды, фотопленка) носителях. Обычно это — рисунки, фотографии, слайды и/или тексты, но могут быть и объемные предметы. По существу сканер является устройством, которое воспринимает оптическую информацию, доступную для нашего зрения, и сначала преобразует ее в электрическую форму, а затем приводит к цифровому виду, пригодному для ввода в компьютер. Таким образом, процесс сканирования оригинала состоит в его оцифровке. Оцифрованное изображение (на жаргоне — «скан») в дальнейшем может быть обработано в компьютере с помощью графического редактора (например, Photoshop), если это рисунок, или с помощью программы распознавания символов (например, FineReader), если это текст.
Существует множество моделей сканеров, отличающихся как техническими характеристиками и возможностями, так и ценой. Совсем не факт, что вам нужен самый могущественный и самый дорогой сканер. Новички, как правило, испытывают затруднения при выборе модели сканера и, вдальнейшем, при его использовании. Ошибка в выборе сканера выражается либо в том, что вы недоплатили чуть-чуть, либо слишком переплатили. Выбирая сканер, следует исходить из задач, которые вы собираетесь решать с его помощью. Сканеры могут использоваться для текущих задач офисов, домашнего коллекционирования фотографий и профессиональной работы с графикой. Для Web-дизайна, например, вы можете обходиться и самыми дешевыми сканерами. Но для работ, предназначенных, в конечном счете, для полиграфии, вам, возможно, потребуется более мощное устройство.
Чтобы ориентироваться среди множества параметров сканеров, следует понимать, на что они практически влияют и от чего зависят. В этой главе мы попытаемся помочь в разрешении этих проблем. Сначала нужно получить общее представление о принципах построения и функционирования сканеров. Это совсем не трудно и не потребует много времени, но очень важно. Затем следует разобраться в основных параметрах (технических характеристиках) и освоить несколько типовых приемов использования сканеров. Наконец, необходимо узнать, как корректировать отсканированные изображения в графических и других редакторах.


Сканирование фотографий

Сканирование фотографий

На практике чаще всего сканируются фотографии. Здесь речь пойдет о сканировании фотоснимков, полученных с помощью обычных фотокамер и отпечатанных на фотобумаге. Обычный пользователь компьютера приобретает сканер в основном именно для этой цели. Цветные фотографии, полученные где-то в 70-х и 80-х годах прошлого века, быстро выцветают. Они не выдерживают никакого сравнения с фотоснимками начала XX века. У нас, например, есть великолепные экземпляры отпечатков образца 1905 года. Со временем они испытали лишь некоторые механические повреждения (царапины, перегибы бумаги), но оставшиеся фрагменты восхищают своей четкостью. Современные фотоотпечатки, возможно, сохранят графическую информацию 20—25 лет. Поэтому лучший способ надежно и надолго сохранить свой домашний фотоархив — отсканировать снимки и записать их на магнитных носителях или лазерных дисках.
При сканировании фотоснимков, полученных с помощью обычных фотокамер и отпечатанных на фотобумаге, проблем с муаром, как правило, не возникает. Выбор разрешения определяется только требуемой четкостью (резкостью), а также размерами изображения. Если вы собираетесь его увеличивать при выводе на экран или печать, то разрешение сканирования следует выбрать с некоторым запасом. Мы уже неоднократно говорили об этом.
Обычные любительские фотографии сканируются, как правило, при разрешении 75-150 ppi, если предполагается выводить их на экран монитора. Для вывода на печать разрешение следует устанавливать примерно равным разрешению принтера. Результат сканирования приходится немного обработать в графическом редакторе (отрегулировать яркость, контрастность, цветовой баланс и т. п.). Если мы собираемся отправить отсканированные фотоснимки по электронной почте тому, кто умеет работать с графикой, то чаше всего мы не делаем обработку, рассчитывая на то, что получатель это сделает, как ему надо. Таким образом, мы пересылаем ему исходную графическую информацию. В Web-дизайне, наоборот, требуется обработать результат сканирования так, чтобы он и выглядел надлежащим образом, и места на диске занимал как можно меньше (загружался в браузер быстрее).
Одна из основных проблем сканирования отпечатков на фотобумаге заключается в так называемых «провалах в тенях». Иначе говоря, сканер не в состоянии зафиксировать детали в темных участках изображения. Эта проблема возникает из-за недостаточного динамического диапазона оптической плотности недорогих офисных сканеров. Попробуйте отпечатать фотографии в более мягком проявителе или на менее контрастной бумаге. Если при этом снимок не потерял насыщенности черного цвета, а проработка деталей в тенях улучшилась, то вы на верном пути. Особую сложность представляет собой сканирование снимков, выполненных в так называемом низком ключе, когда основные полутоновые переходы сконцентрированы в области теней (темных участков). Именно такие фотографии, снятые ночью в свете вспышки или днем при неярком освещении, очень часто создаются как художественные произведения, а не как фотодокументы. Таким фото обычно отдается предпочтение в Web-дизайне. Возможно, в этом случае вам придётся выбирать одно из двух возможных решений:
  • печатать фотографии обычным образом, а затем повышать контрастность темных участков в графическом редакторе (инструменты Curves (Кривые) и Levels (Уровни) в Photoshop);
  • печатать фотографии светлей и мягче, чем обычно (этим мы переносим теневые участки в более благоприятный для сканера диапазон), а затем повысить общую контрастность снимка в графическом редакторе (инструменты Levels (Уровни) и Brightness/Contrast (Яркость/Контрастность) в Photoshop).
  • На какой бумаге, глянцевой или матовой, лучше печатать фотоснимки для сканирования? Глянцевая бумага лучше отражает свет. Это способствует хорошему качеству (четкости) результатов сканирования, но одновременно повышает риск появления паразитных бликов и пятен при короблении и неплотном прилегании фотобумаги к стеклу рабочего поля сканера. Снимок на глянцевой бумаге должен быть хорошо высушенным, ровным и без пятен, оставленных, например, пальцами. Для матовой бумаги все перечисленное выше не столь критично, но результат сканирования может быть недостаточно четким, поскольку матовая бумага больше, чем глянцевая, поглощает и рассеивает свет.


    Сканирование объемных предметов

    Сканирование объемных предметов

    Богатым источником исходного материала для художественных композиций является сканирование объемных предметов. Но не все сканеры могут это делать с приемлемым качеством. CCD-сканерам (т. е. сканерам на основе ПЗС-матрицы) это доступно, а CIS-сканерам — нет. Хотя глубина (третье измерение) объемных оригиналов, достижимая сканером, не превышает нескольких сантиметров, получаемый эффект может быть очень интересным. Однако сразу же предупредим, что попытка отсканировать свое лицо приведет, скорее всего, к ожогу глаз и потере зрения.
    При сканировании объемных предметов обычно приходится снимать крышку, что дает доступ свету от внешних источников. Это может ухудшить качество изображения. Поэтому применяйте белую или черную ткань, закрывая ею сканируемый предмет.
    Наиболее сложными для сканера являются слишком темные и очень блестящие предметы. В темных предметах плохо выделяются детали. В случае блестящих предметов нужно подобрать их расположение так, чтобы уменьшить ненужные блики. Это относится, в частности, и к книгам с золотым тиснением. Однако золотые фрагменты оформления обложек книг обычно выглядят в результате сканирования не как блестящие, а как темные. Чтобы поправить это, плоскость книги располагают под некоторым углом к плоскости рабочего поля сканера. Для этого можно что-нибудь подложить под какой-нибудь угол книги, например, спичку или коробку от компакт-диска.
    На следующих рисунках приведены примеры пограничных случаев сканирования объемных предметов — модели паровоза и часов. Изображение часов не обрабатывалось в графическом редакторе. А вот изображение паровоза пришлось, как говорят, «вытягивать» в Photoshop, поскольку оригинал — из черной матовой пластмассы, плохо отражающей свет. Конечно, для улучшения отражательных свойств можно было бы смочить паровоз растительным или машинным маслом, но мы не стали, поскольку он нам еще нужен, и, кроме того, мы не хотели ненароком испачкать стекло рабочего поля сканера.

    Сканирование текстов

    Сканирование текстов

    На практике часто приходиться вводить в компьютер информацию из текстовых документов, например, из книг; журналов и газет. Чтобы ускорить этот процесс, применяют сканеры. Однако результат сканирования, вообще говоря, есть просто графическое изображение (рисунок), хотя и содержащее буквы (нарисованные). Если вы сохранили его в файле графического формата, то сможете открыть потом лишь в редакторе или программе просмотра графики. Хотя редактировать тексты в графическом редакторе в принципе возможно, на практике, конечно, никто этого не делает (кроме того, изображение текста с точки зрения компьютера текстом не является, редактировать его придется как рисунок). К тому же хранить текстовую информацию в файлах графического формата — верх расточительности в использовании дискового пространства. Текстовая информация вместе с иллюстративной графикой сканируется, чтобы затем передать ее программе оптического распознавания символов (OCR), например, FineReader или CunieForm.

    Сканирование

    Сканирование

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


    Тоновая коррекция изображения

    Тоновая коррекция изображения

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

    Выбор разрешения сканирования

    Выбор разрешения сканирования

    Сканер, как отмечалось выше, обладает разрешающей способностью, определяемой его конструктивными особенностями. Она может быть аппаратной (оптической) или интерполяционной (реконструированной вычислительными средствами). Разрешающая способность является максимальной характеристикой, определяемой техническими особенностями сканера. Однако при сканировании изображения вы можете произвольно выбрать, с каким разрешением это следует делать в данном конкретном случае. Установленное разрешение сканирования может быть меньше или равно аппаратному (оптическому) разрешению сканера, но может и превышать его. В последнем случае речь может идти только об интерполяционном разрешении. При установленном интерполяционном разрешении сканирования кроме собственно аппаратных средств привлекаются программные преобразования. Последние могут быть хорошими или плохими: все зависит от алгоритма преобразования и исходного изображения.
    От выбора разрешения сканирования зависит качество полученного изображения, занимаемый им объем памяти, а также скорость сканирования. Качество изображения это, прежде всего, его четкость, плавность цветовых переходов. Другими словами, хороший результат сканирования не должен выглядеть заметно хуже, чем оригинал.
    Чем меньше разрешение, тем меньше объем и временные затраты на сканирование и наоборот. Однако с качеством результата дело обстоит сложнее. Здесь напрашивается аналогия с выбором рыболовной сети. Какую сеть выбрать — с мелкими или крупными ячейками, зависит от размеров рыбы, которую вы хотите поймать. Сканер — это устройство, извлекающее информацию, содержащуюся в изображении. Нельзя получить информации больше, чем ее было в оригинале, но ее описание можно сделать избыточным. Избыточные описания графической информации обычно выражаются в чрезмерно больших объемах соответствующих файлов. В идеале нам нужно настроить сканер так, чтобы извлечь из оригинала как можно больше графической информации, или, по крайней мере, не меньше, чем нужно.
    Умение правильно выбирать разрешение сканирования приходит с опытом. Однако эксперименты можно упорядочить, чтобы опытность пришла побыстрее. Изображения для простоты можно разделить на два основных типа: фотографии и рисунки. Изображения типа фотографии (фотоснимки, живопись и т. п.) характеризуются большим количеством оттенков и плавностью их переходов, а рисунки (плакаты, чертежи, гравюры и т. п.) — относительно небольшим количеством оттенков, наличием контуров и повышенной контрастностью. Таким образом, в класс фотографий попадают не только фотоснимки, а к классу рисованной графики относятся не только изображения, созданные карандашом, кистью или пером. Иногда встречаются изображения, которые трудно с уверенностью отнести к тому или иному типу. В этом случае попробуйте и так, и эдак. Далее, возьмите несколько картинок каждого типа и отсканируйте их при различных разрешениях. Начните с минимального значения 72 ppi, увеличивая его с некоторым шагом до величины оптического разрешения сканера. В процессе эксперимента нужно зафиксировать две величины разрешения:
  • начиная с которой качество изображения становится приемлемым;
  • начиная с которой качество изображения практически не изменяется.
  • Усреднив полученные данные для каждого типа изображений, вы получите значение разрешения, которое следует устанавливать при первой попытке сканирования. При сканировании дело обстоит примерно так же, как и при использовании профессионального фотоаппарата, когда необходимо вручную установить выдержку, диафрагму и фокусное расстояние (резкость). Опытный фотограф быстро оценивает объект съемки и устанавливает нужные параметры своего аппарата. Однако профессионал сделает несколько снимков одного и того же объекта при немного различающихся настройках фотокамеры. Аналогично, при сканировании нередко приходится предпринимать несколько попыток.
    Устанавливая разрешение сканирования, следует также учитывать, будет ли изображение увеличено в размерах при показе его на экране монитора или при выводе на печать. С увеличением размеров (т. е. при растяжении) качество изображения, вообще говоря, может ухудшиться. На этот случай создают изображение с некоторым запасом разрешения. Так, если предполагается увеличивать картинку в два раза, то и разрешение должно быть в два раза больше, чем то, которое было достаточным для исходных размеров. Сдругой стороны, если предполагается выводить на монитор или печать уменьшенное изображение, то, возможно, разрешение следует соответственно уменьшить. Маленькие изображения должны иметь небольшое разрешение. Эта ситуация часто возникает в Web-дизайне, где одна и та же картинка часто представляется в двух вариантах: маленькая (thumbnail, миниатюра) — с низким разрешением, и большая — с высоким разрешением.
    Если ваш компьютер обладает достаточно большой памятью и затраты времени на сканирование для вас не критичны, то можно рекомендовать установку разрешения, равного аппаратному (оптическому) разрешению сканера. Затем, если потребуется, разрешение полученного изображения можно уменьшить средствами графического редактора. В Photoshop для этого используется команда Image>Image Size (Изображение>Размер изображения). Однако увеличение разрешения средствами графического редактора не повышает качество изображения. При уменьшении разрешения (downsample) из изображения удаляются пикселы и, таким образом, уменьшается количество графической информации. При увеличении разрешения графический редактор добавляет пикселы, используя для вычисления их значений некоторый алгоритм интерполяции (учета значений соседних пикселов).

    Сканеры и сканирование

    Бегущая строка

    Бегущая строка

    Internet Explorer поддерживает тэг , который позволяет создать так называемую бегущую строку, т. е. эффект прокручивания текста в заданном поле. Характеристики бегущей строки задаются следующими атрибутами:
  • WIDTH — ширина поля бегущей строки в пикселах или процентах от ширины окна;
  • HEIGHT — высота поля бегущей строки (в пикселах);
  • HSPACE, VSPACE — интервалы по горизонтали и вертикали между текстом строки и краями ее поля (в пикселах);
  • ALIGN —положение текста бегущей строки в ее поле; возможные аргументы:
  • ТОР (вверху);
  • BOTTOM (внизу);
  • MIDDLE (посередине);
  • DIRECTION — определяет направление движения; возможные аргументы:
  • LEFT (справа налево);
  • RIGHT (слева направо);
  • BEHAVIOR — характер движения строки; возможные аргументы:
  • SCROLL — текст появляется от одного края и скрывается за другим;
  • SLIDE — строка вытягивается из одного края поля и останавливается у другого края;
  • ALTERNATE — задаетпеременноенаправлениедвижения, отодного края к другому, а затем обратно;
  • LOOP — количество повторений текста в бегущей строке, задаваемое числом; если необходимо «бесконечное» количество повторений, то следует задать аргумент в виде ключевого слова INFINITY.
  • Атрибут LOOP не влияет на поведение бегущей строки, если для атрибута BEHAVIOR заданы аргументы ALTERNATE или SLIDE;
  • SCROLLAMOUNT — устанавливает длину (в пикселах) «прыжка» те кета за один такт; при большом значении этого параметра текст движется рывками, а при малом — замедленно;
  • SCROLLDELAY — определяет величину паузы между тактами перемещения текста в миллисекундах;
  • BGCOLOR — устанавливает цвет поля бегущей строки, задаваемый шестнадцатеричным числом или именем.
  • Соотношения между длиной текста, размером шрифта и скоростью перемещения, при которых бегущая строка выглядит хорошо, подбираются опытным путем.
    В следующем примере бегущая строка «бесконечно» прокручивается на желтом поле шириной 75% от ширины окна браузера.
    <НЕАD><ТIТLЕ>Бегущая строка

    Ниже расположена "бегущая строка"

    Это сообщение будет прокручиваться на экране справа налево







    Рисунок 655. Бегущая строка


    Бегущая строка




    C помощью тэга можно создать графическую кнопку например в виде пиктограммы стрелки

    Рисунок 679. C помощью тэга можно создать графическую кнопку, например, в виде пиктограммы стрелки

    C помощью тэга <INPUT> можно создать графическую кнопку например в виде пиктограммы стрелки Кнопку также можно создать с помощью тэга .
    Кроме рассмотренных выше, можно задать специальные кнопки для отправки данных серверному приложению (CGI), очистки полей ввода (и восстановления значений, принятых по умолчанию). В документ HTML можно включить несколько полей ввода данных, переключателей и флажков. Если они входят в один смысловой блок, то эти элементы следует заключить в тэг формы < FORM>. В этот же тэг можно включить и специальные кнопки.
    Если мы хотим отправлять данные серверному приложению, то тэг
    должен содержать атрибут, указывающий способ передачи, и атрибут, содержащий адрес серверного приложения. Например:

    Внутри этого тэга можно определить кнопку отправки. Например:

    Здесь аргументом атрибута VALUE является текст надписи на кнопке. Кнопка очистки задается так:

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



    Цвет

    Цвет

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

    Тэг, задающий желтый цвет фона, имеет вид:

    Можно задать и цвет текста. Этой цели служит атрибут TEXT тэга . Тэг, приведенный ниже, задает зеленый цвет фона и синий цвет текста:

    Как уже было сказано, цвет можно указывать по имени и шестнадцатеричным кодом. Ниже приводится таблица соответствий некоторых имен цветов и их шестнадцатеричных представлений:
    Цвет Имя цвета Шестнадцатеричное представление
    Черный BLACK #000000
    NAVY #000089
    SILVER #COCOCO
    Синий BLUE #OOOOF
    MAROON #800000
    Пурпурный PURPLE #800080
    Красный RED #FFOOOO
    FUCHSIA #FFOOF
    Зеленый GREEN #008000
    TEAL #008080
    LIME #OOFFOO
    AQUA #OOFFF
    OLIVE #808000
    Серый GRAY #808080
    Желтый YELLOW #FFFFOO
    Белый WHITE #FFFFFF


    Динамические фильтры

    Динамические фильтры

    Эффекты постепенного появления (исчезновения) графического изображения и преобразования одной картинки в другую можно получить с помощью совместного применения динамического фильтра и сценария (скрипта). Разумное использование таких эффектов украшает Web-страницу. Есть несколько способов преобразования. Эти способы заранее определены, поэтому от вас лишь требуется указать номер выбранного способа. Ниже приведена таблица с названиями и номерами превращений.
    Тип превращения Номер фильтра
    Стягивающийся прямоугольник 0
    Расширяющийся прямоугольник 1
    Стягивающийся круг 2
    Расширяющийся круг 3
    Стирание вверх 4
    Стирание вниз 5
    Стирание вправо 6
    Стирание влево 7
    Вертикальные жалюзи 8
    Горизонтальные жалюзи 9
    Сужающиеся клетки 10
    Закрывающаяся шахматная доска 11
    Случайный наплыв 12
    Вертикальное деление внутрь 13
    Вертикальное деление наружу 14
    Горизонтальное деление внутрь 15
    Горизонтальное деление наружу 16
    Стирание влево вниз 17
    Стирание влево вверх 18
    Стирание вправо вниз 19
    Стирание вправо вверх 20
    Случайные горизонтальные полосы 21
    Случайные вертикальные полосы 22
    Случайный выбор номера (из диапазона 0-22) 23
    В следующем примере картинка с изображением карты мира постепенно становится видимой через открывающиеся вертикальные жалюзи. Картинка из файла word.gif сначала невидима (свойство visibility:hidden таблицы стилей). В тэге
    применен динамический фильтр revealtrans, управляющий появлением изображений. Сценарий содержит одну функцию dyn_filter (), которая применяет фильтр (метод apply ()), делает картинку видимой (свойству visibility присваивается значение «visible»), устанавливает тип преобразования (Transition=8) и задает длительность преобразования 2 с (методу play () передается числовой параметр 2). Далее определено, что эффект постепенного появления картинки начнется сразу же после загрузки страницы. Это достигается привязкой функции dyn_filter () к событию ONLOAD в тэге<ВОDУ>.

    Динамический фильтр






    Динамическое преобразование картинки с помощью фильтра



    Динамическое преобразование картинки с помощью фильтра «Вертикальные жалюзи»

    Рисунок 671. Динамическое преобразование картинки с помощью фильтра «Вертикальные жалюзи»

    Динамическое преобразование картинки с помощью фильтра «Вертикальные жалюзи» Заметим, что Image1— это имя (идентификатор) элемента-контейнера, заданного тэгом
    ; контейнер содержит единственный элемент (картинку), но мы использовали его только затем, чтобы применить к нему метод applay (), который не поддерживается элементом, созданным тэгом ; filters — коллекция всех фильтров, фильтр (единственный) указан номером в коллекции: Imagel.filters (0).
    Если в приведенной выше программе изменить тип преобразования, например, на 3 (расширяющийся круг) путем замены в теле функции соответствующей записи Image 1. filters (0) .Transition=3, то получится такой эффект, как показано на следующем рисунке (картинка постепенно появляется в расширяющемся круге):

    Рисунок 672. Динамическое преобразование картинки с помощью фильтра «Расширяющийся круг»

    Динамическое преобразование картинки с помощью фильтра «Вертикальные жалюзи» При установке фильтра типа 12 возникает эффект постепенного повышения разрешения изображения путем случайного заполнения пикселами места, отведенного под картинку. Точки картинки постепенно выводятся на экран в случайном порядке.
    Тип преобразования 23 — случайный выбор и применение одного из имеющихся типов (от 0 до 22). Вы заранее не можете угадать, какой именно фильтр сработает, когда пользователь загрузит вашу страницу.
    Следующая программа аналогична рассмотренной выше, но в ней применяется другой фильтр (blendtrans), который создает эффект постепенного повышения яркости и насыщенности изображения. Этот фильтр имеет только один параметр — продолжительность преобразования (duration). Обратите внимание, что новая программа получилась из предыдущей путем замены двух строк.

    Динамический фильтр






    Динамическое преобразование картинки с помощью фильтра



    Попробуйте применить фильтр revealtrans, управляющий появлением картинки, при различных значениях (0-23) параметра transition, который задает тип преобразования. Для этого можно использовать в качестве основы один из рассмотренных выше текстов HTML-программы.
    При создании динамических сцен может потребоваться переориентировать картинку при изменении направления ее движения. Например, при изменении направления движения самолета на противоположное следует развернуть его изображение на 180°. Конечно, можно иметь две картинки с самолетом, на одной из которых самолет летит направо, а на другой — налево. Тогда вам потребуется только динамически изменять аргумент атрибута SRC в тэге . Другой способ состоит в том, чтобы две картинки поместить на одном и том же месте, но динамически управлять их видимостью так, что в любой момент видна лишь одна картинка. Наконец, можно просто применить соответствующий статический фильтр к одной картинке. Попробуйте самостоятельно разработать эти сценарии.


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

    Рисунок 649. Физические стили

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

    <НЕАD><ТIТLЕ>Физические и логические стили

    <Н2>Это — модифицированный заголовок 2-го уровня





    Флажки или переключатели В отличие

    Рисунок 677. Флажки или переключатели. В отличие от радиокнопок (селекторных переключателей) можно установить более одного флажка


    Флажки или переключатели В отличие




    Флажки

    Флажки

    лажки (checkbox) аналогичны переключателям за исключением внешнего вида и того, что в одном наборе можно установить/снять любое количество флажков. Задаются флажки так же, как переключатели, однако аргументом атрибута TYPE должен быть аргумент CHECKBOX:

    Флажки
    <Н2> Kакие экзамены Вы будете сдавать ?

    VALUE="Физика" CHECKED> Физика<ВR>
    VALUE="Английский язык"> Английский язык<ВR>
    VALUE="Математика"> Математика



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

    Фоновая графика

    Фоновая графика

    Чтобы украсить страницу, можно заполнить фон картинкой из графического файла. Фоновое изображение — это графический файл, содержащий картинку (желательно небольшого размера), которая многократно выводится на экран, заполняя все окно.
    Картинка может представлять собой небольшой прямоугольник или длинную узкую полоску (например, залитую градиентом).
    Фоновая графика задается в тэге в начале документа HTML, подобно тому, как задается цвет фона. При этом используется атрибут BACKGROUND, значением которого является имя графического файла. Например, если мы хотим для фона взять файл fon.gif. то соответствующий тэг будет выглядеть так:

    Для браузера Internet Explorer можно использовать дополнительный атрибут BGPROPERTIES=FIXED, запрещающий прокрутку фона в окне экрана. Например:

    Следует иметь в виду, что существуют неграфические браузеры, а в графических браузерах пользователи могут отключать загрузку графики, поэтому можно задать и текстовое описание графики, встроенной в документ, т. е. описать вид картинки или указать размер и формат графического файла. Последнее даже предпочтительнее, поскольку пользователь графического браузера сможет сам решить, стоит ли загружать тот или иной графический файл или лучше не тратить время на это. Подмена графики текстом осуществляется с помощью атрибута ALT в тэге . Например:
    [Логотип, GIF 18K]


    Форматирование текстов

    Форматирование текстов

    Страница обычно содержит тексты — простой и наиболее распространенный способ представления информации, хотя далеко не единственный. Вы можете создать текст, не уделяя особого внимания тому, как он будет выглядеть в окне браузера. Браузер отобразит неформатированный текст, используя настройки, выбранные пользователем. Однако самый непритязательный пользователь хотел бы, чтобы заголовки как-то отличались от основного текста размером и шрифтом, чтобы можно было выделить абзацы, пропустить строку и т. п. Все это называется форматированием текста. Сразу предупредим, что если вы переусердствуете в этом деле, то пользователь просто не сможет прочитать ваш текст, не говоря уже об эстетическом восприятии. Запомните, что тексты — это главная часть вашей страницы. Они должны правильно отображаться почти во всех браузерах.
    Если вы работаете в специальной программе, предназначенной для создания Web-страниц (например, FrontPage), то располагаете множеством вариантов, подобных форматированию в обычных текстовых процессорах. Поэкспериментируйте, наблюдая при этом, какие тэги создает FrontPage (см. вкладку HTML).
    При оформлении текстов используются специальные тэги. Рассмотрим некоторые из них. Тэг
    предписывает переход на новую строку. Тэг <Р> является тэгом конца абзаца. После него текст будет выводиться с новой строки и, кроме того, одна строка будет пропущена. Если не использовать эти тэги, то разбиение текста на строки будет определяться шириной окна браузера, так что вид текста может оказаться совсем не таким, каким вы его представляли. Если вы хотите, чтобы текст выравнивался по центру окна браузера, используйте тэг
    , который упоминался в предыдущей главе. Заметим, что тэги
    и <Р> действуют не только на тексты, но и на другие элементы страницы. Например, если вы хотите, чтобы рисунок размещался ниже текста, то поставьте между текстом и тэгом рисунка
    или <Р>.


    Графические ссылки

    Графические ссылки

    Структура графической ссылки имеет вид:
    <А НREF="адрес_ссылки">
    Например, следующий тэг описывает ссылку на HTML-файл докум2. htm, при этом ссылка на экране будет представлена картинкой из файла Iogotip.gif:
    <А НREF="докум2.htm"> К графической ссылке можно добавить поясняющий текст, как это сделано ниже:
    <А НREF="докум2.htm"> Щелкните здесь
    В рассмотренных выше графических ссылках одной картинке соответствовал один адрес ссылки. Однако имеется и другая возможность. Она заключается в том, чтобы одной картинке сопоставить несколько ссылок, привязав каждую из них к некоторой области графического изображения. Такие области называют горячими, а сам технологический прием — графической картой ссылок или сегментированной графикой. Горячие области графической карты могут иметь различную форму: прямоугольную, многоугольную или в виде окружности. Это очень удобный прием оформления группы ссылок, однако при выборе картинки, служащей основой карты ссылок, следует стремиться к тому, чтобы границы горячих областей были хорошо очерченными и не пересекались.Кроме того, необходимо позаботиться о том, чтобы пользователь понял, что имеет дело с картой ссылок, а не просто с графическим фоном. Для этого можно использовать поясняющие тексты. При наведении на горячую область курсор мыши изменяет свою форму, как и при использовании обычных ссылок. При щелчке на горячей области ее границы становятся видимыми.
    Графическая карта задается с помощью нескольких тэгов. Первым является тэг <МАР> (карта) с атрибутом NAME для указания имени карты. Имя карты выбирается как имя переменной. Далее, между тэгами <МАР> и следуют тэги (область) для задания горячих областей. Тэг имеет ряд атрибутов, описывающих собственно ссылку, а также форму и положение горячей области:
  • HREF — строка, определяющая адрес ссылки;
  • SHAPE — определяет форму области; принимает аргументы:
  • "RECT" (прямоугольник);
  • "POLYGONS" (многоугольник);
  • "CIRCLE" (круг);
  • COORDS — координаты области, которые задаются в виде перечня чисел, разделенных запятыми; весь перечень заключается в кавычки (для прямоугольника задаются четыре числа — координаты верхнеголевого и правого нижнего угла; для многоугольника задаются координаты каждого угла; для круга задаются три числа — координаты центра и радиус);
  • После закрывающего тэга следует указать тэг, вставляющий графическое изображение и реализующий привязку карты к нему, — это уже известный тэг , в котором помимо прочих возможных атрибутов используется атрибут связи с картой:
    USEMAP="#имя_карты"
    В качестве имени карты указывается аргумент атрибута NAME тэга <МАР>.
    В нашем примере в основе графической карты ссылок находится топографическая карта некоторой местности. На ней мы определили прямоугольную и круглую горячие области, соответствующие двум населенным пунктам. При щелчке на горячей области будет выведен документ северный.htm или южный.htm, содержащие, например, описание соответствующего населенного пункта.

    <НЕАD><ТITLЕ>Графическая карта
    <МАР NAME="mapO">





    Графические карты ссылок обычно используются для создания красочных меню, а также в тех случаях, когда внешний вид страницы формируется с помощью графического редактора (например, Adobe Photoshop), в котором можно создать картинку со всеми необходимыми надписями и художественными элементами, — это альтернатива использованию множества тэгов, вставляющих различные элементы. Основная трудность здесь состоит в определении координат горячих областей. Однако если известны ширина и высота всего изображения, то координаты горячих областей можно рассчитать, хотя бы приблизительно, а затем уточнить опытным путем при отладке. Работа существенно упрощается при использовании такого средства проектирования Web-страниц, как FrontPage.


    Графика на Webстраницах

    Графика на Web-страницах

    В большинстве Web-страниц встречается графика. Она позволяет красочно и наглядно представить информацию. Во многих случаях лучше показать картинку, чем давать длинное текстовое описание.
    Существуют два способа размещения графических изображений на странице:
  • вставка отдельных картинок;
  • заполнение фона картинкой.
  • В любом случае графическое изображение берется из файла.


    Рисунок 645. HTML-документ в окне браузера Internet Explorer

    <title>(.*)</title> Если потребуется что-то изменить в HTML-коде, то, не выходя из окна браузера, в меню Вид выберите команду Просмотр HTML-кода. В результате раскроется окно текстового редактора Блокнот с файлом вашей программы. Внесите нужные изменения и сохраните файл под тем же именем. После этого в окне браузера выполните команду Вид>Обновить. В результате загрузится измененный HTML-файл.
    Итак, мы создали простую страницу. В ней размещен только текст, причем неформатированный. Однако настоящие страницы устроены сложнее и выглядят более привлекательно. Более того, в настоящее время в Интернете есть удивительные по красоте дизайна страницы. И это очень важно, поскольку необходимо не просто опубликовать свою страницу, содержащую информацию, но еще и привлечь к ней внимание читателей.
    Многие пользователи привыкли работать с солидными текстовыми редакторами (текстовыми процессорами), например MS Word. Конечно, для написания текстов HTML-программ можно использовать любимый редактор. Однако при этом могут возникнуть проблемы. Например, Word распознает (не только по расширению файла, но и по содержанию), что файл содержит HTML-программу и показывает не ее текст (код), а результат работы программы, т. е. то, как будет выглядеть этот HTML-документ в окне браузера. Поэтому если вы работаете с Word, сохраните текст HTML-программы как текстовый файл в формате ТХТ, а затем переименуйте его в файл с расширением htm или html. Всего этого можно избежать, если сразу использовать простой текстовый редактор Блокнот (Notepad). Он поставляется вместе с операционной системой MS Windows. Используя Блокнот, а не Word, вы будете уверены, что все несуразности отображения HTML-документа в браузере определяются вашей HTML-программой, а не «интеллектом» текстового процессора. Когда вы изучите основы языка HTML, Word и другие средства автоматизации создания HTML-документов (например, FrontPage) действительно облегчат вам программирование.
    Вместо простого текстового редактора вы можете использовать специальные редакторы Web-страниц, например, Microsoft FrontPage или Macromedia Dream Weaver. При выборе средств решается следующая дилемма. Любителям, занимающимся Web-дизайном не систематически, нужен, главным образом, конечный результат. Профессионалы же любят все держать под своим контролем, им важен не только эффект, но и способ, которым он получен. Хотя данная книга написана в первую очередь для любителей, все же постараемся следовать принципам профессионалов.
    В случае использования такого средства автоматизации разработки Web-страниц, как FrontPage, всю описанную выше работу можно выполнить следующим образом. Запустите FrontPage. Перейдите на вкладку Normal. В рабочую область, расположенную в центре окна, введите с клавиатуры текст. У вас должно получиться примерно то, что показано на рисунке.

    Рисунок 644. HTML-код в окне текстового редактора Блокнот (Notepad)

    <title>(.*)</title> Сохраним нашу программу в файле с расширением htm или html. Например, назначим имя файла npoбa.htm. Чтобы получилось назначить расширение файла, какое надо, выберите в диалоговом окне тип файла Все файлы (*.*) и введите в поле Имя файла придуманное вами имя файла с нужным расширением. Теперь надо раскрыть этот файл в браузере. Для этого в Проводнике Windows найдите файл npo6a.htm и сделайте двойной щелчок левой кнопкой мыши на его имени или на его значке. В Windows все файлы с расширением htm и html открываются в окне браузера Internet Explorer, если, конечно, вы не установили какой-нибудь другой браузер.

    Иерархическая схема объектного представления HTMLдокумента

    Рисунок 682. Иерархическая схема объектного представления HTML-документа

    Иерархическая схема объектного представления HTMLдокумента Первый объект в этой структуре — document. Первый элемент HTML-документа — картинка с именем image 1. Она представляется в виде объекта images (0) (напомним, что нумерация элементов коллекции начинается с нуля, поэтому первый элемент коллекции имеет индекс 0). В примере первой картинкой является графическое изображение из файла рис 1.gif. Чтобы получить доступ к этому элементу страницы, требуется записать:
    document.images (0)
    Если нужна кнопка, то пишем:
    document.forms(0).elements(2)
    Для доступа к первому полю ввода используется запись:
    document.forms(0).elements(0)
    Если мы хотим узнать, какой текст ввел пользователь в это поле, то должны выяснить, какое свойство или метод позволяет получить доступ к этой информации. Обращаемся к справочнику и находим, что свойство value имеет в качестве значения текст, содержащийся в поле ввода, — как раз то, что нам нужно. Тогда для получения информации следует записать:
    document.forms(0).elements(0).value
    HTML-документе были предусмотрительно определены имена элементов с помощью атрибута NAME. Хотя задание имен не является обязательным, указывать имена все же очень полезно, поскольку появляется возможность обращаться к элементам по именам. Например, вместо записи
    document.forms(0).elements(0).value
    можно было бы записать
    document.myForm.xName.value
    Это удобно, особенно когда на странице расположено много элементов, и трудно отслеживать, какой индекс имеет тот или иной элемент. Еще раз обратите внимание на то, что регистр букв в имени элемента имеет важное значение. Так, myForm и myform — не одно и то же.
    Таким образом, для получения доступа к информации об элементах страницы необходимо, во-первых, знать положение соответствующего объекта в иерархии объектов. Во-вторых, нужно знать, как называются собственно объекты, их свойства и методы. Термин «получение доступа», скорее всего, вам знаком.
    Теперь рассмотрим основные объекты, их свойства и методы.


    Использование различных шрифтов

    Рисунок 651. Использование различных шрифтов

    Использование различных шрифтов Заметим, что в тэге можно использовать несколько или все его возможные атрибуты. Например:

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

    <НЕАD><Т1ТLЕ>Индексы /НЕАD>

    <НЗ>Пример использования индексов
    <Р> (5+x2)x+3
    a1 + a2+ a3
    <Р>Подстрочные примечания 2



    Использование различных шрифтов
    Рисунок 832. Использование верхних и нижних индексов
    Кроме рассмотренных выше, имеются дополнительные тэги форматирования текстов:
  • — выделение адресов электронной почты, почтовых адресов и
    номеров телефонов;
  • <СIТЕ> — выделение цитат;
  • , — запись текстов программ, символьных констант;
  • — ввод текстов с клавиатуры.
  • В последних трех стилях используется моноширинный шрифт (обычно Courier). Например, буквы I и Ж моноширинного шрифта занимают одинаковое место. Использование моноширинных шрифтов обусловлено простой возможностью выравнивания текста с помощью символов «пробел».
    Отметим еще один момент. В тэги управления шрифтом, как и в тэги логических стилей, можно вставлять атрибут ТITLE= "строка", что позволяет привязать к тексту внутри этого тэга всплывающую подсказку. Аргументом атрибута TITLE является строка подсказки. При остановке указателя мыши на выделенном слове или фразе около указателя появится подсказка. С помощью этого приема можно расшифровывать аббревиатуры, давать дополнительные пояснения и рекомендации пользователю.
    ">

    Использование свойства iindex

    Рисунок 666. Использование свойства i-index позволяет изменить естественный порядок следования элементов в тексте HTML-документа

    Использование свойства iindex При позиционировании элементов может оказаться, что размеры элемента превосходят размеры фрагмента (отводимой области, заданной в нашем примере тэгом
    ). Например, текст или картинка не помещаются полностью в прямоугольник, выделенный для них. На этот случай имеется свойство overwlow (переполнение). Свойство overflow может иметь три значения:
  • nоnе (ничего) — если элемент и выйдет за пределы фрагмента (отведенного для него места), он все равно будет показан;
  • clip — выступающие за границы фрагмента части элемента будут обрезаны;
  • scroll — будет использована прокрутка.
  • В следующем примере используется свойство overflow для создания механизма прокрутки первого текста.

    <НЕАD><ТIТLЕ>Позиционирование




    riepBbiM позиционированный текст

    Второй позиционированный текст



    Изменение стиля шрифта части заголовка

    Рисунок 650. Изменение стиля шрифта части заголовка

    Изменение стиля шрифта части заголовка С помощью специального тэга можно настроить шрифт для изображения текста: задать гарнитуру, размер и цвет. Прежде всего, вы можете установить размер основного шрифта, который используется в документе по умолчанию. Тэг основного шрифта имеет формат . Размер основного шрифта можно установить от 1 до 7. Если не использовать этот тэг, то размер основного шрифта по умолчанию устанавливается равным 3.
    Тэг устанавливает размер текущего шрифта для отдельных фрагментов текста. На стили этот тэг не влияет. Диапазон возможных значений — от 1 до 7. Данный тэг позволяет также управлять размером текущего шрифта относительно основного. Для этого используются символ + (чтобы увеличить) и символ - (чтобы уменьшить) размер шрифта на заданную величину. Например, если размер основного шрифта установлен равным 3, то тэг устанавливает размер текущего шрифта равным 5.
    Для задания гарнитуры шрифта используется тэг . Например:



    Если этот тэг не используется в вашем документе, то браузер будет применять шрифт, установленный в его настройке. Поэтому текст на экране пользователя может выглядеть совсем не так, как вы его представляли. Следует также иметь в виду, что если назначенный вами шрифт не установлен на компьютере пользователя, то браузер будет изображать текст шрифтом, установленным по умолчанию.
    Вы можете в тэге указать через запятую перечень шрифтов. В этом случае браузер будет использовать первый найденный шрифт. Например, можно записать тэг:
    FACE="Arial, Sans Serif, Courier">
    Обычно в перечне задают похожие шрифты. Рекомендуется назначать наиболее популярные шрифты. При размещении на странице текстовой информации лучше вообще не назначать название шрифта, полагаясь на стандартные настройки браузера. Но тогда при разработке страницы следует также использовать стандартные настройки браузера, чтобы синхронизировать свое восприятие текста с возможным восприятием пользователя. В конце концов, вы создаете страницу не для себя, а для читателей.
    С помощью атрибута COLOR в тэге можно задать цвет шрифта:



    Аргумент атрибута COLOR представляет собой шестнадцатеричную запись кода цвета (красной, зеленой и синей составляющей, иначе говоря, RGB-составляющей). Следующая программа демонстрирует управление шрифтом:

    <НЕАD><ТIТLЕ>Установка шрифтов

    <Р>Шрифт Aria АБВГДЕЖЗИК
    <Р>Шрифт CourierАБВГДЕЖЗИК
    <Р>Шрифт SYMBOLАБВГДЕЖЗИК




    Эквиваленты некоторых часто употребляемых зарезервированных символов

    Рисунок 656. Эквиваленты некоторых часто употребляемых зарезервированных символов

    Эквиваленты некоторых часто употребляемых зарезервированных символов Тэг применен только для того, чтобы использовать моноширинный шрифт. Многократное использование пробела ( ) связано с тем, что браузер сокращает количество «лишних» пробелов, введенных с клавиатуры, а они были нужны для задания достаточно большого расстояния между столбцами таблицы.


    Элементы языков HTML и JAVASCRIPT

    Элементы языков HTML и JAVASCRIPT

    При создании Web-сайта в числе прочих решаются две основные задачи, связанные с графикой:
  • графическое оформление или, иначе говоря, создание стильного, привлекательного внешнего вида страниц сайта;
  • размещение на страницах графической информации, которая может и не быть обусловлена целями оформления.
  • Обе задачи сводятся в конечном счете к размещению картинок из графических файлов в HTML-документе. Этот документ пишется на специальном языке HTML (HyperText Markup Language, Язык разметки гипертекста). При этом неважно, какими средствами вы пользовались для его создания (обычный текстовый редактор, Microsoft FrontPage, Macromedia Dream Weaver и т. п.). HTML-документ хранится в обычном текстовом файле. Расширение htm или html этого файла указывает лишь на то, что в нем содержатся тэги (инструкции, команды) HTML-кода. Щелчок кнопкой мыши на имени этого файла в Проводнике Windows открывает его в Web-браузере, установленном на вашем компьютере (например, в Internet Explorer). Браузер загружает HTML-документ вместе с другими файлами, необходимыми для формирования и функционирования Web-страницы. Это могут быть обычные текстовые файлы, а также файлы с мультимедийным содержанием (графика, звук, видео). Затем браузер интерпретирует команды HTML-документа. В результате в окне браузера постепенно появляется Web-страница. Если вы разработали свой сайт целиком с помощью Macromedia Flash, то все равно вам не обойтись без хотя бы элементарного HTML-документа, который просто загружает Flash-мультфильм, хранящийся в соответствующем SWF-файле.
    Здесь мы не будем подробно рассматривать ни HTML, ни вопросы дизайна Web-страниц. На эту весьма обширную тему написано достаточно много книг. В этой главе мы остановимся лишь на некоторых основных моментах HTML, наиболее тесно связанных с графикой и мультимедиа. Мы думаем, что дизайнер графики для Web должен понимать, что происходите его творением, когда оно встраивается в HTML-документ. Часто бывает, что эффективнее непосредственно подправить HTML-код, чем мучиться со средствами визуальной разработки в специализированных редакторах. Кроме того, следует учитывать, что и в HTML имеются средства управления графикой. Например, к картинкам можно применять встроенные фильтры, перемещать их в окне браузера программными средствами, создавая эффекты анимации.
    В данной главе мы рассмотрим общую структуру HTML-документа и вставку в него графических и текстовых элементов. В частности, мы рассмотрим вставку SWF-файлов, созданных в Flash или других приложениях.


    Как писать скрипты

    Как писать скрипты

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

    Для определенности в тэг
    ....
    Обратите внимание на связь между значением атрибута ID в тэге <Н2> элемента страницы и именем функции, определенной внутри тэга сценария
    Подробно связи событий с функциями, определенными в сценарии, а также привязка этих связей к элементам страницы рассмотрены ниже на конкретных примерах. А сейчас дадим общие рекомендации по созданию обработчиков событий.
    Обработчики событий
    Обработчики событий следует оформлять в виде функций или процедур. В JScript используются только функции, а в VBScript — в основном, процедуры. Функция от процедуры отличается только тем, что возвращает некоторое значение. Следует различать описание (определение) функции и ее вызов.
    Описание функции в JScript имеет вид:
    function имя_функции (список_параметров)
    {
    ... // код (тело) функции
    };
    Ключевое слово function сообщает интерпретатору (браузеру), что далее идет описание функции. Список параметров, если он есть, представляет собой последовательность идентификаторов, разделенных запятыми. Идентификаторы — просто символьные обозначения параметров, начинающиеся с буквы или символа подчеркивания. Код (тело) функции выделяется фигурными скобками. Выражения в коде, если их несколько, разделяются точкой с запятой. Комментарии начинаются двойным слэшем //. Если требуется явно указать, что именно должна возвратить функция в качестве результата, используется команда
    return возвращаемый_результат
    Если команда return не указана, то возвращается значение последнего вычисленного выражения. Следующий пример дает описание функции для вычисления площади прямоугольника:
    function S_rectangle (a,b)
    {
    S=a*b;
    return S
    };
    Для вычисления значения функции используется вызов:
    имя_функции (список_значений_параметров)
    Например, для вычисления площади прямоугольника со сторонами 5 и 20 следует записать выражение:
    S = S_rectangle(5,20)
    Здесь значение, возвращаемое функцией S_rectangle, присваивается переменной S. В вызове функций вместо конкретных значений можно подставлять переменные, функции и выражения. Вот пример:
    х = 5;
    S = S_rectangle(x,4+16)
    Поскольку функция возвращает значение, ее вызов может участвовать в выражениях. Например, для вычисления площади прямоугольного треугольника с катетами а и b можно записать следующий код:
    а = 5;
    b = 20;
    S_tr = 0.5*S_rectangle(a,b)
    Впрочем, мы могли бы определить специальную функцию, вычисляющую площадь прямоугольного треугольника по его катетам:
    function S_tr(a,b)
    {
    return 0.5*S rectangle(a,b)
    Переменные
    При разработке программ, как правило, используются переменные, служащие для хранения исходных данных, а также промежуточных и конечных результатов вычислений. Переменная создается в том месте программы, где впервые появилось выражение, в котором ей было присвоено значение. Если переменная создана в теле функции, то она будет доступна только внутри этой функции. Рассмотрим пример:

    Здесь все переменные доступны внутри функции S_rectangle () , но переменная S недоступна вне ее. Чтобы сделать переменную S доступной в любом месте скрипта, нужно просто создать ее вне функции. Например, можно записать выражение S = 0; в том месте скрипта, где определены переменные а и Ь.


    Кнопки

    Кнопки

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


    Коллекции объекта document

    Коллекции объекта document

  • аll — коллекция всех тэгов и элементов в основной части документа;
  • anchors — коллекция всех «якорей» (закладок) в документе;
  • applets — коллекция всех объектов в документе, включая встроенные элементы управления, графические элементы, апплеты, внедренные и другие объекты;
  • embeds — коллекция всех внедренных объектов в документе;
  • forms — коллекция всех форм на странице;
  • frames — коллекция всех фреймов, определенных в тэге ;
  • images — коллекция всех графических элементов (картинок) на странице;
  • links — коллекция всех ссылок и блоков на странице;
  • plugins — еще одно название для коллекции внедренных объектов документа;
  • scripts — коллекция всех разделов . В скриптах обычно описывают обработку различных событий, например, щелчок мыши на кнопке или картинке.
    Итак, прежде чем двигаться дальше, вы должны четко уяснить следующее:
  • программа на языке HTML хранится в текстовом файле с расширением НТМ или HTML;
  • HTML-программа состоит из тэгов. Тэги могут вкладываться друг в друга, иметь атрибуты, которые, в свою очередь, могут принимать значения (аргументы). Тэги могут быть контейнерными, т. е. парными, и одиночными;
  • одним тэгам в HTML-программе соответствуют видимые элементы HTML-документа (заголовки, фрагменты текста, рисунки и т. п.), выводимые на экран в окне браузера; другие тэги выполняют специальные функции, не связанные с выводом на экран;
  • все, что заключено между символами < ! и >, является комментарием и не
    отображается в окне браузера;
  • информация, описанная в тэгах <МЕТА>, не отображается браузером, но имеет большое значение. Эти тэги можно вставить в HTML-программу на завершающем этапе разработки Web-страницы, непосредственно перед ее публикацией;
  • в HTML-программу можно вставлять фрагменты, написанные на языках JavaScript и Visual Basic Script. Эти фрагменты обрамляются тэгами .


  • Набор переключателей оформленный

    Рисунок 675. Набор переключателей, оформленный в виде списка. В наборе можно установить только один переключатель.

    Элементы списка (в рассматриваемом примере — переключатели) располагаются по умолчанию в столбце, т. е. вертикально. А как расположить их горизонтально, т. е. в одну строку? Горизонтальное расположение элементов списка довольно часто встречается на страницах, поскольку это позволяет экономить место. Один из возможных и часто используемых способов заключается в применении тэга таблицы как метода позиционирования. Ниже приводится вариант соответствующей программы и результат ее работы:

    Набор переключателей оформленный
    <НЕАD>Переключатели</Т1ТLЕ></НЕАD><br> Какой язык Вы используете ?<br> <br> <TABLE><br> <TR> <br> <TD><br> <INPUT TYPE="RADIO" NAME="LANG" VALUE="Русский" СНЕСКЕО><br> Русский <br> </TD> <br> <TD><br> <INPUT TYPE="RADIO" NAME="LANG" VALUE="Английский"><br> Английский <br> </TD> <br> <TD><br> <INPUT TYPE="RADIO" NAME="LANG" VALUE="Немецкий" ><br> Немецкий <br> </TD><br> </TR> <br> </TABLE> <br> <br> </HTML><br><br> <h1>Объект document</h1>Объект document<br><br> Объект document является центральным в иерархической объектной модели и представляет всю информацию о документе HTML с помощью коллекций и свойств. Он также предоставляет множество методов и событий для работы с документами. Поскольку мы уже рассматривали некоторые основные приемы обращения с этим объектом, то здесь ограничимся лишь справочными сведениями.<br> Таблица. Свойства объекта document<br> <table border=1> <tr> <td>Свойство </td> <td>Атрибут </td> <td>Назначение</td> </tr> <tr> <td>activeElement </td> <td></td> <td>Идентифицирует активный элемент</td> </tr> <tr> <td>alinkColor </td> <td>ALINK </td> <td>Задает цвет активных ссылок на странице</td> </tr> <tr> <td> bgColor</td> <td>BGCOLOR </td> <td> Определяет цвет фона элемента</td> </tr> <tr> <td>body </td> <td> </td> <td>Ссылка только для чтения на неявный основной объект документа, определенный в тэге <BODY></td> </tr> <tr> <td>cookie </td> <td> </td> <td>Строка пароля для элементов cookie браузера</td> </tr> <tr> <td>domain </td> <td> </td> <td>Устанавливает или возвращает домен документа для его защиты или идентификации</td> </tr> <tr> <td>fgColor</td> <td> TEXT </td> <td>Устанавливает цвет текста переднего плана</td> </tr> <tr> <td>lastModified </td> <td> </td> <td>Дата последнего изменения страницы, доступна как строка</td> </tr> <tr> <td>linkColor </td> <td>LINK </td> <td>Цвет еще не посещенных гиперссылок на странице</td> </tr> <tr> <td>location</td> <td> </td> <td> Полный URL-адрес документа</td> </tr> <tr> <td>parentWindow </td> <td> </td> <td>Возвращает родительское окно для документа</td> </tr> <tr> <td>readyState </td> <td> </td> <td>Определяет текущее состояние загружаемого объекта</td> </tr> <tr> <td> referer</td> <td> </td> <td> URL-адрес страницы, которая вызвала текущую</td> </tr> <tr> <td>selection</td> <td> </td> <td> Ссылка «только для чтения» на дочерний для document объект selection</td> </tr> <tr> <td>itle </td> <td>TITLE </td> <td>Определяет справочную информацию для элемента, используемую при загрузке или во всплывающей подсказке</td> </tr> <tr> <td>url </td> <td>URL</td> <td>URL-адрес документа клиента или в тэге <МЕТА></td> </tr> <tr> <td>vlinkColor </td> <td>VLINK </td> <td>Цвет посещенных ссылок на странице</td> </tr> </table> <br><br> <h1>Объект event</h1>Объект event<br><br> Объект event позволяет получить информацию о каком-либо событии, происходящем в браузере.<br><br> <h1>Объект history</h1>Объект history<br><br> Объект history содержит информацию об адресах, которые браузер посетил во время текущего сеанса. Мы можем передвигаться по этому списку с помощью сценария, загружая страницы, которые он содержит. Объект history имеет только одно свойство и три метода.<br> <br> Свойство объекта history<br> <br> length — количество элементов в списке History браузера. <br> Методы объекта history <br> <li>back — загружает предыдущую страницу из списка; </li> <li> forward — загружает следующую страницу из списка; </li> <li>go (n) — загружает страницу с номером n из списка.</li> В следующем примере сначала загружается первая страница, а затем пятая страница, причем предварительно проверяется, существует ли она.<br> window.history.до(1) ;<br> if (window.history.length>4 )<br> {window.history.go(5) };<br> <table border=1> <tr> <td> </td> </tr> </table> <br><br> <h1>Объект location</h1>Объект location<br><br> Объект location содержит информацию об URL-адресе текущей страницы, а также методы, позволяющие обновлять страницы.<br><br> <h1>Объект navigator</h1>Объект navigator<br><br> Объект navigator содержит информацию о производителе браузера, его версии и возможностях.<br><br> <h1>Объект screen</h1>Объект screen<br><br> Объект screen содержит информацию о возможностях экрана пользователя и может применяться, например, при определении размеров создаваемых окон, а также разрешения, с которым нужно передавать графику (нет смысла загружать 32-битное изображение, если монитор и видеокарта пользователя поддерживают только 256 цветов).<br><br> <h1>Объект TextRange</h1>Объект TextRange<br><br> Объект TextRang (текстовая область) отображает разделы потока текста, формирующего документ HTML. Может быть использован для управления текстом внутри страницы.<br><br> <h1>Объект window</h1>Объект window<br><br> Объект window имеет свойства, методы, события, а также дочерние объекты. Приведем их полные перечни и рассмотрим, с разной степенью подробности, только наиболее важные с практической точки зрения.<br> Свойства объекта window<br> <li> parent — возвращает родительское для текущего окно;</li> <li> self — возвращает ссылку на текущее окно; </li> <li> top — возвращает ссылку на главное окно; </li> <li> name — название окна;</li> <li> opener — ссылка на исходное окно, в котором было создано данное окно; О dosed — сообщает, если окно закрыто; </li> <li> status — текст, показываемый в строке состояния браузера;</li> <li> def aultstatus — текст строки состояния браузера по умолчанию;</li> <li> returnValue — позволяет определить возвращенную переменную для события или диалогового окна;</li> <li> client — ссылка, которая возвращает объект навигатора браузеру; </li> <li> document — ссылка «только для чтения» на объект окна document; </li> <li> event — ссылка «только для чтения» на глобальный объект event;</li> <li> history — ссылка «только для чтения» на объект окна history;</li> <li> location — ссылка «только для чтения» на объект окна location; </li> <li> navigator — ссылка «только для чтения» на объект окна navigator; </li> <li> screen — ссылка «только для чтения» на глобальный объект screen.</li> «Только для чтения» означает, что данное свойство изменять нельзя.<br> Свойство parent позволяет обратиться к объекту, находящемуся в иерархии на одну ступень выше, например к окну, содержащему коллекцию фреймов, в которой находится наш фрейм. Для перемещения на две ступени вверх нужно писать parent.parent и т. д.:<br> <br> parent.window.frames(0)<br> parent.parent.window.frames(0)<br> Чтобы обратиться к самому главному окну, т. е. к окну браузера, следует использовать свойство top. Однако top не может обращаться к главному фрейму вашей системы разбиения на фреймы.<br> Свойство name соответствует имени фрейма, которое мы задаем и тэге <FRAMESET>.<br> Свойство status полезно использовать для вывода сообщений во время работы сценария, например, при отладке:<br> <br> window.status="Ceйчac работает сценарий"<br> <br> Методы объекта window<br> <li> open — открывает новое окно браузера;</li> <li> dose — закрывает текущее окно браузера;</li> <li> showHelp — показывает окно подсказки как диалоговое;</li> <li> showModalDialog — показывает новое окно как диалоговое;</li> <li> alert — показывает окно предупреждения с сообщением и кнопкой ОК;</li> <li> prompt — показывает окно приглашения с сообщением и текстовым полем;</li> <li> confirm — показывает окно подтверждения с сообщением и кнопками ОК и Cancel (Отмена);</li> <li> navigate — загружает другую страницу с указанным адресом; </li> <li> blur — убирает фокус с текущей страницы; соответствующее событие — onblur; </li> <li> focus — устанавливает страницу в фокус; соответствующее событие - onf ocus;</li> <li> scroll — разворачивает окно на заданные ширину и высоту; </li> <li> setinterval — указывает процедуре выполняться периодически через заданное количество миллисекунд; </li> <li> setTimeout — запускает программу через заданное количество миллисекунд<br> после загрузки страницы;</li> <li> clear Interval — обнуляет таймер, заданный методом setinterval; </li> <li> clearTimeout — обнуляет таймер, заданный методом setTimeout; </li> <li> execScript — выполняет код сценария; по умолчанию JScript.</li> Методы объекта window предоставляют возможности управления окнами и выполнения в них различных задач. Например, чтобы создать новое окно браузера, можно использовать метод open, а чтобы его закрыть — close. Следующий фрагмент программы создает новое окно браузера и показывает в нем документ new.htm (в общем случае можно указать URL-адрес документа): <br> window. open ("new .htm")<br> <br> Ниже приводится текст HTML-программы, которая просит пользователя ввести адрес страницы и, если введен непустой адрес, пытается загрузить ее в браузер.<br> <SCRIPT><br> window . alert ( "Вы хотите перейти к другой странице!");<br> , Adress=window .prompt ("Введите адрес страницы",""); if (Adress!= null)<br> { <br> window . status = "HoBHft адрес: "i-Adress; <br> window. navigate (Adress) ;<br> } <br> </SCRIPT><br> Метод scroll позволяет развернуть страницу в заданных пределах. Например, чтобы задать ширину в 300 и высоту в 200 пикселов, надо написать: <br> window.scroll(300,200)<br> В ряде случаев может понадобиться, чтобы какая-то процедура была выполнена с некоторой временной задержкой. С этой целью можно применить метод setTimeout (), создающий таймер. Например, следующая строка программы создает таймер, который будет работать 10 с (10 000 мс) и затем запустит некоторую функцию Myfunc (): <br> <br> TimeID=window.setTimeout("Myfunc()",10000)<br> <br> Если потребуется перезапустить таймер, чтобы повторить процесс, то можно применить метод setlnterval. Он работает так же, как и setTimeout, но с той разницей, что вызывается периодически через заданное количество миллисекунд. Например, функция Myfunc() будет периодически вызываться через каждые 5 с:<br> TimeID=window.setlnterval("Myfunс()",5000)<br> <br> Метод setlnterval уже был использован в примере создания движущейся картинки.<br> <br> События объекта window <br> <li> onblur — выход окна из фокуса; </li> <li> onfocus — окно становится активным; </li> <li> onhelp — нажатие пользователем клавиш <F1>; </li> <li> onresize — изменение пользователем размеров окна; </li> <li> onscroli — прокрутка окна пользователем; </li> <li> onerror — ошибка при передаче; </li> <li> onbeforeunload — перед выгрузкой страницы, что позволяет сохранить данные;</li> <li> onload — страница полностью загружена; </li> <li> onunioad — непосредственно перед выгрузкой страницы.</li> Среди перечисленных выше событий три происходят в результате действий пользователя. Если открыто несколько окон браузера, пользователь может переключаться между ними, переводя фокус с одного окна на другое. Эти действия инициируют события onblur и onfocus. Заметим, что эти же события можно вызвать программным способом, используя методы blur и focus. Если происходит ошибка при загрузке страницы или ее элемента, то инициируется событие onerror. Мы можем использовать это событие в программе, чтобы, например, попытаться еще раз загрузить страницу или как-то изменить дальнейшие действия. Вот пример:<br> <SCRIPT><br> function window.onerror ()<br> {<br> alert("Произошла ошибка! Попробуйте еще раз")<br> }<br> </SCRIPT><br> Событие onload происходит, когда в окно загружается страница; событие onbeforunload — перед тем как страница покинетокно; событие onunloaci — когда страница выгружена или перед загрузкой новой страницы, или перед закрытием браузера. Например:<br> <SCRIPT><br> function window.onunload ()<br> {<br> alert("Страница выгружается!")<br> } <br> </SCRIPT<br> Объект window имеет несколько дочерних объектов, которые доступны с его помощью: document, history, navigator, location, event и screen.<br> <table border=1> <tr> <td> </td> </tr> </table> <br><br> <h1>Объектная модель Самым главным</h1>Рисунок 680. Объектная модель Самым главным является объект window (окно), который находится вверху иерархии. Но в то же время основное в модели — объект document, т. к. большая часть страницы состоит из его частей. По существу, объект window — просто контейнер (объект, содержащий другой объект) для объекта document. Кроме объектов, в модель входят коллекции — структуры, аналогичные массивам. В таком массиве каждый элемент принадлежит структуре и связан с соседними элементами. Иначе говоря, коллекция — это способ держать объекты вместе для упрощения доступа к ним с помощью программного кода. Считайте, что коллекция — просто промежуточный (технологический) уровень в иерархии.<br><br><img src="image/obektnaja-model-samym-glavnym-javljaetsja-obekt_1.gif" alt="Объектная модель Самым главным"><br> Например, объект document может содержать коллекцию images картинок (объектов frame). Мы можем обратиться к картинке либо по ее имени, либо по порядковому номеру:<br> document . images ( "my_labelture" )<br> window .images (0)<br> В коллекциях объектной модели первый элемент имеет нулевой индекс (порядковый номер). Расположение (индекс) элемента в коллекции зависит от его места в исходном тексте HTML-документа.<br> Рассмотрим пример простого HTML-документа:<br> <HTML><br> <НЕАD> <TITLE>Пример</ТITLE> </НЕАD> <br> <BODY><br> <CENTER><br> < ! Рисунок 1 ><br> <IMG ЗНС="рис1 .gif " NAME="imagel "><br> </CENTER><br> <! Форма, содержащая три элемента > <FORM NAME="myForm"><br> Имя: <INPUT TYPE="TEXT" NAME="xName" VALUE=""XBR><br> E-mail: <INPUT TYPE="TEXT" NAME="email" VALUE=" "><BR><BR> <br> <INPUT TYPE="BUTTON" NAME="raybutton" VALUE="Нажми меня"><br> </FORM><br> <! Рисунок 2 ><br> <IMG SRC="pnc2 .gif" NAME="image2 " WIDTH=200><br> < ! Ссылка ><br> <A HREF="www.admiral.ru/~dunaev">Mofl<br> домашняя страница</А> <br> </BODY> <br> </HTML><br> На рисунке, изображающем описанную выше страницу в окне браузера, сделаны поясняющие надписи, чтобы было понятно, какие элементы страницы какими объектами представляются.<br><br> <h1>Объектная модель</h1>Объектная модель<br><br> Теперь рассмотрим объектную модель подробнее. Сразу предупредим, что это рассмотрение не исчерпывающее. Какуже отмечалось, каждый элемент страницы (HTML-документа) предстает в виде объекта со своими свойствами и методами. Объекты, соответствующие элементам страницы, упорядочиваются в некоторую иерархическую структуру так, что одни из объектов являются подобъектами других объектов.<br><br> <h1>Основные понятия</h1>Основные понятия<br><br> Описание Web-страницы содержится в HTML-программе (HTML-коде), который хранится в обычном текстовом файле с расширением htm или html. Иногда эти программы называют HTML-документами, но обычно HTML-документом считается то, что можно видеть в окне браузера. Программы на языке HTML содержат инструкции (коды), называемые тэгами. Тэги представляют собой последовательности символов, заключенные в угловые скобки (например, <Р>).<br> Большинство современных браузеров допускают запись тэгов в любом регистре, т. е. как прописными, так и строчными буквами. Все ключевые слова тэгов, являющиеся обычно аббревиатурами слов английского языка, записываются буквами латинского алфавита. Например, IMG — сокращение слова image (изображение).<br> HTML-программа должна начинаться тэгом <HTML> и заканчиваться тэгом </HTML>. Между ними находятся другие тэги программы или текст, который вы хотите вывести в окне браузера. Некоторые тэги используются только парами (например, <HTML> и </HTML>). При этом первый из них называется открывающим, а второй — закрывающим. Иногда парные тэги называют контейнерными потому что между ними можно разместить другие тэги. Таким образом, в контейнерные тэги можно вкладывать другие тэги, в том числе и контейнерные, т. е. тэги могут быть вложенными. Сейчас просто запомним этот факт, а в дальнейшем разберемся, как ими пользоваться. Есть одиночные тэги. Для таких тэгов нет соответствующих закрывающих тэгов. Примером одиночного тэга является тэг <Р> (конец абзаца).<br> Тэги могут содержать параметры, называемые атрибутами, которые, в свою очередь, могут иметь значения — аргументы. Можете считать (если так удобнее), что тэг — это команда, атрибут — имя ее параметра, а аргумент — значение параметра. Например, для вывода на экран картинки из файла KapTHHKa.jpg используется тэг<br> <IMG SRC="картинка.jpg"> <br><br> <h1>Параметры движения по эллиптической траектории</h1>Рисунок 863. Параметры движения по эллиптической траектории<br><br><img src="image/parametry-dvizhenija-po-jellipticheskoj-traektorii_1.gif" alt="Параметры движения по эллиптической траектории"> Собственно перемещение элемента обеспечивается периодическим вызовом вспомогательной функции move (), которая вычисляет новые координаты элемента. Чтобы вызывать эту функцию периодически (с заданной временной задержкой), мы использовали метод setlnterval () объекта window.<br> Вот HTML-код, в котором определяется перемещаемый элемент (картинка из файла labelt.gif), загружается файл ellipse.js со скриптом, описывающим функцию ellipse (), и вызывается функция ellipse ():<br> <HTML><br> <! Объект, который будет двигаться ><br> <IMG ID="pl" SRC = "labelt.gif" STYLE1 =<br> "position:absolute;top:300;left:190"><br> <! Загружаем скрипт из файла с описанием функции ellipse (),<br> ss которая перемещает объект><br> <SCRIPT SRC = "ellipse js"x/script><br> <! Вызываем функцию ellipseO ><br> <SCRIPT><br> ellipse("pi",60,100,30,10,170,300,0.2,0)<br> </SCRIPT> <br> </HTML><br> Особенность данного примера состоит в том, что перемещаемый объект (в нашем случае — картинка) должен быть определен прежде загрузки скрипта и вызова функции, обеспечивающей движение. <table border=1> <tr> <td> </td> </tr> </table> <br><br> <h1>Переключатели расположены горизонтально с помощью таблицы с невидимыми рамками</h1>Рисунок 676. Переключатели расположены горизонтально с помощью таблицы с невидимыми рамками.<br><br><br><img src="image/perekljuchateli-raspolozheny-gorizontalno-s_1.gif" alt="Переключатели расположены горизонтально с помощью таблицы с невидимыми рамками"> <table border=1> <tr> <td> </td> </tr> </table> <br><br> <br> <br> <h1>Переключатели</h1>Переключатели<br><br> Тэг <INPUT> позволяет вывести на страницу не только поле ввода, но и другие элементы. Например, если использовать атрибут TYPE= "RADIO" , то можно создать набор переключателей (radio-button) — кружков, щелчок на одном из которых делает его отмеченным (выбранным), а все остальные — неотмеченными. Чтобы набор переключателей воспринимался как целое, его необходимо поместить внутри тэга списка и в каждом тэге <INPUT> использовать одно и то же имя (значение атрибута NAME). Чтобы выделить переключатель, применяется атрибут CHECKED. После тэга <INPUT> помещается текст, который мы хотим видеть рядом с переключателем. Атрибут VALUE используется для того, чтобы мы смогли узнать, какой переключатель выбрал пользователь, и обработать выбор в программе-сценарии. Радиокнопки называют еще селекторными переключателями в отличие от просто переключателей, под которыми имеют в виду флажки (см. ниже).<br> В следующем примере создается набор из трех переключателей:<br> <HTML><br> <НЕАD><TITLE>Переключатели
    <Н2> Kакой язык Вы используете ?

    Русский<ВR>
    Английский

    Немецкий




    Поле ввода данных

    Поле ввода данных

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

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

    Для ввода числовых значений используется соответствующий аргумент атрибута TYPE:

    В тэг можно вставить и другие атрибуты:
  • NАМЕ="имя" — имя переменной, в которой сохраняется введенное значение;
  • VALUE="значение" — начальное значение;
  • SIZE="число" —длина текстового поля;
  • МАХLENGТН="число" — максимальное количество символов, которое можно ввести.
  • Например:


    Рисунок 673. Поле ввода данных

    Поле ввода данных Существует и другое средство для предоставления пользователю возможности вводить данные — метод prompt () языка JavaScript, который принимает в качестве параметров пояснительный текст и начальное значение, а затем отображает на экране окно для ввода значения. В этом окне есть две кнопки — ОК и Отмена. Метод возвращает введенное пользователем значение, либо false, если пользователь нажал кнопку Отмена.
    Например, в результате выполнения функции prompt ("Введите текст", "") появляется следующее окно:

    Позиционирование элементов

    Позиционирование элементов

    Выше мы говорили о том, что позиционировать элементы страницы можно путем использования таблиц. Но это же можно делать и с помощью стилей. Среди параметров стиля имеются специальные свойства для позиционирования:
  • left — для задания расстояния в пикселах от левого края окна (х-координата);
  • top — для задания расстояния в пикселах от верхнего края окна (у-координата);
  • z-index — для указания порядка, в котором элементы будут перекрывать друг друга; это новое измерение, элементы с большим z-индексом будут появляться над элементами с меньшим z-индексом.
  • Конечно, при использовании этих трех свойств не создается эффект трехмерного пространства, но это уже нечто большее, чем плоская поверхность. В этом случае говорят о 2,5-мерном пространстве.
    Кроме свойств-координат, нам понадобится свойство роsition, которое в сочетании со свойствами left и top позволяет устанавливать элементы в определенные позиции окна. Свойство position может принимать три значения:
  • absolute — заданные свойства left и top поставят элемент в точку с координатами х и у относительно верхнего левого угла контейнера (объекта, содержащего данный элемент). Если они определены для элемента вне контейнера, то началом отсчета координат будет верхний левый угол страницы. Заметим, что положение элемента не зависит от положения его тэга внутри HTML-документа;
  • relative — элемент будет установлен в соответствии с тем, в каком месте исходного текста он находится; это значение установлено по умолчанию. Например, если элемент находится в трех строках от начала его выделения в тексте документа, то по умолчанию считается, что свойство позиционирования имеет значение relative, а свойства координат left и top — нулевые значения. Ненулевые значения свойств left и top задают сдвиг элемента относительно исходного положения;
  • static — элемент будет поставлен в некоторое положение относительно фона и не будет перемещаться при прокручивании страницы.
  • Следующий пример показывает использование свойства z-index. Хотя в тексте программы картинка описана выше остальных элементов, за счет присвоения ей индекса с большим номером происходит перемещение ее поверх первого текста. Таким образом, использование свойства z-index освобождает от пут естественного порядка упоминания элементов в тексте HTML-программы.

    <НЕАD>Позиционирование




    nepBbiu позиционированный текст

    Второй позиционированный текст





    Пример документа содержащего ссылки на свои разделы и отдельные фрагменты

    Рисунок 658. Пример документа, содержащего ссылки на свои разделы и отдельные фрагменты


    Пример документа содержащего ссылки на свои разделы и отдельные фрагменты




    объединения ячеек

    Рисунок 660. Пример объединения ячеек

    объединения ячеек Как шириной всей таблицы, так и шириной каждой отдельной ячейки можно управлять. Ширину всей таблицы можно задать как в пикселах, так и в процентах от ширины окна. Ширину ячеек можно задать также двумя способами: в пикселах и в процентах от ширины таблицы. Следует иметь в виду, что ячейки в одном столбце имеют одинаковую ширину, а ячейки одной строки — разную ширину. Ширина таблицы задается атрибутом WIDTH в тэге , ширина ячейки указывается тем же атрибутом в тэге <ТН> или
    .


    <НЕАD> <ТITLE>Таблицы

    <Н2>Основные элементы таблиц
    <Р>
    Ниже приведен пример таблицы с объединенными ячейками и заданными
    размерами
    <Р>




    <ТD>Иван<ТD>Директор<ТD>1000


    <ТD>Петр<ТD>Бухгалтер<ТD>800


    <ТD>Федор<ТD ROWSPAN=2>Pa6o4MM50


    <ТD>Василий<ТD>70

    CnncoK сотрудников
    Имя и должность <ТН>Оклад




    применения фильтров flipv fliph u blur

    Рисунок 669. Пример применения фильтров flipv, fliph u blur

    применения фильтров flipv fliph u blur Покажем работу еще двух фильтров: Хгау и Wave.

    <НЕАD> Фильтры

    Р (position:absolute;top:0;left:190;font-size:48}



    STYLE1="position:absolute;top:120;left:10;width:150;height:100;filter:Xray" SRC = "world.gif ">
    STYLE1="position:absolute;top.-230;left:10;width:150;height:100;filter:Wave" SRC="world.gif">
    <Р>Фильтр

    Фильтр Xray

    OmibTp Wave



    Нетрудно заметить, что эти фильтры не воздействуют на тексты.

    применения фильтров Хгау и Wave

    Рисунок 670. Пример применения фильтров Хгау и Wave

    применения фильтров Хгау и Wave


    размещения нескольких элементов с помощью таблицы без рамок

    Рисунок 663. Пример размещения нескольких элементов с помощью таблицы без рамок

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

    <ТН>Имя <ТН>Адрес



    Иван<ТD>г.Санкт-Петербург

    Если требуется задать шрифт для текстов внутри ячеек таблицы, то это можно сделать с помощью тэгов заголовков и физических стилей внутри тэгов
    :
    <Н2>Иван
    Теперь вы имеете общее представление о том, зачем нужны таблицы и как их создавать. Следует заметить, что таблицы удобно готовить в таких редакторах, как FrontPage и Dream Weaver. С их помощью визуальными средствами можно начертить таблицу и вставить в ее ячейки необходимые данные. В этом деле редактор Dream Weaver даже более удобен, чем FrontPage.


    создания трехмерного текста с помощью CSS

    Рисунок 668. Пример создания трехмерного текста с помощью CSS

    создания трехмерного текста с помощью CSS
    3d эффект</ТITLE> <НЕАD><br> <STYLE1><br> P (font-family: "sans-serif"; font-size: 96, -color: red)<br> P. highlight (color : silver }<br> P. shadow ( color : darkred}<br> </STYLE1> <br> <BODY BGCOLOR="#509090"><br> <DIV STYLE1= "position: absolute; top: 5; left: 5;<br> width: 600; height : 100; margin: top :10"><br> <P CLASS=Shadow>Объемный текст'</Р><br> <DIV<br> STYLE1="position: absolute; top: 0;left:0; width: 600; <br> height :100;margin: top: 10"> <P CLASS=highlight>Oбъeмный текст</Р><br> <DIV STYLE1="position: absolute; top: 2; left: 2; width : 600;<br> height :100;margin: top: 10"><br> Объемный текст </Р><br> </DIV> <br> </BODY> <br> </HTML><br> Обратите внимание, что этот способ создания эффектных заголовков значительно экономнее, чем использование графических файлов с аналогичным содержанием.<br> <table border=1> <tr> <td> </td> </tr> </table> <br><br> <h1>таблицы с заданной шириной ячеек</h1>Рисунок 661. Пример таблицы с заданной шириной ячеек<br><br><img src="image/primer-tablicy-s-zadannoj-shirinoj-jacheek_1.gif" alt="таблицы с заданной шириной ячеек"> Текст и графику внутри ячеек таблиц можно выравнивать. Горизонтальное и вертикальное выравнивание содержимого рядов задается с помощью атрибута ALIGN в тэге <TR>. Выравнивание в отдельных ячейках выполняет атрибут ALIGN в тэгах <ТН> и <TD>. Атрибут ALIGN может принимать аргументы LEFT (по левому краю), RIGHT (по правому краю) и CENTER (по центру).<br> Примеры использования атрибута ALIGN:<br> <TR ALIGN=LEFT><br> <TH WIDTH=25% ALIGN=CENTER>Имя и должность</TH><br> Для определения дизайна рамок таблицы в браузере Internet Explorer можно использовать атрибут FRAME тэга <TABLE>. Ниже перечислены возможные аргументы атрибута FRAME, указывающие способы изображения рамки:<br> <li> BOX — все четыре стороны рамки;</li> <li> ABOVE — только верхняя часть рамки;</li> <li> BELOW —только нижняя часть рамки;</li> <li> HSIDES — горизонтальные части рамки сверху и снизу;</li> <li> VSIDES — только левая и правая вертикальные части рамки;</li> <li> LHS — только левая часть рамки;</li> <li> RHS — только правая часть рамки;</li> <li> VOID — не изображать внешнюю рамку.</li> Разделительные линии между столбцами и рядами таблицы описывается атрибутом RULES в тэге <TABLE>. Атрибут RULES может принимать следующие значения, задающие способ изображения разделительных линий:<br> <li> ALL — все вертикальные и горизонтальные линии;</li> <li> ROWS — только горизонтальные линии между рядами;</li> <li> COLS — только вертикальные линии между столбцами;</li> <li> NONE — не изображать разделительные линии.</li> Приведем пример управления дизайном таблиц.<br> <HTML><br> <НЕАD> <ТITLE>Таблицы</ТITLE></НЕАD> <BODY><br> <Н2>Основные элементы таблиц</Н2> <br> <Р>Различный дизайн таблиц<br> <Р> <br> <TABLE BORDER=15 FRAME=BOX RULES=ROWS WIDTH=300><br> <CAPTION ALIGN=TOP>Cписок сотрудников</САРТION><br> <TR><br> <TH COLSPAN=2>Имя и должность</ТН><ТН>Оклад</ТН><br> </TR> <TR><br> <ТD>Иван</ТD><ТD>Директор</ТD><ТD>1000</ТD> <br> </TR> <br> <TR><br> <ТП>Петр</ТD><ТD>Бухгалтер</ТD><ТD>800</ТD><br> </TR><br> <TR><br> <ТD>Федор</ТD><ТD ROWSPAN=2>Pa6oчий</ТD><ТD>>50</TD> <br> </TR><br> <TR><br> <ТD>Василий</ТD><ТD>70</ТD> <br> </TR><br> </TABLE> <TABLE BORDER=10 FRAME=BOX RULES=COLS WIDTH=300><br> <CAPTION ALIGN=TOP>Список сотрудников</САРТION><br> <TR><br> <TH COLSPAN=2>Имя и должность</ТН><ТН>Оклад</ТН><br> </TR><br> <TR><br> <ТD>Иван</ТD><ТD>Директор</ТD><ТD>1000</ТD> <br> </TR> <br> <TR><br> <ТD>Петр</ТD><ТD>Бухгалтер</ТD><ТD>800</ТD><br> </TR> <br> <TR><br> <ТD>Федор</ТОХТП ROWSPAN=2>Pa6oчий</ТD><ТD>50</TD><br> </TR><br> <TR><br> <ТD>Василий</ТD>70</ТD><br> </TR> <br> </TABLE> <br> </BODY> <br> </HTML><br><br> <h1>ы оформления таблиц</h1>Рисунок 662. Примеры оформления таблиц<br><br><img src="image/primery-oformlenija-tablic_1.gif" alt="ы оформления таблиц"> В следующем примере используем таблицу без рамок как способ размещения различных элементов на странице. В ячейки помещены текстовые ссылки, картинки и число 1000, а некоторые ячейки остались пустыми. Для задания нужного расстояния между элементами следует использовать атрибуты выравнивания. Пока еше нет другого способа разместить несколько элементов в одном ряду, кроме использования таблиц. В следующем разделе, посвященном каскадным таблицам стилей, будет рассмотрен другой способ позиционирования элементов. В приведенном ниже примере просто задана таблица, но не указаны ее размеры и способ выравнивания для того, чтобы показать: можно располагать элементы как по горизонтали, так и по вертикали в пределах некоторой области. При этом только опытный программист на языке HTML может догадаться по внешнему виду страницы, что для ее создания была использована таблица. Освойте этот прием позиционирования, если хотите располагать на Web-странице много графических элементов и ссылок. Это позволит сэкономить место и достаточно эффектно разместить материал в окне браузера.<br> <HTML><br> <НЕАD> <ТITLE>Таблица</ТITLE></НЕАD><br> <BODY> <br> <Н2><br> Использование таблицы как способа расположения элементов на странице <br> </Н2><br> <TABLE><br> <TR><br> <TD><A HREF="пример1.htm">Пример 1</A> </TD><br> <TD> <IMAGE SRC="logotip.gif» WIDTH=100 HEIGHT=100> </TD><br> <TD>1000</TD> <br> </TR> <br> <TR><br> <TD> <A HREF="пример2.htm">Пример 2</A> </TD> <TD> <IMAGE ЗРС="квадрат.bmp"> </TD><br> </TR><br> </TABLE><br> </BODY><br> </HTML><br> Цветовое оформление таблиц производится с помощью атрибута BGCOLOR, который принимает в качестве аргумента цвет в виде имени или шестнадцатеричного числа. Если нужно установить цвет для всей таблицы, то атрибут BGCOLOR вставляется в тэг <TABLE>. Для изменения цвета только одного ряда этот атрибут вставляется в тэг <TR>. Задание цвета отдельной ячейки обеспечивается атрибутом BGCOLOR внутри тэга <TD>.<br> Если в таблице имеются рамки, то можно указать и их цвет с помощью атрибутов:<br> <li> BORDERCOLOR — цвет всей рамки;</li> <li> BORDERCOLORLIGHT — цвет светлой части рамки;</li> <li> BORDERCOLORDARK — цвет темной части рамки.</li> <br><br> <h1>Примеры скриптов</h1>Примеры скриптов<br><br> Здесь мы приведем несколько простых скриптов, которое в том или ином виде часто применяются в Web-страницах. Все они создают некоторые визуальные эффекты.<br> Другие примеры с пояснениями можно найти на сайте автора по адресу www.admiral.ru/~dunaev.<br> Смена картинки<br> В данном примере наведение указателя мыши на картинку приводит к изменению изображения. Когда указатель покидает картинку, изображение приобретает первоначальный вид.<br> Картинка на странице определяется, как известно, тэгом <IMG>. Атрибут SRC задает файл с изображением. Нам необходимо изменить значение атрибута SRC при наступлении события, связанного с указателем мыши. Когда указатель мыши попадает в область, занятую каким-либо объектом, возникает событие onMouseOver, а когда он покидает эту область, наступает событие onMouseOut.<br> Пусть первоначально на странице находится картинка из файла labeltl.gif, а заменять ее мы хотим картинкой из файла labelt2.gif. Тогда соответствующий HTML-код будет иметь следующий вид:<br> <HTML><br> <IMG id="myimage" SRC="labeltl.gif"<br> onMouseOver="document.all('myimage').src='labelt2.gif" onMouseOut="document.all('myimage').src='labeltll.gif'"><br> </HTML><br> В этом примере мы обращаемся к объекту через коллекцию all() всех элементов HTML-документа, указывая идентификатор id нужного элемента. Поскольку выражения, которые следует выполнить при наступлении событий, просты, мы не стали заводить для скрипта отдельный раздел, ограниченный тэгами <SCRIPT> и </SCRIPT>.<br> Теперь рассмотрим пример, в котором изображение изменяется при щелчке кнопкой мыши на картинке. Понятно, что картинка должна реагировать на событие onСlick. В отличие от предыдущего примера нам потребуется счетчик щелчков, а лучше сказать — триггер, который при щелчке принимает одно из двух значений (0 или I). Это необходимо, чтобы знать, какое именно изображение показывать. Если значение триггера равно 0, то при щелчке оно изменяется на I и показывается картинка labelt2.gif. Если значение триггера равно I, то при щелчке оно изменяется на 0, и показывается картинка labeltl.gif.<br> <HTML> <SCRIPT><br> var img_click=0; // триггер<br> function changeimg ()<br> {<br> if (img_click)<br> {document.all('myimge').src='labeltl.gif1; img_clickl=0}; else<br> {document.all ('myimge') .src='labelt2.gif; img_clickl=l}; <br> }<br> </SCRIPT><br> <IMG id="myimage" SRC="labeltl. gif" onClick="c'hangeimg () "> <br> </HTML><br> данном примере скрипт должен быть загружен раньше тэга <IMG>, чтобы переменная img_click инициализировалась раньше, чем кто-нибудь щелкнет на картинке.<br> Если нам необходимо, чтобы при щелчке на кнопке с картинкой изменялся вид последней, то в приведенном выше коде следует вместо тэга <IMG> подставить следующие тэги:<br> <BUTTON onclick="changeimg()"><br> <image src="labelt.gif" id="myimage"><br> Нажми меня</ВUTTON><br> <br> Подсветка кнопок<br> В следующем примере на странице располагаются три кнопки серого цвета. При наведении указателя мыши на кнопку ее цвет изменяется на желтый. Здесь мы использовали стиль, чтобы задать первоначальный цвет кнопок и «вес» шрифта. При возникновении события функция changecolor (color) изменяет один из параметров стиля, а именно цвет фона backgroundColor. Цвет, который следует установить, передается функции в качестве параметра.<br> <HTML> <br> <STYLE1><br> .mystyle (font-weight:bold;background-color:aOaOaO} <br> </STYLE1><br> <FORM onMouseOver="changecolor('yellow')"<br> onMouseOut="changecolor('aOaOaO')"><br> <INPUT TYPE="button" VALUE="Pora" CLASS="mystyle"<br> onClick="alert('Вы нажали Рога')"> <br> <INPUT TYPE="button" VALUE="Kопыта" CLASS="mystyle"<br> onClick="alert('Вы нажали Копыта')"> <br> <INPUT TYPE="button" УАЫ1Е = "Хвосты" CLASS="mystyle"<br> onClick="alert('Вы нажали Хвосты')"> <br> </FORM> <br> <SCRIPT><br> function changecolor (color) // изменение цвета кнопок <br> {<br> event.srcElement.style.backgroundedоr = color;<br> } <br> </SCRIPT><br> </HTML><br> В данном примере мы воспользовались объектом event, который содержит информацию о каком-либо событии (в нашем случае — о щелчке). Свойство srcElement этого объекта содержит информацию об элементе страницы, с которым связано событие (в нашем случае это какая-то кнопка). Мы хотим изменить параметр background, относящийся не непосредственно к кнопке, а к ее стилю (style). Именно поэтому мы изменяем значение свойства event.srcElement.style.backgroundColor.<br> Мы рассмотрели не единственный возможный способ организации подсветки кнопок. В примере мы хотели обратить ваше внимание на то, что можно изменять параметры, определенные ранее тэгом или атрибутом STYLE1.<br> Мигание<br> В этом примере мы создаем с помощью тэга таблицы рамку, окаймляющую текст. С помощью скрипта цвет рамки будет периодически изменяться, создавая эффект мигания.<br> <HTML><br> <TABLE BORDER=1 WIDTH=180 ID="mytab" style="border: <br> 7px solid:yellow"><br> <ТR> <ТD>Мигающий бордюр</ТD> </ТR><br> </TABLE><br> <SCRIPT><br> function flash() // изменение цвета бордюра<br> {<br> if (.'document. all) // ничего в документе нет<br> return;<br> if (mytab.style.borderColor=='yellow')<br> mytab.style.borderColor='red'; else<br> mytab.style.borderColor='yellow'; <br> }<br> setlnterval("flash()",500);<br> // мигание бордюра с периодом 500 мс <br> </SCRIPT><br> </HTML><br> В скрипте периодически с помощью метода setlnterval () вызывается функция flash (), которая назначает цветрамки таблицы; setlnterval () является методом объекта window. Он принимает два параметра: функцию, которую следует периодически запускать, и число, равное периоду запусков в миллисекундах. В нашем примере функция flash () задания цвета рамки запускается через каждые 500 мс.<br> <br> Ссылки, переливающиеся цветами радуги<br> <br> В этом примере мы помещаем на страницу три гиперссылки. Чтобы привлечь внимание посетителей, мы заставляем их периодически изменять спой цвет. Мы не настаиваем на широком использовании этого способа дизайна (частое мигание не только привлекает, но и раздражает), но пример сам по себе довольно поучительный.<br> В НТМ L-коде мы размешаем три гиперссылки на Web-странице нашего сайта, посвященного, главным образом, учебным примерам. Напомним его адрес: www.admiral.ru/~dunaev. Далее, в этом же HTML-документе мы размещаем скрипт (сценарий), который выполняет периодическую смену цветов гиперссылок.<br> В скрипте определяется массив, элементами которого являются коды или названия цветов. Напомним, что цвет можно задать двумя способами. В примере длина массива цветов (количество элементов) равна 8. Функция colorchange () , определение которой мы написали сами, изменяет цвет. Чтобы внести хаотичность в процесс выбора цвета, мы использовали оператор % для вычисления остатка от деления текущего индекса массива цветов на его длину. Таким способом мы вычисляем номер элемента массива цветов, который будем использовать при следующем назначении цвета ссылке. Разумеется, здесь можно придумать и что-нибудь более изысканное, но все и так достаточно хорошо работает.<br> Чтобы гиперссылки постоянно изменяли свой цвет, мы используем уже известный из предыдущих примеров метод set Interval ( ) . Здесь он применяется к функции изменения цветов colorchange () . Это означает, что первым параметром метода является строка (в кавычках), содержащая вызов функции colorchange ( ) . Частота смены цветов определяется вторым числовым параметром этого метода. Напомним, что он задает период запуска функции в миллисекундах, так что значение 500 соответствует 0,5 с. Обратите внимание, что способы выбора цветов для непосещенных и уже использованных ссылок различаются.<br> <HTML><br> <! Ссылки><br> <А HREF="i_is . htm">Начало</А><br> <А HREF="examples.htm">Примеры HTML</A><br> <А HREF="mybook.htm">Moи книги</А><br> <SCRIPT><br> color s=new Array (8); // массив цветов<br> сolors[l]='#008000';<br> Colors [2] = 'green ' ;<br> сolors [3]='#c6c6bc' ;<br> colors [4]='green ' ;<br> rolors [5] ='blue ' ;<br> сolors [6]='purple' ;<br> сolors[7]='black';<br> сolors [8]='red' ;<br> link=4;// начальные индексы массива цветов<br> "unction colorchange ()// изменение цвета<br> { <br> link=(link+l)%co]ors. length;<br> vlin k= (link+1) %colors. length ;<br> document.linkColor=colors [link] ;<br> document.viinkColor=colors[vlink];<br> }<br> setlnterval("colorchange()",500) <br> // изменение цвета через 500мс,<br> // т. е . через 0,5с.<br> </SCRIPT> <br> </HTML><br> Обратим внимание на то, что в данном примере в гиперссылках использовались имена файлов, а не их полные URL-адреса. Это вполне допустимо, если указанные файлы находятся в той же папке (каталоге), что и HTML-документ, содержащий эти гиперссылки. Для надежности, а также в общем случае, вы можете использовать более точные указания и, в частности, универсальные адреса расположения ресурсов — URL.<br> <br> Анимация<br> <br> Анимационные эффекты на Web-странице можно создать и средствами HTML совместно со скриптами. Конечно, самым эффективным средством создания анимации для Web является программа Flash. Однако кое-что можно сделать с помощью динамического HTML, т. е. HTML совместно со скриптами и CSS (каскадными таблицами стилей).<br> Если вам необходимо, чтобы картинка изменяла свой вид, то используйте анимационные GIF-файлы. Если же вы хотите, чтобы картинка перемещалась в пространстве страницы, то используйте соответствующий скрипт. Интересный результат получается при перемещении анимационного GIF-файла с помощью скрипта. Вообще говоря, это — генеральная стратегия создания анимации средствами динамического HTML.<br> Ниже мы приводим код, который перемещает картинку из файла labelt.gif на некоторе количество пикселов по вертикали и горизонтали, если вы сделали на ней щелчок кнопкой мыши.<br> <HTML><br> <IMG id="myimage" SRC = "openl.gif" STYLE1="position:<br> absolute;<br> lop:10;left:50"<br> onClick="move()"><br> <SCRIPT><br> function move()<br> {<br> document.all("myimage").style.top=parselnt(document.all<br> ("myimage").style.top)+10; document.all("myimage").style.left=parselnt<br> (document.all("myimage").style.left)+20;<br> }<br> </SCRIPT><br> </HTML><br> Здесь функция move () переопределяет координаты картинки. Мы использовали функцию parseInt () для преобразования строковых значений параметров стиля в числовые, чтобы корректно выполнить арифметические операции.<br> Теперь модифицируем рассмотренный выше пример так, чтобы картинка при щелчке кнопкой мыши на ней начинала двигаться без остановки. Для этого нам потребуется метод setInterval (). Напомним, что это — метод объекта window. Он принимает два параметра: функцию, которую следует периодически запускать и период в милисекундах, через который ее нужно запускать. В примере мы намерены запускать функцию move () через 0, I с. Вот код данного примера:<br> <HTML><br> <IMG id="myimage" SRC="openl.gif" STYLE1="position:<br> absolute; top:iO;left:50"<br> onClick="move()"> <br> <SCRIPT><br> function move()<br> {<br> document.all("rayimage").style.top=parselnt<br> (document.all("myimage").style.top)+10; document.all<br> ("myimage").style.left=parselnt<br> (document.all("myimage").style.left)+20; <br> setlnterval ("move ()",100); <br> // периодический вызов функции move() <br> }<br> </SCRIPT><br> </HTML> <br> Ниже приведен аналогичный пример, но отличающийся от рассмотренного выше тем, что картинка начинает перемешаться сразу после загрузки HTML-документа, не дожидаясь щелчка. <HTML><br> <IMG id="myimage" SRC = "openl.gif " STYLE1="position : absolute; top:10;left:50"><br> <SCRIPT><br> function move() <br> {<br> document. all ("myimage").style.top=parselnt <br> (docurrent. all ("myimage").style.top)+10;<br> document.all("myimage").style.left=parselnt<br> (document.all("myimage").style.left)+20;<br> }<br> setlnterval("move()",100); <br> // периодический вызов функции move() <br> </SCRIPT> <br> </HTML><br> В этом примере метод setlnterval () находится вне определения функции move () , поэтому он начнет выполняться сразу же после загрузки страницы в браузер.<br> Очевидно, в рассмотренных выше примерах картинка, начав движение, со временем исчезнет из поля зрения (уйдет за границы окна браузера). Чтобы это не произошло, следует использовать замкнутые траектории движения, которые мы рассмотрим в следующем примере.<br> В рассматриваемом ниже примере картинка перемещается по эллиптической траектории. Вместо картинки вы можете заставить двигаться любой другой видимый элемент страницы. Эллипс — это замкнутая кривая, овал. Частными случаями эллипса являются окружность и отрезок прямой линии. Особенность данного примера состоит в том, что функция, обеспечивающая движение элемента по эллипсу, универсальна, т. е. не зависит от того, что именно должно двигаться по эллиптической траектории. Кроме того, мы разместили описание этой функции в отдельном текстовом файле с расширением js. Предполагается, что текстовые файлы с таким расширением содержат скрипты, написанные на языке JavaScript. В нашем примере этот файл имеет имя ellipse.js. Поскольку этот скрипт достаточно универсален, вы можете использовать его в своих разработках.<br> Файл ellipse.js<br> //Движение по эллипсу<br> // Параметры:<br> // objnamel - id движущегося объекта, заданного тэгом; строка; <br> // alphal - угол поворота эллипса, градусы; <br> // al - большая полуось эллипса, пикселы; <br> // b1 - малая полуось эллипса, пикселы;<br> // omegal - угловая скорость, град/с;<br> знак задает направление вращения; <br> // х01 - х-координата центра эллипса, пикселы; <br> // у01 - у-координата центра эллипса, пикселы; <br> // ztimel - начальная фаза на эллипсе, градусы;<br> // dtl - временная задержка, секунды.<br> function ellipse <br> (objnamel, alphal, al,bl, omegal, xOl , yOl, ztimel, dtl)<br> // проверка наличия параметров if <br> (alphal==null) alphal=0; if (al==null)<br> al = 0; if (bl==null)<br> bl = 0;<br> if (omegal==null)<br> A omegal=0;<br> if (x01==null)<br> x01=0; if (y01==null)<br> y01=0; if (ztimel==null)<br> ztimel=0; if (dtl==null)<br> dtl=0; t=-ztimel;<br> // чтобы начальное значение было О,<br> // поскольку в move() уже есть приращение<br> // Многократный вызов функции move() <br> с интервалом ztime в секундах: setlnterval<br> ("move('"+objnamel+"',"+alphal + "," + al + "," + b1 + ",<br> + omegal + "," + xOl + "," + yOl + ","<br> + ztimel + "," + dtl ") ", ztimel*1000)<br> // Пересчет координат, вызывается из ellipse ()<br> function move <br> (objname2 ,alpha2,a2,b2, omega 2 ,x02,y02,ztime2,dt2)<br> t = t-H2time2;<br> // x,y - координаты в собственной системе координат<br> x=a2*Math. cos ( (ornega2* t + dt2) *Math. PI/180) ;<br> y=b2*Math.sin((omega2*t Kit2)*Math.PI/180) ;<br> as=Math.sin(alpha2*Math.PI/180) ;<br> ac=Math.cos(alpha2*Math.PI/180) ;<br> document.all(objname2) .style.top=-x*as+y*ac+y02<br> document.all(objname2).style.left=x*ac+y*as+x02<br> Параметр функции objname определяет идентификатор (значение id) элемента страницы, который должен двигаться по эллиптической траектории. Смысл остальных параметров можно понять из следующего рисунка:<br> Координаты top и left — вертикальная и горизонтальная экранные координаты. Если а = b (большая и малая полуоси эллипса равны), то эллипс превращается в окружность. Если а = 0 или b = 0, то эллипс вырождается в отрезок. Обратите внимание, как используются математические (тригонометрические) функции. Эти функции суть методы объекта Math.<br><br> <h1>Простая таблица встроенная в текст</h1>Рисунок 659. Простая таблица, встроенная в текст<br><br><img src="image/prostaja-tablica-vstroennaja-v-tekst_1.gif" alt="Простая таблица встроенная в текст"> Несколько ячеек могут быть объединены в одну как по горизонтали, так и по вертикали. Объединение по столбцам применяют тогда, когда надо, чтобы соседние столбцы имели общий заголовок. Объединение по строкам делается в том случае, когда содержимое нескольких ячеек подряд одинаково. Для объединения ячеек используются тэги COLSPAN и ROWSPAN (по столбцам и по строкам соответственно). Аргументами этих атрибутов являются количества объединяемых столбцов или строк. Вот пример объединения ячеек:<br> <HTML><br> <НЕАD> <ТITLE>Таблицы</ТIТLЕ> </НЕАD> <BODY><br> <Н2>Основные элементы таблиц</Н2><br> <br> Ниже приведен пример простой таблицы с объединенными ячейками<br> <br> <TABLE BORDER><br> <CAPTION ALIGN=ТОР>Список сотрудников</CAPTION><br> <TR> <TH COLSPAN=2>Имя и должность</TH> <ТН>Оклад</ТН><br> </TR><br> <TR> <TD>Иван</TD><TD>Директор</TD> <TD>1000</TD><br> </TR><br> <ТР> <ТD>Петр</ТD> <ТD>Бухгалтер</ТD> <ТD>800</ТD><br> </TR><br> <ТК> <ТD>Федор</ТD> <ТD ROWSPAN=2>Pa6oчий</TD> <TD>50</TD><br> </TR><br> <TR><TD>Bacилий</TD><TD>70</TD><br> </TR> <br> </TABLE> <br> </BODY> <br> </HTML><br><br> <h1>Разделительные полосы</h1>Разделительные полосы<br><br> При оформлении текста, чтобы отделить один раздел от другого, нередко используют разделительные полосы. Можно задать ширину, толщину и способ выравнивания разделительной полосы. Разделительная полоса задается тэгом <HR>, внутри которого можно вставить атрибуты:<br> <li> SIZE — толщина в пикселах; </li> <li> WIDTH — ширина в пикселах;</li> <li> ALIGN — способ выравнивания (принимает значения CENTER, LEFT или RIGHT; кроме того, можно использовать атрибут для создания сплошной черной полосы без тени).</li> Пример задания разделительных полос.<br> <HTML><br> <BODY BGCOLOR="#EOEOEO"><br> <Н1>Разделительные полосы<Н1><br> <НЗ>Для отделения частей текста можно использовать разделительные полосы.Такие полосы вставляются тэгом HR.<BR><br> Это - обычная полоса, заданная без указания атрибутов<br> <HR><br> Можно задавать различные толщину и ширину полос. Это - полоса толщиной 5<br> <HR SIZE=5> <br> <Р>Это - полоса толщиной 10 и шириной 200<br> <HR SIZE=10 WIDTH=200><br> <Р>Это - полоса толщиной 5, заданная с атрибутом <br> <HR SIZE=5 > <br> <НЗ><br> </BODY> <br> </HTML><br><br>Рисунок 654. Разделительные полосы<br><br><br><img src="image/razdelitelnye-polosy_1.gif" alt="Разделительные полосы"> <table border=1> <tr> <td> </td> </tr> </table> <br><br> <br> <br> <h1>С помощью тэга <BUTTON> можно создать кнопку поставить на нее картинку и текст</h1>Рисунок 678. С помощью тэга <BUTTON> можно создать кнопку, поставить на нее картинку и текст<br><br><img src="image/s-pomoshhju-tjega-button-mozhno-sozdat-knopku_1.gif" alt="С помощью тэга <BUTTON> можно создать кнопку поставить на нее картинку и текст"> Можно создать графическую кнопку, используя уже знакомый тэг <INPUT>, но с атрибутами TYPE="IMAGE" и SRC="имя_файла", а также NAME и VALUE:<br> <INPUT TYPE="IMAGE" SRC="имя файла"<br> NАМЕ="имя кнопки" VALUE=значение> <br> В качестве картинки можно подобрать изображение кнопки или любое другое изображение. Например, следующая строка кода выводит значок (icon) «стрелка» из файла arw10ne.ico: <INPUT TYPE=" IMAGE" SRC="arwl One . ico" NAME = "N" VALUE=jhjhghghuyt><br><br> <h1>Сценарии (скрипты)</h1>Сценарии (скрипты)<br><br> тобы Web-страница была интерактивной (могла взаимодействовать с пользователем) и динамичной, необходимо использовать так называемые скрипты или, иначе говоря, сценарии. Сценарий (script, скрипт) — программа, написанная на специальном языке программирования, которая встраивается в HTML-документ.<br> Например, иы хотите, чтобы при щелчке кнопкой мыши на картинке последняя изменила слой вид или, скажем, произошел переход на другую страницу. Для этого необходим скрипт, который выполнит все, что нужно. То есть сценарии описывают поведение элементов HTML-документа и их взаимодействие с пользователем (например, реакцию на щелчок кнопки мыши, изменение содержания страницы в зависимости от действий пользователя).<br> Стандартным языком для скриптов является JavaScript. Однако разные браузеры воспринимают различные версии этого языка и, более того, даже отличающиеся его редакции. Редакция JavaScript от фирмы Microsoft, наиболее близкая к стандарту, называется JScript. Браузер Microsoft Internet Explorer поддерживает не только JScript, но и еще один язык скриптов — Visual Basic Script (VBScript). Другие браузеры VBScript не воспринимают. Так уж сложилось, что сейчас около 80% посетителей Web используют браузер Microsoft Internet Explorer. Однако остальных тоже миллионы. Ближайший конкурент браузера от Microsoft — Netscape Navigator. Будучи хорошим продуктом, последние годы он только отступал. Есть еще один популярный браузер — Opera. В полемике о том, какой браузер лучше, на наш взгляд, следует руководствоваться критерием близости к стандартам поддерживаемых скриптовых языков, а не удобствами использования браузера и его внешним видом. Netscape, можно так сказать, поддерживает некий диалект JavaScript. To, что ему не под силу, легко воспринимает Internet Explorer. А на каком диалекте «говорит» браузер Opera? Чтобы ответить на этот вопрос, "требуется провести особое исследование. Обсуждения в Интернете на тему, какой браузер лучше, пока затрагивают лишь вопросы удобства и скорости.<br> Чтобы эффективно использовать скриптовый язык для создания сценариев (скриптов), необходимо знать так называемую объектную модель HTML-документа. Действительно, прежде чем что-то делать, нужно понимать, к каким свойствам каких объектов наши действия будут приложены. Дело в том, что HTML-документ при загрузке в браузер транслируется в некоторое внутреннее представление в соответствии с объектной моделью. Каждый элемент HTML-документа (заголовок, картинка, кнопка и т. п.) представляется соответствующим объектом. Специфика объектов определяется их свойствами. С другой стороны, браузер, будучи программой, тоже имеет свою объектную модель. Если бы объектные модели HTML-документа и браузера были нам известны и, кроме того, имелись бы средства для манипулирования объектами, то тогда мы могли бы управлять как содержанием документа, так и браузером. С появлением HTML 4.0 и интерпретирующих его браузеров (например, Internet Explorer версии 4.0 и старше) появилась и такая возможность. Объектная модель была опубликована, т. е. были описаны объекты, их свойства и соответствие элементам HTML-документа. Средством манипулирования объектами стал язык JavaScript. Для браузера Internet Explorer, кроме JScript, можно использовать язык VBScript. Это — объектно-ориентированные языки программирования. На них можно писать программы, называемые сценариями (скриптами), и вставлять сценарии в HTML-код, обрамляя тэгами <SCRIPT> и </SCRIPT>.<br> Рассмотрим сначала в общих чертах объектную модель, представляющую собой частично упорядоченное по отношению включения множество объектов. Это означает, что некоторые объекты входят в состав других объектов, так что объекты<br> образуют иерархию. Объект — это программная единица, которую можно использовать в программах для выполнения различных задач. О текущем состоянии объекта мы можем судить только по значениям его свойств. Управлять состоянием объекта (если он допускает это) можно только посредством его свойств. Программный код объекта, конкретная реализация его функционирования нам неизвестны. Мы не знаем, как устроен объект, но знаем, как им пользоваться. Данная концепция называется еше концепцией черного ящика. Таким образом, способ работы с объектами аналогичен способу работы с обычными бытовыми приборами: только посредством кнопок, ручек, циферблатов и дисплеев.<br> Объекты имеют фиксированные названия. Например, окну браузера соответствует объект window, a HTML-документу, загруженному в браузер, — объект document. Это основные объекты, но есть и другие. Объекты характеризуются тремя типами свойств:<br> <li> собственно свойства;</li> <li> методы;</li> <li> другие объекты.</li> Собственно свойства, называемые обычно просто свойствами, представляют собой переменные с фиксированными именами. Свойства имеют значения. Есть свойства, значения которых можно только читать (нельзя изменять). Такие свойства подобны измерительным приборам и датчикам. Значения других свойств можно изменять как обычные переменные. Эти свойства аналогичны элементам управления. Для доступа к свойству объекта используется синтаксис:<br> объект.свойство;<br> <br> Например, значением свойства document.location является URL-адрес HTML-документа.<br> Методы— это внутренние функции объектов. Они имеют фиксированные имена, могут принимать параметры и возвращать значения. Вот синтаксис применения метода:<br> <br> объект.метод(список_параметров);<br> <br> Например, метод window, open ("www. admiral. ru/~dunaev") открывает новое окно браузера и загружает в него страницу, расположенную по указанному адресу. Заметим, что некоторые методы не имеют параметров. С точки зрения пользователя методы отличаются от собственно свойств только синтаксисом обращения. Такого понимания вполне достаточно, чтобы их использовать. Более глубокие различия понятны только программистам. Дело в том, что программы (объекты — это тоже программы) могут управляться как данными (т. е. значениями переменных), так и процедурами и функциями (т. е. методами).<br> Объект может иметь в качестве свойства другой объект. В этом случае говорят, что первый объект содержит (включает в себя) второй объект. При этом первый объект называют также родительским (parent), а второй — дочерним, потомком или подобъектом (child). Если мы хотим обратиться к свойству или методу объекта объект2, являющегося подобъектом объекта объект!, то пишем так:<br> объект1.объект2.свойство; <br> объект2.объект2.метод () ;<br> Например, объект document является подобъектом объекта window. Если мы хотим что-то записать в документ, загруженный в текущее окно, то можем воспользоваться для этого методом write(). Вот пример:<br> window.document.write("Привет!")<br> Кроме свойств и методов, для каждого объекта определен список событии, на которые он в принципе может реагировать. События имеют предопределенные названия. Например, событие «щелчок кнопкой мыши» обозначается onclick, «нажатие кнопки мыши» — onmousedown, а «загрузка документа в браузер» — onload.<br> Все элементы страницы, созданные с помощью тэгов HTML, а также информация о состоянии браузера имеют объектное представление. Доступ к объектам осуществляется с помощью сценариев (скриптов). Именно там мы и пишем все необходимые выражения, о которых говорилось выше.<br> Все перечисленные понятия лежат в основе так называемых объектно-ориентированных программ. В настоящее время к ним относится основная масса программных продуктов. И в первую очередь таковыми являются современные операционные системы, например Windows.<br> Операционная система Windows является многозадачной системой, обеспечивающей одновременное выполнение нескольких программ. В программе, написанной для работы под управлением ОС Windows (или для другой графической среды), пользователь может раскрывать окна, переходить из одного окна в другое, заполнять текстовые поля, нажимать кнопки практически в произвольном порядке. Например, пользователь может запустить процесс копирования файлов, включить проигрывание компакт-диска и проверить, не пришла ли электронная почта. Все это делается параллельно. Каждое такое действие пользователя формирует событие, т. е. некоторое сообщение о произошедшем. Операционная система фиксирует это сообщение и анализирует его, чтобы узнать, откуда оно взялось и что с ним делать. Операционная система может обработать событие самостоятельно или передать его другой программе, например браузеру.<br> Конечно, в действительности не все так просто, но хотелось обратить внимание на то, что программирование под Windows — программирование, управляемое событиями.<br> Можно связать HTML-код с происходящими событиями и использовать эту связь для организации взаимодействия пользователя со страницей. Например, один лишь щелчок порождает сразу несколько событий: onmousedown (нажата кнопка мыши), onmouseup (отпущена кнопка мыши) и onclick (щелчок кнопкой мыши, т. е. кратковременное нажатие и освобождение кнопки).<br> Если пользователь нажмет кнопку мыши во время нахождения указателя над окном браузера, то Windows пошлет браузеру сообщение, содержащее информацию о том, какая кнопка мыши нажата, какие при этом клавиши клавиатуры удерживаются, а также координаты указателя мыши. Браузер решает, обрабатывать ли ему это событие. Если пользователь щелкнул на одной из кнопок панели инструментов, то браузер обработает это событие сам. Если во время щелчка указатель находился внутри собственно страницы, то браузер пропустит это событие к странице через свою объектную модель. В HTML-программе страницы может находиться сценарий, который обрабатывает это событие. Имеется и обратный путь. Если мы решаем ответить на событие, то инструкции идут от сценария к браузеру через ту же объектную модель. Браузер теперь решает, что делать со страницей, и сообщает об этом системе. В динамическом HTML мы можем указать, на какие события реагировать странице и что делать браузеру.<br> <br> <table border=1> <tr> <td> </td> </tr> </table> <br><br> <h1>События объекта document</h1>События объекта document<br><br> <li>onafterupdate — возникает при окончании передачи данных; onbef oreupdate — возникает перед выгрузкой страницы;</li> <li> onclick — происходит, когда кнопка мыши щелкнула на документе;</li> <li>ondbidick— происходит, когда пользователь делает двойной щелчок на<br> документе;</li> <li>ondragstart — происходит, когда пользователь начинает перетаскивание;</li> <li>onerror — ошибка при передаче; </li> <li>onhelp — происходит при нажатии пользователем клавиши <F1>;</li> <li>onkeydown — возникает при нажатии клавиши;</li> <li>onkeypress — возникает, когда пользователь нажал клавишу и удерживает ее в нажатом состоянии</li> <li>onkeyup — возникает, когда пользователь отпускает клавишу;</li> <li>onload — возникает при полной загрузке элемента;</li> <li>onmousedown — происходит, когда пользователь нажимает кнопку мыши;</li> <li>omousemove — происходит, когда пользователь перемещает мышь;</li> <li>onmouseout — происходит, когда указатель мыши выходит с элемента;</li> <li>onmouseover — происходит, когда указатель мыши впервые входит на элемент;</li> <li>onmouseup — происходит, когда пользователь отпускает кнопку мыши;</li> <li>onreadystatechange — возникает при изменении свойства readystate;</li> <li> onseiectstart — происходит, когда пользователь в первый раз запускает выделенную часть документа.</li> <table border=1> <tr> <td> </td> </tr> </table> <br><br> <br> <br> <h1>Специальные и зарезервированные символы</h1>Специальные и зарезервированные символы<br><br> При формировании документа HTML может потребоваться ввести символы, которые воспринимаются браузером как служебные. Например, нельзя использовать символы < и > для обозначения знаков «меньше» и «больше», т. к. они интерпретируются как символы тэгов. Кавычки (") и амперсанд (&) также используются в языке HTML для служебных целей. Кроме того, все символы, которые можно набрать при нажатых клавишах управления, отличных от <Shift>, могут не воспроизводиться при просмотре документа, поскольку они зарезервированы. Если все же возникнет необходимость вставить в текст зарезервированные символы, то вместо них следует использовать их буквенные эквиваленты или коды ASCII. В качестве буквенного эквивалента используются соответствующие сокращения.<br> Буквенный эквивалент имеет формат:<br> <br> &буквенный эквивалент;<br> <br> Например, < обозначает символ < (less then, меньше чем). <br> Цифровой эквивалент имеет формат:<br> <br> &#код_АЗС11;<br> <br> Например, символ < можно вставить в документ как <. <br> Таким образом, эквиваленты заключаются между символами & и точкой с запятой. При этом в случае цифрового эквивалента перед ASCII-кодом символа следует поставить символ #. Ниже представлена таблица эквивалентов для некоторых часто употребляемых зарезервированных символов. Данная таблица была сформирована как НТМ L-документ. Приведем его содержание в качестве примера использования специальных и зарезервированных символов.<br> <HTML><br> <НЕАD><Т1ТLЕ>Специальные символы</Т1ТLЕ></НЕАD> <br> <Н2><br> <SAMP><br> Симв.Код Эквивалент<ВR> <HR><br> "    34 quote<BR><br> &&f160; &I160; 38 amp<BR><br> <    60 lt<BR><br> >  &I160; 62 gt<BR><br>  - &S160; 4П60- 160 nbsp<BR><br> &f 162; S#160;   162 cent<BR><br> £   S#160; 163 pound<BR><br> § &016Q; {,1160; 167 sect<BR><br> ©   S#160; 169 copy<BR><br> ®   &I160; 174 reg<BR><br> ±   4#160; 177 plusmn<BR><br> 81181;     181 micro<BR><br> &I182;     182 para<BR><br> & # 1 8 8 ;     188 frac!4<BR><br> ½     189 frac!2<BR><br> 5#190;   & # 1 6 0 ; 190 frac34<BR><br> Æ     198 AElig<BR><br> Ø    ,- 216 Oslash<BR><br> æ s#160;   230 aelig<BR><br> ÷     247 divide<BR><br> </Н2> <br> </HTML> <br><br> <h1>Списки</h1>Списки<br><br> Довольно часто требуется разместить на странице списки (перечни элементов). Списки бывают упорядоченными (по алфавиту или по возрастанию/убыванию номера) и неупорядоченными. При отображении списков браузер выделяет их отступом от края страницы. Кроме того, списки могут быть вложенными.<br> Упорядоченные списки задаются тэгом , а неупорядоченные — тэгом . Оба эти тэга парные, т. е. контейнерные.<br> Для упорядоченных списков можно выбрать способ индексации. Это делается с помощью атрибута TYPE с аргументами: 1 (арабские цифры), А (прописные буквы), а (строчные буквы), i (римские цифры). Можно задать номер, с которого начинается нумерация элементов списка. Для этого служит атрибут START внутри тэга .<br> Перед элементами списков следует поставить тэг <LI>, чтобы индексация происходила автоматически. В этом тэге можно использовать и вышеописанный атрибут TYPE.<br> Приведем примеры, показывающие различные способы создания списков:<br> <HTML><br> <head> <link rel="canonical" href="https://www.e-lave.ru//glava-1.htm"/> <TITLE>Cписки

    <Н2>Списки
  • Это - упорядоченный список.Начальный номер - 5


    1. Элемент
    2. Элемент
    3. Элемент
    4. Элемент

      Это - упорядоченный список.Нумерация римскими цифрами


      1. Элемент
      2. Элемент
      3. Элемент
      4. Элемент

        <Р>Это - неупорядоченный список. Здесь используются различные вводные маркеры

      5. Элемент
      6. Элемент
      7. Элемент
      8. Элемент



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


        Ссылки в пределах одного документа

        Ссылки в пределах одного документа

        Иногда оказывается полезным организовать ссылки на разделы одного и того же документа. Например, на своей странице вы размещаете статью объемом в несколько десятков страниц как единый HTML-документ. Скорее всего, вам захочется сделать ссылки на предыдущие или последующие разделы этого документа. Речь идет о ссылках не на другие HTML-документы, а на определенные места того же самого документа. Такие ссылки еще называют закладками. Для них нужны две вещи: якорь и собственно ссылка. Якорь определяет место в документе, к которому происходит переход по ссылке. Ссылка использует имя якоря вместо имени (адреса) файла.
        Формат якоря:
        <А NAМЕ="имя_якоря"> текст_на_экране
        Формат ссылки:
        <А HREF"#имя_якоря"> текст_на_котором_щелкать
        Ниже приводятся программа, демонстрирующая применение ссылок в пределах одного документа, и вид этого документа в окне браузера. Мы используем ссылки при создании оглавления документа, а также ссылки из текста одних глав на другие главы.

        Ccылки в пределах одного документа
        <ВОDУ>Здесь используются текстовые ссылки на разделы в пределах одного и того же документа. При щелчке на ссылке окно браузера будет прокручиваться до тех пор, пока не появится соответствующий ссылке якорь.
        <Р>
        <Н2>Содержание
        <Р><Р><А HREF="#Глава1">Глава1 . Основы HTML

        Глава2 . Примеры программ
        <Н2><А NАМЕ="Глава1">Глава1 . Основы языка HTML
        В этой главе мы собираемся рассмотреть основные элементы языка HTML. На языке HTML создаются документы, которые могут быть опубликованы в Интернете. После изучения основных конструкций языка мы подробно рассмотрим примеры программ (<А HREF="#Глава2">см. главу 2) .
        <Р>
        <Н2><А NАМЕ="Глава2">Глава 2 . Примеры программ
        Здесь мы рассмотрим примеры программ с использованием элементов языка, которым посвящена <А HREF="#Глава1 ">Глава1 .
        Прежде всего рассмотрим применение текстовых ссылок.



        Ссылки

        Ссылки

        Ссылки (или гиперссылки) позволяют щелчком кнопки мыши на выделенном тексте или изображении перейти к другому файлу или фрагменту страницы. Ссылки применяются в большинстве существующих страниц. Они могут быть текстовыми и графическими. Текстовые ссылки представляют собой выделенное слово или целую фразу. Выделение ссылки производится цветом или подчеркиванием, в зависимости от настройки браузера.
        В языке HTML структуры текстовых и графических ссылок подобны друг другу. Все они задаются тэгом <А HREF>, которому соответствует закрывающий тэг . В ссылке сначала указывается имя файла, на который она ссылается, а затем текст или имя графического файла, содержащего изображение ссылки. Кроме простых графических ссылок, можно создать так называемую графическую карту ссылок: картинку с «горячими областями», щелчок на которых приводит к срабатыванию соответствующих ссылок.


        Стандартное окно ввода данных вызываемое методом prompt ()

        Рисунок 674. Стандартное окно ввода данных, вызываемое методом prompt ()

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


        Стандартные логические стили

        Стандартные логические стили

        Для выбора размера шрифта можно использовать тэги так называемых логических стилей. Их всего шесть и обычно они используются для определения заголовков различного уровня. При переходе от первого стиля к шестому постепенно уменьшаются размер и толщина букв шрифта. Тэги логических стилей записываются как <Н1>, <Н2>,..., <Н6>.Каждый из них имеет соответствующий закрывающий тэг. Например, тэгу <Н1> соответствует закрывающий тэг . Например, запись
        <Н1>Заголовок 1-го уровня

        задает вывод текста Заголовок 1-го уровня шрифтом, соответствующим первому логическому стилю.
        Заметим, что логический стиль определяет стиль текста сообразно настройкам браузера. При этом текст со стилем <Н2> всегда будет «меньше», чем со стилем <Н1>, если, конечно, автор страницы не переопределил его по своему усмотрению. Дело в том, что вы имеете возможность переопределить установки по умолчанию. Для этого используются средства каскадных таблиц стилей (CSS).
        Следующая программа демонстрирует использование тэгов логических стилей:

        Основные элементы HTML

        <Н1>Заголовок 1-го уровня
        <Н2>Заголовок 2-го уровня
        <НЗ>Заголовок 3-го уровня уровня
        <Н4>3аголовок 4-го уровня
        <Н5>3аголовок 5-го уровня
        <Нб>Заголовок 6-го уровня
        <Н7>Заголовок 7-го уровня


        Тэги заголовков <Н1>...<Н7>
        Чем больше номер, тем мельче заголовок

        Статические фильтры

        Статические фильтры

        Фильтры — это эффекты изменения внешнего вида графики и текста на странице. С помощью фильтров вы можете отражать тексты и графику, создавать эффект движения и другие, как это делается в графических редакторах. Другими словами, фильтр — это трансформация исходного изображения по определенным правилам (алгоритмам). Существуют статические и динамические фильтры. Статические фильтры просто изменяют внешний вид элемента, оставляя его неподвижным. Динамические фильтры позволяют изменять графический элемент со скоростью, задаваемой пользователем. Рассмотрим сначала статические фильтры.
        Статический фильтр можно задать как свойство в таблице стилей, используя запись вида:
        filter: название_фильтра
        или, при наличии параметров, такую запись:
        filter : название_фильтра (параметр 1 , параметр2 , . . . , параметры)
        В языке HTML (версии 4) имеется 14 статических фильтров. Перечислим некоторые из них, используемые без параметров и чаще других:
      10. blur — создает эффект размытости;
      11. fliph — создает горизонтальное отражение картинки или текста;
      12. flipv — создает вертикальное отражение картинки или текста;
      13. Wave — создает «волнистое» искажение картинки или текста;
      14. Хгау — показывает только контур объекта (как бы в Х-лучах, т. е. «рентгеновское изображение»).
      15. Ниже приводится текст программы, которая выводит графический файл и текст сначала без фильтра, а затем с фильтрами flipv, fliph и blur. Результат работы этой программы показан на рисунке. Обратите внимание, что фильтр blur, примененный к тексту, создает эффект трехмерности, т. е. текст как бы отбрасывает тень.

        <НЕАD>Фильтры
        Р {position:absolute;top:0;left:190;font-size:80}



        STYLE1="position:absolute;top:120;left:10;width:150;
        height:100,-filter:flipv" SRC="world.gif">
        STYLE1="position:absolute;top:2 30;left:10;width:150;
        height:100;filter:fliph" SRC="world.gif">
        STYLE1="position:absolute;top:340;left:10;width:150;
        height:100;filter:blur" SRC="world.gif">
        <Р>Фильтр

        Фильтр flip"

        Фильтр fliph

        Фильтр blur




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

        Рисунок 664. Стили заголовков первого и второго уровней заданы атрибутами тэга

        Стили заголовков первого и второго уровней заданы атрибутами тэга <STYLE1> Можно определить стиль для тэга BODY. Тогда весь текст, находящийся между тэгами и , будет автоматически отформатирован в соответствии с перечисленными свойствами.
        Если мы хотим задать один и тот же стиль сразу для нескольких тэгов, то перед определением стиля (всего того, что заключено в фигурные скобки) можно указать перечень тэгов (без угловых скобок), разделенных запятыми. В следующем примере задается одинаковый стиль для заголовков первого и второго уровней.



        HI, H2 (Font-size:48pt;Color:RED}



        <Н1>Это стиль HI. Цвет - красный
        <Н2>Это стиль Н2, такой же, как и HI. Цвет - красный
        Это - обычный стиль по умолчанию


        Мы можем создать таблицу стилей, закрепив за ней имя. Это имя задается как обычное имя, но с точкой в качестве первого символа. Тогда в тэгах мы можем обращаться к этой таблице по ее имени, используя атрибут СLASS=имя_стиля, где имя стиля употребляется уже без точки.
        Например, можно задать стиль так:

        mystyle (color:black;font-family:Aria1}

        А стиль заголовка второго уровня можно задать где-нибудь в тексте программы так:
        <Н2 CLASS=mystyle>
        Рассмотрим пример, создающий эффект, который без задания стиля был бы достижим только с помощью графики. Мы накладываем тексты друг на друга. Эта возможность далее будет использована для создания эффекта объемного текста (так называемого ЗD-эффекта). Кроме того, возможность наложения (частичного перекрытия) фрагментов страницы часто используется в дизайне реальных страниц. Вданном примере применяется тэг
        для выделения фрагмента HTML-документа. Обратите внимание, как внутри определения стиля тэга BODY определяются другие стили с именами тень, основа, слой 1 и слой2. Это и есть то, что понимается под каскадной таблицей стилей.


        Пример CSS
        BODY {color: black; font-size:16px; font-family: Arial}
        .тень {color: #DBDBDB; text-align:right; weight: medium; margin-top: ЗОрх;
        font-size:27Opx;1ine-height: 270px;
        font-family: Times)
        .основа (color: red; weight: 900; margin-top: —230px; font-size:220px;
        line-height: 250px; font-family: Times)
        . слой1(color: black; margin-top: ~130px; weight: medium; ont-size:65px;
        line-height: 65px; font-family: Arial}
        .слой2 {color: green; margin-top: ЗОрх; weight: medium; font-size: 35px;
        line-height: 45px; font-family: Arial}



        Пример каскадного стиля




        Мы/DIV>
        Мы/DIV>
        сделали это без всякой графики

        используя только стили текста






        Стили

        Стили

        Существует еще один прием позиционирования элементов и достижения внешних эффектов, которые могут украсить страницу и привлечь к ней внимание читателей. Этот прием основан на определении пользовательских стилей и задании таблицы стилей. Таблица стилей — это просто некоторая структура описания свойств элемента. Не ищите здесь какой-нибудь прямоугольной сетки. Если таблица стилей задана, то различные документы могут просто ссылаться на эту таблицу и не содержать большое количество атрибутов в тэгах форматирования типа <Н1>, и т. п. Каскадные таблицы стилей (CSS, Cascading Style Sheets) содержат описание формата части или всего текста, координаты расположения элементов и другие параметры. Задание стиля обеспечивается с помощью как тэга , так и атрибута STYLE1. Используя стили, можно позиционировать элементы страницы (например, тексты и графику), указав координаты их положения. И это, пожалуй, самое важное, что дают стили. Кроме того, таблицы стилей часто применяются при создании динамических страниц.
        Далее способ изложения несколько изменится по сравнению с тем, который мы применяли ранее. Теперь мы будем больше рассказывать об идеях, иллюстрируя их примерами, и меньше уделять внимание строгости и полноте определений. При этом все примеры программ будут, как и прежде, работоспособными. Даже если вы не в полной мере разберетесь в теории вопроса, то все равно сможете использовать приведенные примеры в своих разработках. Для этого следует просто скопировать тексты или отдельные их фрагменты в ваш собственный HTML-документ и адаптировать к своей конкретной задаче путем коррекции отдельных параметров.
        Тэги и используются внутри тэгов заголовка файла и , а атрибут STYLE1 — в тэге заголовка раздела (<Н1>, <Н2>,...,
        ), а также в тэге , в тэге выделения фрагмента
        и многих других.
        Применение тэга :


        Тэг {свойство 1:значение 1; свойство2: значение; ...;
        свойство N: значение N}


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



        HI {Font-size:48pt;Color:RED}
        Н2 {Font-size:20pt;Color:BLUE}



        <Н1>Это стиль H1. Цвет - красный
        <Н2>Это стиль Н2. Цвет - синий
        Это - обычный стиль по умолчанию


        Мы изменили стили Н1 и Н2, принятые по умолчанию: назначили размеры (48 и 30 пунктов) и цвета (красный и синий) для всех текстов, которые окажутся внутри этих тэгов. Существуют и другие свойства. Например, свойство FONT-FAMILY: HELVETICA задает гарнитуру шрифта HELVETICA.
        Обратите внимание на то, что внутри тэга указываются определения стилей тегов, которые записываются без угловых скобок.

        Свойства объекта event

        Свойства объекта event

      16. aitKey — возвращает состояние клавиши , когда происходит событие;
      17. button — кнопка мыши, вызывающая событие;
      18. canceiBubble — устанавливается для запрета прохождения заданного события вверх по объектной иерархии;
      19. clientx — возвращает горизонтальную координату элемента, исключая обрамление, отступы, полосы прокрутки и т. д.;
      20. clientY — возвращает вертикальную координату элемента, исключая обрамление, отступы, полосы прокрутки и т. д.;
      21. ctrlKey — возвращает состояние клавиши при появлении события;
      22. fromElement — возвращает элемент, с которого ушел указатель мыши, для событий onmouseover и onmouseout;
      23. keyCode — код ASCII нажатой клавиши; позволяет изменить значение, передаваемое объекту;
      24. offsetx — возвращает горизонтальную координату указателя мыши в пикселах относительно содержащего его элемента при возникновении события;
      25. offsetY — возвращает вертикальную координату указателя мыши в пикселах относительно содержащего его элемента при возникновении события;
      26. reason — указывает, что перемещение данных прошло успешно или из-за чего оно прекратилось;
      27. returnvalue — определяет возвращаемое значение для события;
      28. screenx — возвращает горизонтальную координату указателя мыши относительно экрана, когда происходит событие;
      29. screen Y —возвращает вертикальную координату указателя мыши относительно экрана, когда происходит событие;
      30. shiftKey — определяет состояние клавиши при возникновении события;
      31. srcEiement — возвращает элемент, с которого началось прохождение события;
      32. srcFiiter — возвращает фильтр, создавший событие onfiiterchange;
      33. toElement — возвращает элемент, на который «наезжает» курсор мыши, при появлении события omouseover или onmouseout;
      34. type — возвращает название события как строку, без приставки on;
      35. х — возвращает горизонтальную координату указателя мыши относительно либо к позиционированному родительскому элементу, либо к окну;
      36. у — возвращает вертикальную координату указателя мыши относительно либо к позиционированному родительскому элементу, либо к окну.
      37. Свойства объекта event устанавливаются в момент прохождения события и большинство из них доступны только для чтения (их значения нельзя изменить). Однако есть два изменяемых свойства: keyCode и return Value.


        Свойства объекта location

        Свойства объекта location

      38. href — URL-адрес в виде строки;
      39. hash — строка, следующая в URL за символом #;
      40. host — часть URL ("хост:порт");
      41. hostname — часть URL «хост»;
      42. pathname — путь к объекту или файлу, находящийся после третьего слэша;
      43. port — номер порта URL;
      44. protocol — начальная часть, определяющая протокол;
      45. search — строка запроса или данные URL после знака ?.
      46. Например, если вы загрузили страницу с адресом http://www.cityline.spb.ru, то значением location.href будет эта строка.
        Мы можем изменять показываемую страницу, присваивая свойству href новое значение. Например:
        window.location.href="http://www.rambler.ru"

        Свойства объекта navigator

        Свойства объекта navigator

      47. appCodeName — название кода браузера;
      48. appName — название браузера;
      49. appVerston — версия браузера;
      50. cookieEnabied — определяет возможность создания в браузере элементов cookies на стороне клиента;
      51. userAcjent — название браузера, посылаемое с помощью HTTP-протокола.




      52. Свойства объекта screen

        Свойства объекта screen

      53. width — возвращает разрешение по ширине экрана пользователя (в пикселах);
      54. height — возвращает разрешение по высоте экрана пользователя (в пикселах);
      55. bufferDepth — задает количество бит на пиксел браузера;
      56. colorDepth — возвращает информацию, позволяющую решить, как использовать цвета на экране;
      57. updateinterval — возвращает или устанавливает интервал времени смены экрана пользователя.




      58. Свойства объекта TextRange

        Свойства объекта TextRange

      59. htmlText — возвращает содержимое TextRange как текст и код HTML;
      60. text — простой текст, находящийся внутри элемента TextRange или тэга




      61. Таблицы стилей в отдельных файлах

        Таблицы стилей в отдельных файлах

        При использовании тэга требуется вставлять таблицу стилей в каждый документ. Это может показаться довольно неэкономным как с точки зрения объема файлов, так и с точки зрения времени, необходимого для разработки страницы. Однако есть способ автоматического применения таблицы стилей, сохраненной в отдельном файле. Имя этого файла должно иметь расширение ess. Для применения стилей, описанных в этом файле, к данному документу используется специальная инструкция, которую следует вставить между тэгами и . Вот формат этой инструкции:
        @ import URL ("адрес_файла_таблицы_стилей")

        Например:
        @ import URL ( "http: //abcd/xyz/style.css")
        (здесь приведен вымышленный адрес файла описания стилей). Другой способ использования внешних таблиц стилей основан на применении тэга внутри тэга . Например:
        [ НREF="адрес_файла__таблицы_стилей"
        TITLE="Style"



        Таблицы

        Таблицы

        Довольно часто на Web-страницах встречаются таблицы. Простейший пример табличной организации данных — прайс-лист. Однако таблицы можно использовать просто как способ форматирования текста, поскольку таблица в HTML-документе может не содержать всех или некоторых разграничительных линий (сетки). Заметим, что в большинстве случаев элементы текста позиционируются как табличные.
        Идея использования таблиц в качестве средства позиционирования проста. Вы мысленно разбиваете окно на ячейки (клетки) и решаете, какой элемент страницы в какую клетку поместить, — это хороший способ обойти «естественное» расположение элементов друг за другом, которое осуществляет браузер по умолчанию. В разделе 10.6 будет рассмотрен более «свободный» способ позиционирования элементов, позволяющий помещать элементы в любое место окна браузера. Но на практике, как правило, для позиционирования элементов вполне достаточно использовать простую схему таблицы.
        Таблица представляет собой особую часть документа HTML. Данные в ней организованы в виде прямоугольной сетки, которая состоит из вертикальных столбцов (колонок) и горизонтальных строк (рядов). Каждая клетка таблицы называется ячейкой. Ячейки могут содержать текст, графику и даже другую таблицу.
        Таблицы состоят из трех основных частей: названия таблицы, заголовков столбцов и ячеек. Таблица заполняется слева направо, ячейка за ячейкой, начиная с левого верхнего угла и заканчивая правым нижним углом. Каждая ячейка должна быть заполнена (для создания пустых ячеек используются пробелы).
        Описание таблицы в документе HTML начинается с тэга и заканчивается тэгом
        . Если вы хотите, чтобы таблица имела видимую рамку (границы), используйте атрибут BORDER, например:



        Атрибут BORDER может принимать аргумент (число), определяющий ширину рамки, например:



        Для задания названия таблицы используется тэг

        Каждый ряд ячеек начинается с тэга и заканчивается тэгом . Если ряд должен содержать заголовки столбцов таблицы, то используются тэги <ТН> и . Если в ячейках должны размещаться данные, то используются тэги .
        Тэги заголовков и данных должны располагаться между тэгами рядов и . Проще говоря, вы сначала определяете таблицу (тэг
        с атрибутом выравнивания ALIGN, который может принимать значения ТОР или BOTTOM (расположение названия вверху или внизу таблицы соответственно), например:

        Моя таблица
        и
        ), а затем внутри этого определения задаете строки (тэг ) и содержимое ячеек (тэг используется тэг <ТН>, а при создании строки данных — тэг
        — для данных, тэг <ТН> — для названий заголовков столбцов).
        Приведем пример описания простой таблицы, встроенной в некоторый текст. Обратите внимание на порядок заполнения ячеек таблицы. Сначала определяется строка заголовков столбцов таблицы, затем аналогичным образом создаются строки данных путем указания того, какие данные должны располагаться в ячейках таблицы. Строка заголовков столбцов задается так же, как и строка данных. Отличие состоит лишь втом, что при создании строки заголовков внутри тэга
        .

        <НЕАD> <ТIТLЕ>Таблицы

        <Н2>Основные элементы таблиц

        Ниже приведен пример простой таблицы



        <ТН>Имя <ТН>Должность <ТН>Оклад


        <ТD>Иван <ТD>Директор <ТD>1000
        <ТD>Петр <ТD>Бухгалтер <ТD>800
        <ТD>Федор <ТD>Рабочий <ТD>50

        Cпиcoк сотрудников




        Текст обтекает картинку справа

        Рисунок 657. Текст обтекает картинку справа

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


        Текст заданного формата

        Текст заданного формата

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


        Управление шрифтом

        Управление шрифтом

        Кроме использования стандартных размеров и начертаний (гарнитуры) шрифтов, можно определять шрифты для каждого текстового фрагмента с помощью специальных тэгов. Самый простой способ — использование так называемых физических стилей:
        Стиль Тэг
        Полужирный (Bold) <В>
        Курсив (Italic)
        Подчеркнутый (Underscore)
        Вычеркнутый (Strike )
        Пишущая машинка (Typewriter)
        Мерцающий (только для браузера Netscape Navigator)
        Для каждого тэга физического стиля существует соответствующий закрывающий тэг, который отменяет дальнейшее применение стиля. Например, для тэга закрывающим тэгом является .
        Ниже приведен пример программы и внешний вид различных физических стилей:

        <НЕАD><ТIТLЕ>Физические стили

        <В>Полужирный
        Курсив
        Подчеркнутый
        Вычеркнутый
        <ТТ>Пишущая машинка
        <ВХ1>Полужирный курсив
        <ВХ1><и>Полужирный курсив подчеркнутый



        URLадреса ссылок

        URL-адреса ссылок

        В рассмотренных выше примерах в качестве адреса ссылки использовалось имя файла. В общем случае можно применять URL-адрес (Uniform Resource Locator, Унифицированный указатель ресурса). Формат URL-адреса включает: тип сетевой службы (протокол связи), адрес сервера, путь поиска и имя файла. Ниже перечислены URL наиболее популярных служб Интернета:
        Служба в Интернете URL-адрес
        World Wide Web http://
        FTP ftp://
        Mail mailto:
        Gopher Gopher://
        Телеконференции UseNet news:
        Если вы указываете адрес, начинающийся с http, тем самым вы обращаетесь к ресурсам, доступ к которым осуществляется по протоколу HTTP(HyperText Transfer Protocol, Протокол передачи гипертекста). Этот протокол используется в качестве основного в World Wide Web (WWW) при передаче информации, находящейся в HTML-документах.
        Префикс адреса ftp означает, что следует использовать протокол передачи файлов FTP (File Transfer Protocol). Этот протокол используется при передаче файлов-программ, имеющих расширение ехе. Он может использоваться при перемещении любых файлов с одного компьютера на другой. В частности, при перекачке файлов вашей страницы на сервер используется именно этот протокол. Протокол FTP обеспечивает высокую надежность передачи файлов.К примеру, если еще можно вытерпеть потерю до 10% обычной текстовой информации, то при передаче программы вообще не допускается потеря — неточно переданная программа просто не будет работать.
        Если перед адресом ссылки указывается mailto, это означает, что следует использовать протокол передачи сообщений по электронной почте.
        Gopher — служба (значит, и протокол), предназначенная в первую очередь для работы неграфических браузеров. Она предоставляет систему доступа к информации, основанную на меню.
        News — служба обеспечения телеконференций, это система типа доски объявлений, на которую вы можете поместить свое сообщение и прочитать то, что туда послали другие участники телеконференции.
        Ниже приведены примеры ссылок с применением URL-адресов:
        <А HREF="ftp://ftp.admiral.ru/PUB/index.htm);т">Бесплатный доступ
        <А HREF="mailto:dunaev@mail.admiral.ru">0тправить почту
        Пути поиска могут быть абсолютными и относительными. Абсолютный путь описывает местоположение файла, начиная с самого высокого уровня, и включает имена всех каталогов, ведущих к файлу. Ошибка в записи абсолютного пути (адреса) файла приводит к тому, что файл не будет найден. Относительный путь (адрес) описывает местоположение файла относительно места расположения текущего документа. Так, если вы указываете просто имя файла myfile.htm, это означает, что вы указываете относительный адрес. В данном случае браузер будет искать его в том же каталоге, где находится текущий документ. Если перед именем файла поставить две точки и слэш (../), например, ../myfile.htm, то браузер будет искать файл в каталоге, находящемся на один уровень выше, чем тот, в котором находится текущий документ. Аналогично, если перед именем файла поставить ../../ (например, ../../myfile.htm), то браузер будет искать файл в каталоге на два уровня выше, чем текущий.
        При создании ссылок вы можете указывать не только на конкретные документы и программы (т. е. конкретные файлы, используя путь к ним), но и на папки (каталоги). Другими словами, адрес — это описание места расположения ресурса (единицы хранения информации). Он может быть точным или «приблизительным» (неполным). Вы можете ссылаться на папку, HTML-документ, документ, созданный каким-либо приложением (например MS Word, MS Excel), или просто на текстовый файл с расширением txt. Наконец, можно сослаться на файл программы с расширением ехе. Однако в последнем случае (по крайней мере, в Internet Explorer) сработает защита вашего компьютера. Появится окно с предупреждением и предложением возможных вариантов: запустить файл программы или сохранить его на диске — предохранительная мера против возможных вирусов. В этом случае вы решаете сами, что делать. Можно сразу запустить файл программы, а можно сохранить его на локальном диске, проверить с помощью антивирусной программы и только потом запустить, или вылечить, или уничтожить.


        Варианты списков

        Рисунок 653. Варианты списков


        Варианты списков




        Вставка Flashмультфильма в Webстраницу

        Вставка Flash-мультфильма в Web-страницу

        Flash-мультфильм содержится в SFW-файле, т. е. в файле с расширением swf, созданном в программе Macromedia Flash. Чтобы вставить его в Web-страницу (в соответствующий ей HTML-документ), надо написать несколько строк HTML-кода. А именно: нужно вставить объект, который будет воспроизводить Flash-файл. Flash-файл может содержать мультимедийный документ (анимацию, векторную и растровую графику, звук, интерактивные элементы управления). В частности, вы можете создать статическую картинку, содержащую много элементов (например, большой чертеж). Для этого сохраните ее в векторном, экономном SWF-формате и втавьте в свой HTML-документ. Более того, Flash-мультфильм может почти полностью определять и представлять содержание вашей Web-страницы, оставляя HTML-документу лишь роль контейнера.
        В Flash имеется специальная команда для создания HTML-документа со всеми необходимыми тэгами, обеспечивающими проигрывание SWF-файла, — File>Publish (Файл>Публикация). Этот вопрос мы рассматривали в главе 9. Однако нередко требуется вставить готовый мультфильм в уже имеющуюся Web-страницу. В таком случае удобнее скорректировать HTML-документ вручную, с помощью обыкновенного текстового редактора.
        Итак, чтобы вставить Flash-мультфильм в HTML-документ, необходимо написать в этом документе несколько строк, задающих объект, который будет воспроизводить мультфильм. Это — тэг с соответствующими параметрами. Тэг является контейнером, т. е. тэгом, который содержит другие тэги, а именно — тэги, задающие параметры.
        Главный параметр тэга — classid. Он указывает на Flash-проигрыватель (элемент управления ActiveX). Параметр codebase указывает, где в сети взять Flash-проигрыватель, если он не установлен на вашем компьютере. Тэг вставлен ради Netscape-браузера. Другие параметры объекта записываются в тэге . Отметим лишь некоторые из них, которые в большинстве случаев оказываются достаточными.
        Параметр указывает на имя SWF-файла с Flash-мультфильмом. Параметры WIDTH и HEIGHT (ширина и высота) определяют размеры прямоугольника, в котором будет размещаться ваш Flash-мультфильм. Имейте в виду, что мультфильм может обрезан, а также ему может быть отведено слишком много места на странице. Параметр <РАRАМ NAME=wmode VALUE=transparent> определяет, каким будет фон вашего ролика. В частности, значение transparent задает прозрачность фона. Это значение наиболее часто используется при вставках мультфильмов в Web-страницы.
        Возможные значения параметров лучше всего изучить по книгам или справкам к программе Flash. Для точного позиционирования Flash-ролика на странице можно воспользоваться контейнером с заданием координат в атрибуте STYLE1. Например, в Internet Explorer для этого подходит контейнерный тэг
        .
        В качестве примера приведем вставку Flash-мультфильма, представляющего собой калькулятор. Файл этого мультфильма calculator.swf можно взять из коллекции примеров программы Flash 5.0. HTML-код имеет следующий вид:

        codebase="http: //down load. macromedia .com
        /pub /shock wave /cabs/flash/ swflash.cab#version=6, 0, 0, 0"
        WIDTH="430" HEIGHT="450" id="Flashl" ALIGN="">





        wmode=transparent bgcolor=#FFFFFF
        WIDTH="430" HEIGHT="450" NAME="Flashl " ALIGN=""
        TYPE="application/x-shockwave-flash" PLUGINSPAGE=
        "http:// www. macromedia . com/go/getf lashplayer">


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


        Вставка графических изображений

        Вставка графических изображений

        Вставка на страницу графического изображения из файла графического формата производится с помощью тэга (от англ, image — изображение) с указанием адреса файла в качестве аргумента атрибута SRC:

        Адрес графического файла — этолибо URL-адрес, либо имя файла, возможно, с указанием пути. Например, для показа графического файла logotip.jpg следует написать тэг

        Для увеличения скорости передачи графического изображения в тэге можно использовать атрибут (дополнительный параметр) LOWSRC, который принимает в качестве аргумента адрес графического файла. Вы можете создать два графических файла: один (например, пусть это файл logotip.jpg) содержит картинку, полученную с высоким разрешением, а другой (например, logotip.gif) — картинку, полученную с низким разрешением. Тогда тэг



        предпишет браузеру сначала загрузить файл logotip.gif, а затем по мере приема заменить его файлом logotip.jpg.
        Другой способ ускорения загрузки графики заключается в задании размеров прямоугольной области, в которой будет размещено графическое изображение, с помощью атрибутов WIDTH (ширина) и HEIGHT (высота), измеряемых в пикселах. Если указать эти атрибуты, то браузер сначала выделит место под графику, подготовит макет документа, отобразит текст и только потом загрузит графику. Заметим, что браузер сжимает или растягивает изображение, встраивая его в рамки указанного размера. Пример указания размеров изображения:

        Графика обычно используется вместе с текстом, поэтому возникает задача выравнивания текста и графического изображения. Эта задача решается с помощью атрибута ALIGN тэга с применением различных аргументов. Например, мы можем пожелать, чтобы текст обтекал картинку справа или слева. Обычно картинка встраивается вплотную с текстом, что может быть некрасиво. Во избежание этого, можно задать пустые поля вокруг иллюстрации. Поля создаются с помощью атрибутов VSРАСЕ для верхнего и нижнего полей и НSPACE для боковых полей в тэге . Аргументы этих атрибутов указываются в виде чисел, определяющих размеры полей в пикселах. Для отмены обтекания графики текстом служит тэг
        .
        Следующий тэг задает обтекание графики из файла logotip.jpg справа (картинка будет находиться слева от текста):

        Если требуется расположить картинку справа от текста, то нужно атрибуту ALIGN присвоить аргумент RIGHT:

        Чтобы задать поля вокруг картинки, надо написать тэг вида:

        Здесь числа 20 и 10 определяют размеры полей.
        Рассмотрим пример совместного использования графики и текстов. Откройте Блокнот (текстовый редактор Notepad) Windows. Напишите в нем HTML-код с использованием рассмотренных выше тэгов. Ниже приводится программа, выводящая некоторый текст и графику. В качестве графического файла можно использовать любой из имеющихся у вас файлов. Здесь используется файл logotip.gif.


        Упражнение 1



        <Н1>Текст обтекает графику справа
        Это - пример совместного использования текста и графики.
        Текст программы HTML можно писать в любом текстовом редакторе . При этом используются тэги разметки текста .

        Этот текст выводится с нового абзаца. Чтобы сделать это, мы использовали специальный тэг.

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


        Webстраница с учебными примерами по HTML и JavaScript (www admiral ru/~dunaev)

        Рисунок 643. Web-страница с учебными примерами по HTML и JavaScript (www.admiral.ru/~dunaev)

        Webстраница с учебными примерами по HTML и JavaScript (www admiral ru/~dunaev) Здесь IMG — название тэга, SRC — атрибут, а «картинкa.jpg» — аргумент атрибута SRC.
        Итак, если мы решили написать HTML-программу, то должны включить в нее Два тэга:

        .... (здесь будут другие тэги программы)

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


        ... (здесь будет заголовок)


        ... (здесь будут тэги тела программы)



        Заметим, что писать каждый тэг с новой строки или делать отступы совсем не обязательно, однако благодаря этому программа читается лучше.
        Между тэгами и , обрамляющими заголовок программы (HTML-файла), напишем еще два тэга: и </TlTLE>. С помощью этих тэгов обрамляется текст, который помешается в заголовок браузера, т. е. в самую верхнюю полоску его окна. Пусть текст заголовка будет, например, таким: Основные элементы HTML. Тогда программа примет следующий вид:<br> <br> <HTML><br> <head> <link rel="canonical" href="https://www.e-lave.ru//glava-1.htm"/> <TITLE> Основные элементы HTML

        ... (здесь будут расположены тэги тела программы)



        Заметьте, что тэг вложен в тэг <head> <link rel="canonical" href="https://www.e-lave.ru//glava-1.htm"/>, а тот вложен в тэг<НТМL>. В теле нашей программы, т. е. между тэгами <BODY> и </BODY>, напишем какой-нибудь текст, чтобы программа выглядела следующим образом:<br> <HTML><br> <head> <link rel="canonical" href="https://www.e-lave.ru//glava-1.htm"/> <TITLE> Основные элементы HTML

        Документы HTML состоят из заголовка и тела. В теле документа могут находиться тексты, рисунки и ссылки на другие файлы.



        Раскроем окно текстового редактора Блокнот (Notepad) Windows и напишем в нем текст нашей первой HTML-программы.

        

            Реклама: Создание - PR - Софт