ИНФОРМАЦИЯ,    ДИЗАЙН,    ПЕРЕВОДЫ,    РЕКЛАМА   .   .   .
w a p - с а й т
Информационный портал
Сегодня:  
admin@aranea.ru
+79068922256

  aranea.ru || Спецификация CSS2 | 13.2. Страничные блоки: правило @page.

13.2. Страничные блоки: правило @page.

13.2.1. Страничные поля.
13.2.2. Размер страницы: свойство 'size'.
   Визуализация страничных блоков, которые не подходят для целевой страницы.
   Позиционирование страничного блока на странице.
13.2.3. Ограничительные метки: свойство 'marks'.
13.2.4. Левые, правые и первая страницы.
13.2.5. Содержание вне страничного блока.

Страничный блок имеет прямоугольную форму, которая содержит две области:

  • Страничная область. Страничная область включает блоки, лежащие на этой странице. Края страничной области действуют, как начальный объемлющий блок для разметки, осуществляемой между обрывами страниц.
  • Область полей, которая окружает страничную область.

Обратите внимание. В CSS2 свойства границ и свойства отступов для страниц не применяются; они возможны в будущем.

Авторы определяют размеры, ориентацию, поля и т.д. страничного блока внутри правила @page. Правило @page состоит из ключевого слова "@page ", страничного селектора (не сопровождаемого промежуточным пробелом с факультативным страничным псевдо-классом) и блоком объявлений (так называемый, страничный контекст).

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

Размеры страничных блоков устанавливаются свойством 'size'. Размеры страничной области являются размерами страничного блока минус область полей.

Например, следующее правило @page устанавливает размер страничного блока 8,5 х 11 дюймов и создает поля '2cm' со всех сторон между краями страничного блока и страничной областью:

@page { size 8.5in 11in; margin: 2cm }

Свойство 'marks' в правиле @page определяет ограничительные метки для страничного блока.

13.2.1. Страничные поля.

Свойства полей ('margin-top', 'margin-right', 'margin-bottom', 'margin-left' и 'margin') применяются внутри страничного контекста. Следующая диаграмма показывает взаимосвязь между листом (sheet), страничным блоком (page box) и страничными полями (page margin):

[D]

Рассчитанное значение полей блока для верха или низа области страницы равно '0'.

Страничный контекст не имеет записи для шрифта, так как единицы 'em' и 'ex' не разрешаются. Процентные значения для свойств полей связаны с размерами страничного блока; для левого и правого полей они обращаются к ширине страничного блока, а для верхнего и нижнего полей они обращаются к высоте страничного блока. Все другие единицы, связанные с соответствующими свойствами CSS2, разрешены.

Из-за отрицательных значений полей (либо для страничного блока, либо для элементов) или абсолютного позиционирования, содержание может заканчиваться вне страничного блока, но это содержание может быть "обрезано" – устройством вывода, принтером или, в конечном счете, резчиком бумаги.

13.2.2. Размер страницы: свойство 'size'.

'size'
Тип значения:    <length>{1,2} | auto | portrait | landscape | inherit
Начальная величина: auto
Применяется:        станичный контекст
Наследование:       нет
Процентная база:    нет
Медиа:              визуальные, постраничные

Это свойство определяет размер и ориентацию страничного блока.

Размер страничного блока может быть либо "абсолютным" (фиксированного размера), либо "относительным" (масштабируемый, т.е. подгоняемый под доступный размер листа). Относительные страничные блоки позволяют устройствам вывода масштабировать документ и оптимально использовать целевой размер.

Три значения для свойства 'size' создают относительный страничный блок:

auto
Страничный блок будет установлен по размеру и ориентации целевого листа.
landscape
Заменяет целевую ориентацию. Страничный блок имеет тот же размер, что и цель, но длинные стороны – горизонтальные.
portrait
Заменяет целевую ориентацию. Страничный блок имеет тот же размер, что и цель, но короткие стороны – горизонтальные.

В следующем примере внешние края страничного блока будут выравниваться с целевой страницей. Процентное значения для свойства 'margin' связано с целевым размером так, что если размеры целевого листа – 21,0 см х 29,7 см (т.е. А4), то поля будут 2,10 см и 2,97 см.

@page {
  size: auto;   /* auto is the initial value */
  margin: 10%;
}

Значения длинны для свойства 'size' создают абсолютный страничный блок. Если определяется только одно значение для длины, то оно устанавливает и ширину, и высоту страничного блока (т.е. блок – квадратный). Так как страничный блок является начальным объемлющим блоком, то процентные значения для свойства 'size' не разрешаются.

Для примера:

@page {
  size: 8.5in 11in;  /* width height */
}

Вышеуказанный пример устанавливает ширину страничного блока 8,5 дюймов, а высоту – 11 дюймов. Страничный блок в этом примере требует размера целевого листа 8,5"х11" или больше.

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

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

Если страничный блок не подгоняется под размеры целевого листа, то устройство вывода выбирает следующее:

  • Поворачивает страничный блок на 90°, если это приведет к подгонке страничного блока.
  • Масштабирует страницу для подгонки к целевой странице.
Устройство вывода должно консультироваться с пользователем перед выполнением этой ориентации.

Позиционирование страничного блока на странице.

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

13.2.3. Ограничительные метки: свойство 'marks'.

'marks'
Тип значения:       [ crop || cross ] | none | inherit
Начальная величина: нет
Применяется:        страничный контекст
Наследование:       нет
Процентная база:    нет
Медиа:              визуальные, постраничные

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

Ограничительные метки указывают место, где страница должна обрезаться. Поперечные метки (известные, как знаки совмещения) используются для выравнивания страниц.

Метки видны только для абсолютных страничных блоков (смотрите свойство 'size'). В относительных страничных блоках, страничный блок будет выравниваться по целевой странице, а метки будут находиться вне области печати.

Размер, стиль и положение знаков совмещения зависит от устройства вывода.

13.2.4. Левые, правые и первая страницы.

Когда печатается двусторонний документ, страничные блоки для левых и правых страниц различаются. Это можно выразить двумя псевдо-классами CSS, которые определяются в страничном контексте.

Все страницы автоматически классифицируются устройствами вывода псевдо-классами: либо :left, либо :right.

@page :left {
  margin-left: 4cm;
  margin-right: 3cm;
}

@page :right {
  margin-left: 3cm;
  margin-right: 4cm;
}

Если были предоставлены различные объявления для левых и правых страниц, то устройство вывода должно принимать эти декларации, даже если устройство вывода не делит страничные блоки на левые и правые листы (например, принтер только для односторонней печати).

Авторы могут также определить стиль для первой страницы документа псевдо-классом :first.

@page { margin: 2cm } /* All margins set to 2cm */

@page :first {
  margin-top: 10cm    /* Top margin on first page 10cm */
}

Является ли первая страница документа :left или :right, это зависит от главного направления написания документа, и находится вне рамок этого документа. Но, для усиления первой страницы с :left или :right, авторы могут вставить обрыв страницы перед первым сгенерированным блоком (например, в HTML определить это для элемента BODY).

Свойства, определенные в правиле @page с помощью :left (или :right), преодолевают правила, написанные в @page без определенных псевдо-элементов. Свойства, определенные в правиле @page с помощью :first, преодолевают свойства, написанные в правиле @page с :left (или :right).

Обратите внимание. Добавление объявлений для псевдо-классов :left или :right не влияет на случай, выводится ли документ на принтер с двухсторонней или односторонней печатью (это находится вне рамок данного документа).

Обратите внимание. Следующие версии CSS могут включить другие страничные псевдо-классы.

13.2.5. Содержание вне страничного блока.

При форматировании содержания в страничной модели, оно может заканчиваться вне страничного блока. Например, элемент, у которого свойство 'white-space' имеет значение 'pre', может генерировать блок шире, чем страничный блок. Похожим образом, когда блоки позиционированы абсолютно, они могут заканчиваться в "неудобных" расположениях. Например, изображение может размещаться на краю страничного блока, или на 100000 дюймов ниже страничного блока.

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

  • Содержанию следует позволять слегка выходить за страничный блок для разрешения печати в край страницы.
  • Устройства вывода должны избегать генерирования большого числа пустых страничных блоков для обработки позиционирования элементов (например, вы не хотите напечатать 100 пустых страниц). Обратите внимание на то, что генерирование малого количества пустых страничных блоков может быть необходимым для обработки значений 'left' и 'right' для 'page-break-before' и 'page-break-after'.
  • Авторам не следует позиционировать элементы в неудобных положениях только для того, чтобы избежать их визуализации. Вместо этого:
    • Чтобы подавить полностью генерацию блока, установите свойство 'display' – 'none'.
    • Чтобы сделать блок видимым, используйте свойство 'visibility'.
  • Устройства вывода могут управлять блоками, позиционированными вне страничного блока несколькими способами, исключая их, или создавая страничные блоки в конце документа.
← Назад | Вперед →
Copyright © 2006 -  aranea.ru