HTML, XHTML и CSS на 100%

Игорь Квинт, 2010

Вы хотите создать собственный сайт на просторах Интернета? Причем желательно, чтобы он был красивым, удобным и «неглючным»? Казалось бы, чего проще: существует столько программ – конструкторов сайтов. Однако чтобы создать действительно профессиональный сайт, подобных утилит недостаточно. Вам потребуется знание языков программирования HTML и XHTML, а также каскадных таблиц стилей CSS. И в этом случае книга, которую вы держите в руках, – именно то, что вам необходимо. С ее помощью вы научитесь создавать красиво оформленные, быстрые и профессиональные сайты. С этой книгой ваша страничка никогда не останется незамеченной в Сети!

Оглавление

Глава 2

Ввод и оформление текста

2.1. Создание заголовков

2.2. Создание абзацев

2.3. Создание обрывов строк

2.4. Создание списков

2.5. Ссылки

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

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

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

2.1. Создание заголовков

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

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

Заголовки создаются с помощью элементов H1, H2, H3, H4, H5, H6. По умолчанию заголовок самого верхнего уровня выделяется самым крупным шрифтом, и чем ниже уровень заголовка, тем меньше шрифт.

Для заголовка любого уровня можно задать выравнивание по горизонтали. Это делается с помощью атрибута align.

Значения атрибута align:

• left — по левому краю;

• right — по правому краю;

• center — по центру;

• justify — по ширине (только для заголовков длиннее строки).

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

В листинге 2.1 представлен пример кода для создания разных типов заголовков и для их различного выравнивания.

Листинг 2.1. Заголовки

<html>

<head>

<title>Создание заголовков</title>

</head>

<body>

<h1 align="center">Заголовок 1 уровня</h1>

<h2 align="justify">Заголовок 2 уровня</h2>

<h3 align="left">Заголовок 3 уровня</h3>

<h4 align="right">Заголовок 4 уровня</h4>

<h5>Заголовок 5 уровня</h5>

<h6 title="Заголовок 6 уровня">Заголовок 6 уровня</h6>

</body>

</html>

На рис. 2.1 показан результат обработки листинга 2.1 браузером.

Рис. 2.1. Вид заголовков

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

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

Для управления другими моментами отображения заголовков, например цветом или шрифтом, используется CSS. Поэтому в элементах H1-H6 разрешено использовать атрибуты style и class, которые подключают стили.

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

2.2. Создание абзацев

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

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

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

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

• center — выравнивание по центру. При таком виде выравнивания текст прижимается к центру экрана, образуя рваные края. Не стоит использовать подобное выравнивание для текста большого объема, потому что его будет неудобно читать.

• left — выравнивание по левому краю. Текст прижимается к левому краю окна браузера, а справа остаются неровные края. Это самый обычный вид выравнивания, текст такого вида достаточно легок для чтения.

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

• justify — выравнивание по ширине. Пробелы между словами автоматически регулируются таким образом, чтобы текст прижимался к левому и правому краям окна. Этот вид выравнивания является наилучшим для больших объемов текста, отсутствие рваных краев слева и справа придает ему аккуратный вид.

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

В листинге 2.2 приведен пример создания абзацев с разным выравниванием и всплывающими подсказками.

Листинг 2.2. Создание абзацев

<html>

<head>

<title>Абзацы</title>

</head>

<body>

<p align="center"title="Абзац, выровненный по центру">Это небольшой заголовочный абзац, выровненный по центру</p>

<p align="right"title="Абзац, выровненный по правому краю">Здесь эпиграф</p>

<p align="left"title="Абзац, выровненный по левому краю">Этот абзац с текстом выровнен по левому краю, поэтому края с правого края будут рваными</p>

<p align="justify"title="Абзац, выровненный по ширине">Этот абзац с основным текстом, выровненный по ширине. Края этого абзаца прилегают к краям окна браузера</p>

</body>

</html>

На рис. 2.2 показан результат обработки листинга 2.2, где видно различие между абзацами с разным выравниванием.

Рис. 2.2. Оформление абзацев

Для дальнейшего оформления текста абзацев используют каскадные таблицы стилей, для этого элемент P допускает использование атрибутов style и class.

2.3. Создание обрывов строк

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

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

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

В листинге 2.3 представлен пример кода для принудительного переноса строки.

Листинг 2.3. Обрыв строки

<html>

<head>

<title>Обрыв строки</title>

</head>

<body>

Наша Таня громко плачет,<br />

Уронила в речку мячик.<br />

</body>

</html>

На рис. 2.3 представлен результат обработки браузером кода из листинга 2.3.

Рис. 2.3. Обрыв строки

Из рис. 2.3 видно, что при использовании элемента BR пустая строка после переноса не добавляется.

Есть еще один вариант применения элемента BR. Его используют, когда нужно задать обтекание текстом таблицы, изображения или любого другого плавающего элемента страницы (то есть элемента, для которого задан атрибут align).

Для этого применяют атрибут clear элемента BR. Атрибут может принимать следующие значения:

• all — запрещает обтекание элемента с двух сторон;

• left — запрещает обтекание с левой стороны плавающего объекта, расположенного после элемента BR;

• right — запрещает обтекание с правой стороны плавающего объекта, расположенного после элемента BR;

• none — отменяет свойство.

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

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

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

В листинге 2.4 представлен пример использования элементов NOBR и WBR.

Листинг 2.4. Запрет переноса строки

<html>

<head>

<meta http-equiv="Content-Type"content="text/html; charset=windows-1251"/>

<title>Обрыв строки</title>

</head>

<body>

<nobr>Это очень важная строка, ее ни в коем случае нельзя переносить на другую строку, однако в этом месте <wbr>возможно сделать перенос.</nobr>

</body>

</html>

На рис. 2.4 показано отображение в браузере кода из листинга 2.4.

Рис. 2.4. Запрет переносов

Как видно на рис. 2.4, браузер создал горизонтальную полосу прокрутки и перенес строку в том месте, где было разрешено.

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

2.4. Создание списков

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

Списки — важный инструмент, они применяются для организации и группировки данных. Это может пригодиться при создании карты сайта (то есть его оглавления), описания сложных структур и других подобных объектов.

В HTML можно выделить несколько типов списков:

• маркированный;

• нумерованный;

• список определений.

Они отличаются по типам представления информации.

Маркированный список

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

Для создания списков в HTML предусмотрен элемент UL, требующий наличия закрывающего тега. Пункты списка находятся внутри элемента UL. Каждый пункт начинается с элемента LI.

У элемента UL есть атрибут type, определяющий вид маркера списка. Он может принимать следующие значения:

• circle — создает маркер в виде круга, белого внутри;

• square — создает маркер в виде квадрата;

• disc — создает маркер в виде круга, закрашенного черным цветом.

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

В листинге 2.5 представлен пример создания маркированных списков с разными маркерами.

Листинг 2.5. Маркированные списки

<html

<head>

<title>Списки</title>

<body>

<ul type="circle">

<li>Венера</li>

<li>Земля</li>

<li>Юпитер</li>

<li>Марс</li>

</ul>

<ul compact type="square">

<li>Венера</li>

<li>Земля</li>

<li>Юпитер</li>

<li>Марс</li>

</ul>

<ul compact type="disc">

<li>Венера</li>

<li>Земля</li>

<li>Юпитер</li>

<li>Марс</li>

</ul>

</body>

</html>

Результат обработки кода из листинга 2.5 показан на рис. 2.5. Здесь видно, как выглядят разные маркеры списков.

Рис. 2.5. Маркированные списки

При создании маркированных списков с помощью элемента LI можно задать вид маркера отдельно для каждого пункта списка.

В листинге 2.6 приведен пример создания списка с разными маркерами для различных пунктов.

Листинг 2.6. Список с разными маркерами

<html>

<head>

<title>Списки</title>

<body>

<ul>

<li type="circle">Земля</li>

<li type="circle">Марс</li>

<li type="square">Солнце</li>

<li type="circle">Венера</li>

<li type="disc">Луна</li>

</ul>

</body>

</html>

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

Рис. 2.6. Список с разными маркерами

В примере различные маркеры отмечают объекты разных типов.

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

В HTML есть возможность создать список с графическими маркерами. Для этого нужно вместо элемента LI подставить картинку с желаемым изображением. Элемент UL укажет браузеру, что надо сделать отступ, а с помощью элемента BR можно перенести строку.

В листинге 2.7 представлен пример создания списка с графическими маркерами.

Листинг 2.7. Список с графическими маркерами

<html>

<head>

<title>Списки</title>

<body>

<ul>

<img src="marker.jpg"/>Венера<br />

<img src="marker.jpg"/>Марс<br />

<img src="marker.jpg"/>Земля<br />

</ul>

</body>

</html>

Результат обработки кода из листинга 2.7 показан на рис. 2.7.

Рис. 2.7. Список с графическими маркерами

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

Нумерованный список

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

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

Для создания упорядоченных списков применяется элемент OL, которому требуется наличие закрывающего тега, а все пункты списка находятся внутри этого элемента.

У элемента OL есть атрибут type, который задает формат символов, используемых для нумерации.

Следующие значения атрибута type указывают, что пункты будут нумероваться с помощью:

• A — заглавных букв латинского алфавита;

• a — строчных букв латинского алфавита;

• I — заглавных римских цифр;

• i — строчных римских цифр;

• 1 — арабских цифр.

Вторым атрибутом элемента OL является атрибут start, указывающий, с какого числа начинать нумерацию всего списка.

В листинге 2.8 приведен пример кода для создания упорядоченных списков с разной нумерацией.

Листинг 2.8. Упорядоченные списки

<html>

<head>

<title>Списки</title>

<body>

<ol type="1"start="6">

<li>Достать ключ</li>

<li>Вставить ключ в замочную скважину</li>

<li>Повернуть ключ по часовой стрелке на два оборота</li>

<li>Достать ключ из замка</li>

<li>Открыть дверь</li>

</ol>

<ol type="A">

<li>Достать ключ</li>

<li>Вставить ключ в замочную скважину</li>

<li>Повернуть ключ по часовой стрелке на два оборота</li>

<li>Достать ключ из замка</li>

<li>Открыть дверь</li>

</ol>

<ol type="a">

<li>Достать ключ</li>

<li>Вставить ключ в замочную скважину</li>

<li>Повернуть ключ по часовой стрелке на два оборота</li>

<li>Достать ключ из замка</li>

<li>Открыть дверь</li>

</ol>

<ol type="I">

<li>Достать ключ</li>

<li>Вставить ключ в замочную скважину</li>

<li>Повернуть ключ по часовой стрелке на два оборота</li>

<li>Достать ключ из замка</li>

<li>Открыть дверь</li>

</ol>

<ol type="i">

<li>Достать ключ</li>

<li>Вставить ключ в замочную скважину</li>

<li>Повернуть ключ по часовой стрелке на два оборота</li>

<li>Достать ключ из замка</li>

<li>Открыть дверь</li>

</ol>

</body>

</html>

Фрагмент отображения в браузере кода из листинга 2.8 показан на рис. 2.8.

Рис. 2.8. Упорядоченные списки

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

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

В примере из листинга 2.9 представлен код для создания списка с разными типами нумерации и различным порядком следования элементов.

Листинг 2.9. Список с разными типами нумерации

<html>

<head>

<title>Списки</title>

<body>

<ol type="1">

<li type="1"value="10">Закрой дверь</li>

<li>Сходи в магазин</li>

<li value="1">Открой дверь</li>

<li>Возьми деньги</li>

<li type="I">Иди налево</li>

<li type="I">Потом поверни направо</li>

<li>Увидишь магазин</li>

</ol>

</body>

</html>

Результат обработки листинга 2.9 представлен на рис. 2.9.

Рис. 2.9. Упорядоченный список с разной нумерацией

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

Список определений

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

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

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

Для организации списков определений служит элемент DL — внутри него будут находиться определение и описание термина. У этого элемента нет атрибутов, кроме стандартных style и class, с помощью которых к данному определению можно подключить стили.

Чтобы внести информацию внутрь элемента DL, нужно задать элементы DT и DD. Первый используется для того, чтобы задать определение; у него нет никаких особенных атрибутов.

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

В листинге 2.10 представлен пример создания списков определений.

Листинг 2.10. Списки определений

<html>

<head>

<title>Списки</title>

<body>

<dl>

<dt>Земля</dt>

<dd>Третья планета Солнечной системы</dd>

<dt>Марс</dt>

<dd>Четвертая планета Солнечной системы</dd>

</dl>

</body>

</html>

Результат работы кода из листинга 2.10 показан на рис. 2.10.

Рис. 2.10. Списки определений

На рис. 2.10 видны особенности форматирования списков определений; информацию в таком виде гораздо проще воспринимать.

Создание вложенных списков

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

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

В листинге 2.11 представлен код для создания вложенного списка.

Листинг 2.11. Вложенные списки

<html>

<head>

<title>Списки</title>

<body>

<ol>

<li>

Открой дверь

<ul>

<li>Ключом</li>

<li>Отмычкой</li>

</ul>

</li>

<li>

Зайди в квартиру

<ul>

<li>Тихо шагая</li>

<li>Громко топая</li>

</ul>

</li>

<li>Ложись спать</li>

</ol>

</body>

</html>

На рис. 2.11 можно увидеть, как выглядит вложенный список.

Рис. 2.11. Вложенный список

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

Мы разобрались с большей частью оформления текста, правда, осталось самое главное — то, на чем основан Интернет, — ссылки.

2.5. Ссылки

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

Можно выделить два типа ссылок: внешние и внутренние. Первые связывают страницы в один сайт и помогают передвигаться по нему. Вторые помогают передвигаться в рамках одной страницы.

Внешние ссылки

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

Основой внешних ссылок является URL-адрес объекта, на который вы собираетесь сослаться.

Для создания гиперссылок в HTML служит элемент A, который требует наличия закрывающего тега. Внутри элемента располагается текст, который будет выделен как ссылка. На самом деле, чтобы сообщить человеку, что в каком-то месте сайта у вас расположена ссылка, совершенно не обязательно писать прямым текстом адрес следующей страницы. Язык HTML дает возможность «замаскировать» адрес под текст ссылки. Получается, что у вас отдельно есть текст ссылки, который должен внятно описывать, что пользователь увидит, перейдя по ней, и отдельно находится адрес страницы, на которую будет сделан переход при щелчке кнопкой мыши на ссылке. Между тегами <A> и </A> располагается именно текст ссылки.

Адрес документа для перехода записывается в элементе A в качестве значения атрибута href. Таким образом, перемещение по сайту становится удобным, легким и прозрачным для пользователя. Ему абсолютно все равно, где находится документ, на который указывает ссылка, он видит только текст описания.

В листинге 2.12 представлен пример создания ссылки на HTML-страницу и рисунок.

Листинг 2.12. Создание ссылок

<html>

<head>

<title>Ссылки</title>

<body>

<a href="aboutme.html">Обо мне</a><br />

<a href="myfoto.jpg">Мое фото</a>

</body>

</html>

Пример отображения ссылок в браузере показан на рис. 2.12.

Рис. 2.12. Ссылки

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

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

Что же делать, если нужно организовать быстрое перемещение в рамках одной страницы? Здесь тоже помогут ссылки.

Внутренние ссылки

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

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

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

Затем нужно создать ссылку на эту метку. Ссылка на внутреннюю метку создается так же, как и ссылка на внешний документ, только вместо URL-адреса желаемой страницы надо ввести адрес метки в виде #met1. При этом metl — имя вашей метки.

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

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

Листинг 2.13. Внутренние ссылки

<html>

<head>

<title>Ссылки</title>

<body>

<a name="met2">Это метка для перехода 2</a><br />

<a href="#met1">Щелкните кнопкой мыши для перехода к метке 1</a><br />

<a href="#met2">Щелкните кнопкой мыши для перехода к метке 2</a><br />

<a name="met1">Это метка для перехода 1</a>

</body>

</html>

Представление внутренних ссылок в браузере показано на рис. 2.13.

Рис. 2.13. Внутренние ссылки

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

Внутренние ссылки по своему синтаксису такие же, как и внешние, поэтому атрибуты элемента A применимы для обоих типов.

Общие моменты

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

У элемента A есть два вспомогательных атрибута. Первый — target — указывает на то, в каком окне должен открываться документ, отображающийся при выборе ссылки.

Следующие значения атрибута target указывают, что страница загружается:

• _blanc — в новое окно браузера;

• _parent — во фрейм-родитель;

• _self — в текущее окно;

• _top — в полное окно браузера.

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

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

В листинге 2.14 представлен пример создания ссылок с рассмотренными выше атрибутами.

Листинг 2.14. Ссылки с дополнительными атрибутами

<html>

<head>

<title>Ссылки</title>

<body>

<a href="aboutme.html"target="_blank"title="Перейдя по ссылке, вы сможете узнать обо мне">Обо мне</a>

</body>

</html>

На рис. 2.14 показан пример отображения ссылки со всплывающей подсказкой.

Рис. 2.14. Ссылки с дополнительными атрибутами

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

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

Для создания ссылки-изображения достаточно поместить рисунок внутри элемента A.

В листинге 2.15 показан пример создания ссылки-изображения.

Листинг 2.15. Ссылки-изображения

<html>

<head>

<title>Ссылки</title>

<body>

<a href="mypetfoto.html"target="_blank"title="Пройдя по ссылке, вы сможете увидеть фото моего зверя"><img src="mypetfotomini.jpg"/></a>

</body>

</html>

На рис. 2.15 показано, как браузер отображает ссылки-изображения.

Рис. 2.15. Ссылка-изображение

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

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

Теперь рассмотрим, как можно влиять на внешний вид текста на странице.

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

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

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

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

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

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

Начнем рассмотрение способов форматирования текста с использования логических элементов.

Логические элементы для форматирования

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

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

Элемент ABBR

Элемент ABBR определяет текст как аббревиатуру. С помощью атрибута title можно задать всплывающую подсказку с расшифровкой аббревиатуры. При этом поисковые роботы индексируют именно полный вариант расшифровки, определенный в атрибуте title.

Пример:

<abbr title="Научно-исследовательский институт">НИИ</abbr>

Элемент ACRONYM

Элемент ACRONYM указывает, что текст является акронимом.

Примечание

Акронимы — это некие устоявшиеся сокращения, например СНГ, США и т. п.

Атрибут title позволяет задать расшифровку акронима. Пример:

<acronym>СНГ</acronym>

Элемент CITE

Элемент CITE отмечает небольшую цитату или сноску, взятую из другого источника. Такой текст обычно отображается курсивом.

Пример:

<cite>Здесь указан источник информации</cite>

Элемент CODE

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

Пример:

Зададим функцию <code> func(int a, char b);</code>

Элемент DEL

Элемент DEL помечает текст как удаленный и может использоваться при внесении изменений в документы. У этого элемента есть два атрибута: cite должен содержать URL документа, в котором описаны причины удаления фрагмента, а datetime — дату и время удаления фрагмента в формате ГГГГ-ММ-ДДTчч: мм: ccTZD (аббревиатура от Time Zone region with Daylight Saving Time — регион часового пояса с летним временем). Браузеры такой текст отображают как зачеркнутый.

Пример:

<del cite="whydel.html"datetime="2007-10-06T10:11:45+3.00"> Неактуальный фрагмент</del>

Элемент DFN

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

Пример:

<dfn>Определение</dfn>-описание

Элемент EM

Элемент EM выделяет важные фрагменты текста. Браузер отображает такой текст курсивом.

Пример:

<em>Важно</em>

Элемент INS

Элемент INS отмечает текст как вставку и применяется для выделения изменений, вносимых в документ. У этого элемента есть два атрибута: cite должен содержать URL документа, в котором описаны причины добавления фрагмента, а datetime должен содержать дату и время добавления в формате ГГГГ-ММ-ДДTчч: мм: ссTZD. Браузеры отображают такой текст как подчеркнутый.

Пример:

<ins cite="whyadd.html"datetime="2007-10-06T10:11:45+3.00">Новый фрагмент</ins>

Элемент KBD

Элементом KBD помечают текст, вводимый пользователем с клавиатуры. Браузеры отображают такой текст моноширинным шрифтом.

Пример:

Введите слово <kbd>дом</kbd>

Элемент Q

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

Пример:

Цитата: <q>Как сказал поэт</q>

Элемент SAMP

Элемент SAMP определяет текст как пример и обычно используется для выделения результатов работы программы. Браузер выделяет этот текст моноширинным шрифтом.

Пример:

<samp>Образец</samp>

Элемент STRONG

Элемент STRONG предназначен для постановки акцента на тексте. Браузеры выделяют такой текст полужирным шрифтом.

Пример:

<strong>Очень важный фрагмент</strong>

Элемент VAR

Этот элемент применяется для выделения переменных из программ. Браузер отмечает такой текст курсивом.

Пример:

Введите переменную <var>X</var>

В листинге 2.16 показан код страницы с различным форматированием текста.

Листинг 2.16. Логическое форматирование текста

<html>

<head>

<title>Логические элементы для форматирования</title>

<body>

<abbr title="Научно-исследовательский институт">НИИ</abbr><br />

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

<acronym>СНГ</acronym><br />

<cite>Здесь указан источник информации</cite><br />

Зададим функцию <code>func(int a, char b);</code><br />

<del cite="whydel.html"datetime="2007-10-06T10:11:45+3.00">Неактуальный фрагмент</del><br />

<dfn>Определение</dfn>-описание<br />

<em>Важно</em><br />

<ins cite="whyadd.html"datetime="2007-10-06T10:11:45+3.00">Новый фрагмент</ins><br />

Введите слово <kbd>дом</kbd><br />

Цитата: <q>Как сказал поэт</q><br />

<samp>Образец</samp></br>

<strong>Очень важный фрагмент</strong><br />

Введите переменную <var>X</var><br />

</body>

</html>

Результат обработки браузером кода из листинга 2.16 показан на рис. 2.16.

Рис. 2.16. Логическое форматирование текста

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

Физические элементы для форматирования

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

Элемент B

Элемент B задает полужирное написание шрифта.

Пример:

<b>Полужирный шрифт</b>

Элемент I

Элемент I отображает выделенный текст курсивом.

Пример:

<i>Курсив</i>

Элемент TT

Этот элемент задает моноширинное написание текста.

Пример:

<tt>Моноширинный шрифт</tt>

Элемент U

Элемент U отображает текст подчеркнутым шрифтом.

Пример:

<u>Подчеркнутый</u>

Элемент S

Элемент S зачеркивает текст горизонтальной линией.

Пример:

<s>Зачеркнутый</s>

Элемент STRIKE

Этот элемент также зачеркивает текст горизонтальной линией.

Пример:

<strike>Снова зачеркнутый</strike>

Элемент BIG

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

Примечание

В языке HTML размеры шрифта измеряются в условных единицах от одного до семи. Размером по умолчанию принят третий размер.

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

Пример:

Шрифт <big>побольше <big>Еще больше</big></big>

Элемент SMALL

Элемент SMALL отображает выделенный текст шрифтом на единицу меньшего размера относительно окружающего текста. При вложении элементов шрифт будет уменьшаться на единицу с каждым вложением.

Пример:

Шрифт <small>поменьше</small>

Элемент SUB

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

Пример:

<sub>Подстрочный</sub> шрифт

Элемент SUP

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

Пример:

<sup>Надстрочный</sup> шрифт

Элемент SPAN

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

Пример:

<span style="background-color:#00FFFF">Текст с фоном</span>

В листинге 2.17 представлен код страницы с различным форматированием текста.

Листинг 2.17. Физическое форматирование

<html>

<head>

<title>Элементы физического форматирования</title>

<body>

<b>Полужирный шрифт</b><br />

<i>Курсив</i><br />

<tt>Моноширинный шрифт</tt><br />

<u>Подчеркнутый</u><br />

<s>Зачеркнутый</s><br />

<strike>Снова зачеркнутый</strike><br />

Шрифт <big>побольше <big>Еще больше</big></big><br />

Шрифт <small>поменьше</small><br />

<sub>Подстрочный</sub> шрифт<br />

<sup>Надстрочный</sup> шрифт<br />

<span style="background-color:#00FFFF">Текст с фоном</span>

</body>

</html>

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

Рис. 2.17. Физическое форматирование

На рис. 2.17 видно, что любой физический элемент форматирования изменяет вид текста, потому что именно это является его функцией.

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

В табл. 2.1 кратко описаны аналоги рассмотренных физических элементов среди логических элементов и показано, какие элементы являются взаимозаменяемыми.

Таблица 2.1. Элементы форматирования текста

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

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

Элементы для форматирования больших блоков текста

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

Начнем рассмотрение с элемента, напрямую отвечающего за параметры шрифта.

Элемент FONT

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

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

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

За размер шрифта отвечает атрибут size. Значение задается в относительных величинах, то есть 2 или 6. По умолчанию используется размер 3. При этом можно задать размер шрифта относительно остального текста. Для этого нужно сначала указать +, если необходимо, чтобы размер шрифта на данном участке был больше, чем основной текст, или — , если требуется обратное форматирование. После знака надо указать количество пунктов, на которое текст должен быть больше или меньше.

За цвет шрифта отвечает атрибут color, значением которого должно быть либо ключевое слово, обозначающее имя цвета, либо код цвета в формате #RRGGBB.

Совет

Код цвета можно посмотреть в любом графическом редакторе.

В листинге 2.18 показан пример кода для определения параметров текста с помощью элемента FONT.

Листинг 2.18. Использование элемента FONT

<html>

<head>

<title>Элемент FONT</title>

<body>

<font color="#FF0000"face="Verdana, Arial, Helvetica, sans-serif"size="+2">

Текст красного цвета с размером +2

</font><br />

<font color="#FF00FF"face="Verdana, Arial, Helvetica, sans-serif"size="-4">

Текст фиолетового цвета с размером — 4

</font><br />

</body>

</html>

Результат вывода на экран кода из листинга 2.18 показан на рис. 2.18.

Рис. 2.18. Использование элемента FONT

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

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

Элемент DIV

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

Единственное, что вы можете сделать с помощью HTML, — выровнять текст в блоке с помощью атрибута align и создать всплывающую подсказку для блока с помощью атрибута title.

В листинге 2.19 представлен пример кода для выделения текста с помощью элемента DIV.

Листинг 2.19. Использование элемента DIV

<html>

<head>

<title>Элемент DIV</title>

<body>

<div style="cursor:crosshair"align="center">

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

</div>

</body>

</html>

Результат обработки кода из листинга 2.19 показан на рис. 2.19.

Рис. 2.19. Использование элемента DIV

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

Элемент PRE

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

Примечание

Обычно в HTML несколько пробелов подряд воспринимаются как один пробел.

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

В листинге 2.20 приведен пример использования элемента PRE.

Листинг 2.20. Использование элемента PRE

<html>

<head>

<title>Элемент PRE</title>

<body>

<pre>

Здесь

можно

расположить

код

программы

</pre>

</body>

</html>

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

Рис. 2.20. Использование элемента PRE

Далее рассмотрим элемент, предназначенный для форматирования больших объемов текста и отвечающий за цитаты.

Элемент BLOCKQUOTE

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

В листинге 2.21 представлен пример выделения цитаты с помощью элемента BLOCKQUOTE.

Листинг 2.21. Ввод больших цитат

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type"content="text/html; charset=windows-1251"/>

<title>Элемент BLOCKQUOTE</title>

<body>

<blockquote>

Здесь можно расположить важную и большую цитату.

</blockquote>

</body>

</html>

На рис. 2.21 показано, как в браузере выглядит текст из элемента BLOCKQUOTE.

Рис. 2.21. Использование элемента BLOCKQUOTE

Мы рассмотрели, как действует каждый вариант форматирования текста отдельно, но HTML позволяет вкладывать элементы, при этом объединяя их действие.

Вложение элементов

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

В листинге 2.22 показаны примеры правильного и неправильного вложения элементов.

Листинг 2.22. Вложение элементов

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type"content="text/html; charset=windows-1251"/>

<title>Вложение элементов</title>

<body>

<del><b><i>Это неправильное вложение элементов</b></i></del><br />

<ins><b><i>Это правильное вложение элементов</i></b></ins>

</body>

</html>

Неправильную запись некоторые браузеры могут отображать некорректно.

Резюме

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

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

Смотрите также

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я