HTML: в стандартном режиме IE9 печать TFOOT на каждой странице

Таблицы в HTML могут иметь «нижние колонтитулы»:

<TABLE>
   <THEAD><TR><TD>Your header goes here</TD></TR></THEAD>
   <TFOOT><TR><TD>Your footer goes here</TD></TR></TFOOT>
   <TBODY>
      <TR><TD>
         Page body in here -- as long as it needs to be
     </TD></TR>
   </TBODY>
</TABLE>

Обычно устаревший Internet Explorer отображает только TFOOT внизу всей таблицы. Но был стиль, который можно применить к TFOOTTHEAD), чтобы сделать его печатается внизу каждой страницы, охватываемой таблицей. Из MSDN:

table-footer-group
Объект отображается как tFoot < / а>. Нижний колонтитул таблицы всегда отображается
после всех других строк и групп строк и перед любыми нижними заголовками.
Нижний колонтитул отображается на каждой странице, охватываемой таблицей.

Добавление table-footer-group в качестве стиля к TFOOT заставляет его (в Internet Explorer) печатать внизу каждой страницы, охватываемой таблицей:

<STYLE type="text/css">
   tfoot { display: table-footer-group; }
</STYLE>

Но если IE9 (релиз-кандидат) переведен в стандартный режим:

<!DOCTYPE html>

тогда TFOOT больше не отображается внизу каждой страницы, охватывающей таблицу, а только в конце всей таблицы.

Я проверил спецификацию HTML, чтобы узнать, каково правильное поведение, и оно не определено !:

table-footer-group (в HTML: TFOOT)
Как 'table-row-group', но для визуального форматирования, группа строк всегда отображается после всех других строк и групп строк и до любые нижние подписи. Пользовательские агенты печати могут повторять строки нижнего колонтитула на каждой странице, охватываемой таблицей. Если таблица содержит несколько элементов с 'display: table-footer-group', только первый отображается как нижний колонтитул; остальные обрабатываются так, как если бы они имели 'display: table-row-group'.

Примечание. Для эффекта сделан акцент.

Могу ли я в стандартном режиме IE9 выбрать печать TFOOT внизу каждой страницы, охватываемой таблицей?

Обновить один

Интересно отметить, что table-footer-group - типичное значение по умолчанию для элементов TFOOT, но в предыдущих версиях IE вы могли выбрать, какое поведение вам нужно:

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

выбрав включение стиля.

Обновление два

Сейчас я заставляю Internet Explorer оставаться в стандартном режиме IE8:

<!DOCTYPE html>
<HTML>
<HEAD>
   <META http-equiv="X-UA-Compatible" content="IE=8" />
   <!--IE8 Standards mode, so that we get the THEAD at the top, and the TFOOT at the bottom, of every page-->

Смотрите также


person Ian Boyd    schedule 09.03.2011    source источник


Ответы (1)


В HTML поведение было неопределенным. Браузеры могли:

  • отображать после всей таблицы
  • отображать внизу каждой страницы.

Поведение, с которым я столкнулся, было в версии-кандидате Internet Explorer 9.

В последней версии Internet Explorer 9 (версия 9.0.8112.1642 RTM) символ TFOOT постоянно отображается внизу каждой распечатанной страницы.

В более ранних версиях IE вы могли выбирать между:

  • TFOOT появляется внизу каждой страницы
  • TFOOT появляется после таблицы

вручную указав стиль TFOOT css:

tfoot { display: table-footer-group; }

Несмотря на то, что tfoot уже имеет стиль отображения table-footer-group, в частности его включение сообщит IE, что вы хотите, чтобы TFOOT был напечатан внизу каждой страницы. (а не после стола).

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

Если вы используете IE9 и хотите, чтобы TFOOT отображался только после того, как вся таблица была напечатана, вам придется перевести Internet Explorer в стандартный режим IE8:

<!DOCTYPE html>
<HTML>
<HEAD>
   <META http-equiv="X-UA-Compatible" content="IE=8" />
   <!--IE8 Standards mode, so that we get the TFOOT after the entire table has printed, not at the bottom of each printed page-->
   ...
person Ian Boyd    schedule 17.03.2011