PRE - заранее отформатированный текст

Цель

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

Типичное отображение

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

Основной синтаксис

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

Возможные атрибуты

имя атрибута возможные значения смысл примечания
WIDTH целое ширина текста в символах практически не поддерживается

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

Допустимый контекст

Блоковый контейнер.

Содержимое

Любой текстовый элемент, за исключением изображений (IMG) и элементов изменений размера шрифта (BIG, SMALL, SUB, SUP, FONT).

Примеры

Простейший пример:

Пример PRE-1.html:

<PRE> To be or not to be, that is the question. </PRE> 

Другой пример:

Пример PRE-2.html:

The printable characters of ASCII: 
<PRE> 
! " # $ % &amp; ' () * +, -. / 
0 1 2 3 4 5 6 7 8 9 : ; &lt; = &gt; ? 
@ A B C D E F G H I J K L M N O 
P Q R S T U V W X Y Z [ \ ] ^ _ 
` a b c d e f g h i j k l m n o 
p q r s t u v w x y z { | } ~ 
</PRE> 

Попытка представить компьютерный листинг, сходственный выводимому на принтер:

Пример PRE-3.html:

The printout from the program is the following. Each line contains ten
real numbers, each in a field of ten characters. Notice that when viewing
this document on WWW, the rendering of the printout can be unsatisfactory;
in such a case widen the WWW window, if possible.
<PRE WIDTH=100> 
0.5138707 0.1757256 0.3086337 0.5345317 0.9476302 0.1717277 0.7022309 0.2264168 0.4947661 0.1246986 
0.0838954 0.3896298 0.2772301 0.3680532 0.9834590 0.5353862 0.7656789 0.6464736 0.7671438 0.7802362 
0.8229621 0.1519211 0.6254769 0.3146764 0.3469039 0.9172033 0.5197607 0.4011658 0.6067690 0.7854244 
</PRE> 

Пример элемента PRE, содержащего связи:

Пример PRE-4.html:

Contact information (phone and E-mail):
<PRE>
help desk     4344 <A HREF="mailto:atk-neuvonta@hut.fi">atk-neuvonta@hut.fi</A>
operators     4341 <A HREF="mailto:opr@hut.fi">opr@hut.fi</A>
WWW problems  4331 <A HREF="mailto:webmaster@hut.fi">webmaster@hut.fi</A>
</PRE>

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

Примечания

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

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

Предыдущая версия HTML включала элементы XMP, LISTING и PLAINTEXT. Они теперь устарели и вместо них применяется элемент PRE.

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

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

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

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

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

Если символы <, > либо & встречаются в данных, то они обязаны быть выражены с применением escape синтаксиса (как в примере 2). В частности, Вы обязаны делать так, когда включаете код HTML в Ваш документ для итога начального кода.

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