Как избежать верхнего поля элемента на новых страницах в AntennaHouse?

Я делаю макеты печати с HTML и CSS с помощью рендерера AntennaHouse.

Поле в моем контенте должно иметь верхнее поле 20pt. Легко:

margin-top: 20pt;

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

У кого-нибудь есть идеи, как это сделать?

Также приветствуются XSL-FO решения, так как AntennaHouse имеет эквивалентные функции для рендеринга FO и CSS...

2 ответа

Antenna House также предоставляет некоторые расширения XSL / CSS (дополнительные свойства или значения). Если вы посмотрите эту документацию, http://www.antennahouse.com/product/ahf60/docs/ahf-ext.html, вы найдете свойства -ah-margin-break, которые могут соответствовать вашим требованиям.

Обратите внимание, что это нестандартная функция (в отношении спецификаций XSL-FO и CSS), доступная только в Antenna House Formatter.

Пытаться -ah-margin-break(см. https://www.antennahouse.com/product/ahf66/ahf-ext.html).

-ah-margin-break: discardотбрасывает "поле на передней стороне блока, размещенное в начале документа или сразу после принудительного разрыва страницы / столбца". Я не уверен, перекрывает ли "принудительный" разрыв столбца / страницы, вызванный тем, что предыдущий столбец / страница был заполнен.

В XSL-FO для этого вы используете space-before вместо margin-top. Пробел перед удаляется автоматически в верхней части страницы. Вы можете контролировать это поведение, установив space-before.conditionality="retain", который будет включать space-before, даже если блок находится вверху страницы.

Другие вопросы по тегам