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  { | }~ </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:[email protected]">[email protected]</A>operators   4341 <A HREF="mailto:[email protected]">[email protected]</A>WWW problems 4331 <A HREF="mailto:[email protected]">[email protected]</A></PRE>

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

Примечания

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

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

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

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

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

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

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

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

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

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