Разметка текста - выделение шрифта, цитирование, код и т.п.

Логическая разметка в сравнении с физической

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

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

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

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

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


 This has some <B>bold and <I></B>italic text</I>. 

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

Пример nest.html:


This is <I>italic text which contains <U>underlined text</U> 

within in </I> whereas <U>this is normal underlined text</U>. 

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

Элементы фразы (логическая разметка текста)

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

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

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

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

Элемент VAR показывает, что часть текста (обычно слово) является переменной, т.е. текстом, который может быть заменен различными выражениями.

Следующие фразовые элементы задают различные виды ссылок или цитирования:
CITEцитирование (название книги, или статьи, или - эквивалент)
CODEкод программы или - эквивалент (например, HTML)
SAMPслужебные сообщения компьютера (вывод из программы, скрипты, команды и т.п.)
KBDтекст, который должен печататься на клавиатуре пользователя; обычно используется для инструкций.

Смотрите также замечания и примеры по вопросам отображения разметки.

Шрифтовые элементы (font elements) - физическая разметка текста

Шрифтовые элементы это:
TT"телетайпный" текст, т.е. текст одного размера
Iкурсив
Bвыделение
Uподчеркивание
STRIKEзачеркнутый текст
BIGбольшой шрифт
SMALLмалый шрифт
SUBподстрочный текст
SUPнадстрочный текст.

Заметим: SUB и SUP могут быть отнесены к разметке фразового уровня, как упоминалось выше; SMALL может быть использован для де-подчеркивания.

Элементы FONT и BASEFONT предлагают много возможностей для задания размеров шрифта по сравнению с BIG и SMALL. Однако избегайте чрезмерного использования физической разметки.

Отображение разметки

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

Например, некоторые броузеры (возьмем Internet Explorer) отображают TTCODE) как шрифт, значительно меньший, чем обычный текст, и эта диспропорция сохраняется, когда изменяются размеры шрифта. Более того, Internet Explorer воспроизводит VAR как моноширинный (monospaced) шрифт, в то время как большинство графических броузеров использует курсив (italic). С другой стороны, в Netscape, размеры шрифта можно специально устанавливать, а по умолчанию для TT и VAR используются одни и те же шрифты, однако "одни и те же" означает технический размер в точках - на практике моноширинные шрифты выглядят больше, чем нормальный пропорциональный шрифт!

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

В следующей таблице сделана попытка дать представление о диапазоне возможностей броузеров. Она представляет отображение элементов разметки в Netscape Navigator, Microsoft Internet Explorer и Lynx. Заметим, что существуют вариации даже в пределах каждой из этих программ - в зависимости от версии, платформы, конфигурации системы или собственной пользовательской конфигурации, - такой разброс соответствует действительности. Таким образом, данные таблицы могут быть, но не обязательно имеют место в действительности.
элементNetscapeInternet ExplorerLynx
EMкурсивкурсивподчеркнутый
DFNобычный тексткурсив обычный (одноразмерный)
CODEодноразмерныймалый одноразмерныйобычный (одноразмерный)
SAMPодноразмерныймалый одноразмерныйобычный (одноразмерный)
KBDодноразмерныймалый одноразмерныйобычный (одноразмерный)
VARкурсивмалый одноразмерный обычный (одноразмерный)
CITEкурсивкурсив подчеркнутый
TTодноразмерныймалый одноразмерныйобычный (одноразмерный)
Iкурсивкурсивподчеркнутый
Bусиленныйусиленныйподчеркнутый
Uобычный текстподчеркнутый подчеркнутый
STRIKEзачеркиваниезачеркивание текст между[DEL: и :DEL]
BIGбольший, чем обычныйбольший, чем обычныйобычный текст
SMALLменьший, чем обычныйнемного меньший, чем обычныйобычный текст
SUBопущенный, немного меньший опущенныйобычный текст
SUPподнятый, немного большийподнятыйобычный текст

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

Представление взаимодействия с компьютером

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

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

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

Пример interact.html:


<P>The following Perl script prints out its input so that each line begins 

with a running line number:</P> 

<PRE>

<CODE>

#!/usr/bin/perl 

$line = 1; 

while (&lt;&gt;) {

  print $line++, " ", $_; } 

</CODE>

</PRE> 

<P>The scalar variable <CODE>$line</CODE> is of 

course the line counter.<P> 

<P>The loop construct is of the form<BR> 

<CODE>while (&lt;&gt;) {</CODE><BR> 

<VAR>process one line of input</VAR>

 <CODE>}</CODE><BR> 

</P> 

<P>Assuming that you have written this script (the simpler version 

of it) into a file named <KBD>lines</KBD>, you 

could test it using a command 

of the form<BR> <KBD>./lines</KBD> 

<VAR>datafile</VAR><BR> 

In particular, using the script as input to itself, you would do as follows 

(the details of

 system output vary from one system to another): 

</P> 

<PRE> 

<SAMP>lk-hp-23 perl 251 % </SAMP><KBD>./lines lines</KBD> 

<SAMP>1 #!/usr/bin/perl 

2 $line = 1; 

3 while (<>) { 

4 print $line++, " ", $_; } 

lk-hp-23 perl 252 % </SAMP> 

</PRE> 

Замечания к примеру: