Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ППТС-2 / Лабы / Lab4-04.doc
Скачиваний:
15
Добавлен:
12.05.2015
Размер:
545.79 Кб
Скачать

3.3. Блоковые элементыXsl

В XSL определено два элемента форматирования блокового уровня: fo:block и fo:block-container.

3.3.1. Элементfo:block

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

Элемент может иметь либо строковое содержимое (#PCDATA), либо его содержимым могут быть внутристроковые элементы, либо вложенные блоковые элементы.

Свойство id определяет уникальный идентификатор элемента fo:block.

Для элемента fo:block, так же, как и для элемента fo:title, могут быть заданы общие свойства фона, рамки и отступа, а также общие свойства шрифта. Кроме того, для элемента могут быть заданы общие свойства полей блока (как и для элементаfo:simple-page-master).

Свойство hyphenateсо значениями"true"или"false"разрешает или запрещает перенос слов в блоке. Свойствоhyphenation-keep управляет переносом, выполняемым на последней строке, входящей в данную область reference-area. Значение "auto" задает режим переноса слова в конце любого региона (значение по умолчанию), значение "column" определяет, что обе части слова, разделённого для переноса, должны находиться в одном столбце, а значение "page" – что обе части слова, разделённого для переноса, должны находиться на одной странице. Свойство hyphenation-ladder-count определяет количество последовательных строковых областей с переносами, которые могут генерироваться форматировщиком в блоковой области. Значение "no-limit" определяет, что переносы выполняются на любом количестве последовательных строк, а значение целое – количество областей с переносами.

Свойство wrap-option определяет, будет ли выполняться перенос (свертку) строк, если строки длиннее, чем доступная ширина прямоугольника содержимого. Значение "no-wrap" запрещает сверку строк, а значение "wrap" – разрешает (это значение по умолчанию).

Для элемента fo:block можно задать также свойство относительного позиционирования relative-position, а также свойства top,right,bottomиleftиз группы свойств абсолютного позиционирования. Эти свойства позаимствованы изCSS2, также как и свойстваtext-align,text-indent,line-height,colorиvisibility. Дополнительные свойстваXSLtext-align-lastиlast-line-end-indentзадают отдельно форматирование и отступ для последней строки блока.

Свойство white-space-collapseсо значениями"true"или"false"разрешает или запрещает нормализацию пробелов в блоке. Свойствоwhite-space-treatment позволяет более детально управлять выводом пробельных символов (кроме символа перевода строки). Так, значение "ignore" удаляет пробельные символы, а значение "preserve" – сохраняет (значение по умолчанию). Значения "ignore-if-before-linefeed" и "ignore-if-after-linefeed" позволяют удалить пробелы до или после символа перевода строки. Значение "ignore-if-surrounding-linefeed" позволяет удалить пробелы и до и после символа перевода строки. Свойство linefeed-treatment управляет обработкой символа перевода строки. Так, значение "ignore" удаляет символы перевода строки, а значение "preserve". Значение "treat-as-space" преобразует символ перевода строки в пробел (значение по умолчанию), а значение "treat-as-zero-width-space" – в пробел нулевой ширины (символ Unicode с кодом 200B).

Два свойства break-beforeиbreak-afterопределяют разрыв перед блоком или после блока. Эти свойства могут иметь следующие значения:"auto"– разрыв не задан (значение по умолчанию),"page","odd-page"и"even-page"– разрыв с переходом на новую страницу, на новую нечетную страницу и на новую четную страницу,"column"– разрыв с переходом на новую колонку.

Свойства keep-with-previous, keep-with-next и keep-together, наоборот, заставляют данный блок продолжать предыдущий блок или последующий блок продолжать данный блок, либо просто объединить два блока. Эти свойства являются составными (уточнения: .within-line – в строке, .within-column – в колонке, .within-page – в странице). В качестве значения для этих свойств задается либо "auto" – условия отключены (значение по умолчанию), либо "always" – всегда включены, либо число – включены с заданным приоритетом.

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

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

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

Прямоугольник размещения строки определяется значением свойства line-stacking-strategy: если задано значение "font-height", прямоугольник размещения будет nominal-requested-line-rectangle, (т.е. выступающие элементы типа буквы N на рисунке учитываться не будут; если задано значение, прямоугольник размещения будет maximum-line-rectangle; и если задано значение "line-height" (значение по умолчанию) прямоугольник размещения будет определен так, чтобы быть наименьшим прямоугольником, включающим иnominal-requested-line-rectangleи все внутристроковые области с их краями.

Для значений "max-height" и "line-height"свойства line-stacking-strategy можно использовать свойство line-height-shift-adjustment, управляющее обработкой областей, базовая линия которых сдвинута от общей базовой линии строковой области. Для этой характеристики могут быть заданы два значения: "consider-shifts" – при вычислении прямоугольника размещения, базовые элементы сдвигов приняты во внимание (например, если строка содержит нижний индекс) и "disregard-shifts" – сдвиги базовой линии игнорируются.

Свойства text-altitude и text-depth задают изображенные на рисунке высоту и глубину шрифта. Значения этих свойств могут быть заданы либо в фиксированных единицах, либо в процентах. Кроме этого, может быть задано значение "use-font-metrics" – в этом случае высота и глубина подсчитывается на основании метрики используемого шрифта.

Последнее свойство intrusion-displace определяет стратегию перемещения при наличии вторжений в блоковую область других областей. Значение"block"задает, что начальная и конечная границы блока перемещается на наименьшее значение, которое гарантирует, что эти границы не пересекает никаких вторжений. Значения"line"и"auto"задают, что начальные и конечные границы строковых областей перемещаются настолько точно, что любые вторжения не пересекают прямоугольник содержимого строчной области (это значения по умолчанию). Значение"indent"задает, что начальные и конечные границы каждой строки внутри области блока, в которой применяется свойство, перемещается на, по меньшей мере, то же самое значение, на которое он сместился бы значением"line"этого свойства, и, кроме того, на величину, сохраняющую смещение относительно начальной или конечной границы любой другой строки, перемещённой под влиянием какого-либо вторжения, вызывающего перемещение текущей строки. Значение"none"отменяет перемещение при вторжении.

Соседние файлы в папке Лабы