Смекни!
smekni.com

Технологии создания гипертекстовых документов (стр. 2 из 3)


Рис.3. Отображение текста на экране монитора.

● Стиль <style media="print"> для печатающих устройств:

<style type="text/css" media="print">

* {

font-family: "Times New Roman", Times, serif;

background-color: #fff;

color: #000;

}

#navigation { display: none; }

</style>

Для печати описание страницы другое. CSS-селектор «*» означает, что выбираются все элементы страницы. Для них используется шрифт Times New Roman черного цвета и белый фон, так как не в каждом офисе есть цветные принтеры. С помощью свойства display: none полностью удаляется с печатной версии блок навигации — на бумаге он бесполезен.

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


Рис.3. Отображение того же текста на бумаге.


3. ОБТЕКАНИЕ РИСУНКА ТЕКСТОМ И ВРЕЗКА К СТАТЬЕ

ТЕХНОЛОГИЯ:CSS

ПОДДЕРЖКА: все распространенные браузеры.

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

Листинг 3_float – Обтекание рисунка текстом и врезка к статье.

<html>

<head>

<title>ОБТЕКАНИЕ РИСУНКА ТЕКСТОМ И ВРЕЗКА К СТАТЬЕ </title>

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

<style type="text/css" media="screen">

body {

background-color: #e5f8be;

font: 0.8em Verdana, Tahoma, Arial, Helvetica, sans-serif;

}

p { text-align: justify; }

p img {

float: left;

margin-right: 8px;

}

.vrezka {

float: right;

margin-left: 8px;

width: 30%;

background-color: #99cc33;

padding: 1%;

}

</style>

</head>

<body>

<p><img src="3_picture.png" />Поясним CSS-коддляобтеканиярисунковтекстомисозданияврезки. Абзацы текста растянуты по ширине (text-align: justify;) исключительно ради того, чтобы нагляднее показать расположение врезки к статье. Текст внутри врезки выровнен по умолчанию по левому краю. CSS-селектор p.img означает "определить свойства всех элементов (тегов) <img>, вложенных в элементы <р>". Первым делом для вложенных в абзацы текста картинок задаем обтекание float: left. Это свойство указывает браузеру, что элемент помещается в крайней левой части экрана, а все остальные элементы должны обтекать его справа. Чтобы буквы не прилипали к картинке, мы создаем прозрачное внешнее поле шириной 8 пикселей справа от нее (margin-right: 8px;).</p>

<div class="vrezka">Врезка помещается к правому краю контейнера, основной текст обтекает ее слева. Внешнее поле шириной 8 пикселей создано слева от врезки. Ширина блока (свойство width:) - 30% окна браузера. Чтобы визуально выделить врезку на странице, мы залили ее темно-зеленым фоном.</div>

И последний штрих: улучшим удобочитаемость текста врезки с помощью отбивки сверху, снизу, слева и справа от границ блока на 1%.</p>

</body>

</html>

Поясним CSS-код для обтекания рисунков текстом и создания врезки.

Абзацы текста растянуты по ширине (text-align: justify;) исключительно ради того, чтобы нагляднее показать расположение врезки к статье. Текст внутри врезки выровнен по умолчанию по левому краю. CSS-селектор p.img означает «определить свойства всех элементов (тегов) <img>, вложенных в элементы <р>». Первым делом для вложенных в абзацы текста картинок задано обтекание float: left. Это свойство указывает браузеру, что элемент помещается в крайней левой части экрана, а все остальные элементы должны обтекать его справа. Чтобы буквы не прилипали к картинке создано прозрачное внешнее поле шириной 8 пикселей справа от нее (margin-right: 8px;).

Врезка помещается к правому краю контейнера, основной текст обтекает ее слева. Внешнее поле шириной 8 пикселей создано слева от врезки. Ширина блока (свойство width:) — 30% окна браузера. Чтобы визуально выделить врезку на странице, ее залили темно-зеленым фоном. И последний штрих: для улучшения удобочитаемости текста врезки применена отбивка сверху, снизу, слева и справа от границ блока на 1%.

Рис.4. Обтекание рисунка текстом и врезка к статье улучшают качество страницы сайта.


4. ВЕРСТКА ТАБЛИЦ

ТЕХНОЛОГИЯ: XHTML

ПОДДЕРЖКА: InternetExplorer поддерживает все функции, тег <col> не работает в Mozilla, в Opera не работает стилевое оформление <col>.

Верстать таблицы в (X)HTML — утомительное занятие. Упростить эту работу можно с помощью табличных тегов. Структура таблицы не ограничивается элементами <table>, <tr> и <td>. Рекомендуется применять и другие теги.

Листинг 4_table – Верстка таблицы с помощью «продвинутых» тегов.

<html>

<head>

<title>ВЕРСТКА ТАБЛИЦ</title>

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

</head>

<body>

<table border="1" width="100%">

<caption>Баланс</caption>

<colgroup span="4">

<col width="25%" align="center" />

<col width="25%" align="right" />

<col width="25%" align="right" />

<col width="25%" align="right" style="color: red; font-weight: bold;" />

</colgroup>

<thead>

<tr>

<th>Дата</th>

<th>Приход</th>

<th>Расход</th>

<th>Остаток</th>

</tr>

</thead>

<tfoot>

<tr>

<td>Дата</td>

<td>Приход</td>

<td>Расход</td>

<td>Остаток</td>

</tr>

</tfoot>

<tbody>

<tr>

<td>01.01.06</td>

<td>3000</td>

<td>2000</td>

<td>1000</td>

</tr>

<tr>

<td>02.01.06</td>

<td>1000</td>

<td>0</td>

<td>2000</td>

</tr>

<tr>

<td>03.01.06</td>

<td>500</td>

<td>1500</td>

<td>1000</td>

</tr>

</tbody>

</table>

</body>

</html>

Заголовок таблицы задан с помощью элемента <caption>. Далее следуют очень полезные теги <col/>, каждый из которых отвечает за столбец таблицы. Без использования этого тега пришлось бы прописывать код для каждой ячейки таблицы (<td>). В этом простом примере таблица содержит 20 ячеек, а в рабочих таблицах их значительно больше. Поэтому применение тега <col/> очень упрощает и ускоряет создание таблицы.

Основное содержимое таблицы разделено тегами <thead>, <tfoot> и <tbody> на шапку, нижнюю часть и тело таблицы соответственно. Эти теги должны следовать в указанном порядке. В <thead> помещены ячейки с заголовками столбцов, в <tbody> — основные данные, в <tfoot> продублированы названия столбцов для удобства, если таблица получится большой.

Рис.5. Таблица, при верстке которой применены «продвинутые» теги.


5. ЗАЩИТА E-MAIL АДРЕСА ОТ СПАМА

ТЕХНОЛОГИЯ: JavaScript

ПОДДЕРЖКА: все распространенные браузеры с поддержкой JavaScript.

Чтобы спрятать e-mail от спам-роботов применяют функцию на языке JavaScript. Она получает части адреса e-mail и собирает из них гиперссылку. Внутри секции документа <head> размещают следующий код:

<script language="javascript" type="text/javascript">

//<!--

//<![CDATA[

function maillink(mailprefix, maildomain, mailsuffix, mailname)

{

var mailprefix; // первая часть адреса до @

var maildomain; // домен

var mailsuffix; // зонадомена (ru, com ит. п.)

var mailname; // текст ссылки (имя получателя)

if (mailname == null) { mailname = "e-mail"; }

document.write('<a href="mailto:' + mailprefix + '%40' + maildomain + '.' + mailsuffix + '">' + mailname + '</a>');

}

//]]>

//-->

</script>

Спомощьютега<script>объявляют, чтовдокументвстроенкод JavaScript. Функция JavaScript получает четыре параметра:

● первую часть e-mail-адреса до @ (var mailprefix;),

● домен почтового сервера (varmaildomain;),

● зону домена (varmailsuffix;),

● текст гиперссылки (var mailname;).

Последний параметр необязателен, и, если он не задан, для ссылки используется текст «e-mail». В финале JavaScript печатает («document.write()») на странице гиперссылку с адресом электронной почты.

Использовать эту функцию в документе необходимо следующим образом:

Пишитенамой <script language="javascript" type="text/javascript">maillink("e-teach","mail","ru");</script>.

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

Листинг 5_js_email - Полный код страницы со ссылкой на адрес e-mail электронной почты.

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

<head>

<title>ЗАЩИТА E-MAIL АДРЕСА ОТ СПАМА</title>

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

<script language="javascript" type="text/javascript">

//<!--

//<![CDATA[

function maillink(mailprefix, maildomain, mailsuffix, mailname)

{

var mailprefix; // первая часть адреса до @

var maildomain; // домен

var mailsuffix; // зонадомена (ru, com ит. п.)

var mailname; // текст ссылки (имя получателя)

if (mailname == null) { mailname = "e-mail"; }

document.write('<a href="mailto:' + mailprefix + '%40' + maildomain + '.' + mailsuffix + '">' + mailname + '</a>');

}

//]]>

//-->

</script>

</head>

<body>

<p>Для того, что бы спрятать e-mail от спам-роботов размещают внутри секции документа код JavaScript. С помощью тега script объявляют, что в документ встроен код JavaScript. Функция JavaScript получает четыре параметра: первую часть e-mail-адреса до @, домен почтового сервера, зону домена, текст гиперссылки. Последний параметр необязателен, и, если он не задан, для ссылки используется текст "e-mail". В финале JavaScript печатает ("document.write()") на странице гиперссылку с адресом электронной почты.</p>

<p>С радостью отвечу на все вопросы.

Пишитенамой <script language="javascript" type="text/javascript">maillink("e-teach","mail","ru");</script>.</p>

<hr />

<p>&copy; 2005 <script language="javascript" type="text/javascript">maillink("e-teach","mail","ru","ПрохоровВикторСергеевич");</script></p>

</body>

</html>

Рис.6. Страница сайта, содержащая ссылку на электронный адрес.