Как избежать верхнего поля элемента на новых страницах в 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, даже если блок находится вверху страницы.