Я не думаю, что часть of [y] может быть сделана (за исключением того, что CSS3 устанавливает макет и имеет фиксированное количество страниц, но это может работать не так, как ожидалось)

дрежу этот вопрос, сказав, что знаю, что этот вопрос задавался ранее, но все ответы, которые я могу найти для них, указывают на устаревшее решение, которое больше не работает (по крайней мере, в Firefox 56 [64-битный])

Устаревший метод состоит в том, что раньше был автоматически созданный экземпляр счетчика CSS с именемpagesИтак, простой фрагмент CSS, сгенерированный из этого SASS:

footer {
    position: fixed;
    bottom: 0;
    left: 20px;

    &:after {
        counter-increment: page;
        content: "Page " counter(page) " of " counter(pages);
    }
}

Раньше делал что хочу. Теперь отображается «Страница [x] of 0».

Я попытался использовать этот бит CSS, чтобы воссоздать мой собственный счетчик макс-страниц:

@page {
    counter-increment: maxpage;
}

Однако это также возвращает 0 при использовании в моем нижнем колонтитуле.

Существуют ли какие-либо разумные средства для кросс-браузерного получения этой функциональности?

 Sub 6 Resources21 окт. 2017 г., 19:45
Где вы увеличиваете страницы?
 Scoots22 окт. 2017 г., 22:29
Если вы печатаете страницу, которая слишком велика для одного листа формата а4, вам понадобится увеличенный счетчик для «страницы x of y»
 Scoots23 окт. 2017 г., 14:01
@BartekB. Честно говоря, у меня нет проблем с тем, как. Я просто хочу, чтобы страница x of y появлялась внизу страницы для каждой страницы, независимо от того, сколько страниц может быть.
 Bartek B.23 окт. 2017 г., 09:41
Может быть проще найти решение с соответствующим HTML-кодом.

Ответы на вопрос(2)

но я получил чистые номера страниц CSS для работы в Firefox 20:

CSS это:

#content {
    display: table;
}

#pageFooter {
    display: table-footer-group;
}

#pageFooter:after {
    counter-increment: page;
    content: counter(page);
}

И HTML-код:

<div id="content">
  <div id="pageFooter">Page </div>
  multi-page content here...
</div>

Работает на большинстве основных браузеров

 Scoots23 окт. 2017 г., 15:16
Это отходит от "of [y]" аспекта моего вопроса. Интересно, что это также не работает в Chrome 61.
 spotnick23 окт. 2017 г., 15:26
Я не думаю, что часть of [y] может быть сделана (за исключением того, что CSS3 устанавливает макет и имеет фиксированное количество страниц, но это может работать не так, как ожидалось)

р:

@page { counter-increment: page }

Приведенное выше правило предписывает механизму макета создать счетчик, называемый «страница» (он называется страницей по соглашению, это может быть что угодно) Этот счетчик увеличивается для каждой страницы. Как и для любого счетчика, вы можете использовать текущее значение счетчика в любом месте документа

Например, с этим правилом CSS:

#pageNumber { content: counter(page) }

и этот кусок HTML:

<span id="pageNumber"></span>

Вы можете использовать счетчик номера текущей страницы в качестве содержимого в HTML-документе. Вы даже можете пойти дальше. Допустим, вы хотите начать номер своей страницы с 10. Затем вы можете использовать правило @page: first, чтобы сбросить счетчик для первой страницы до значения 9.

@page { counter-increment: page }
@page:first { counter-reset: page 9 }

Сочетание обоих правил сбросит счетчик для первой страницы до 9. Затем для каждой страницы (включая первую) он увеличит счетчик. Это приводит к значению счетчика 10 для первой страницы, 11 для второй и так далее.

Вы также можете использовать чистый CSS

Пример:

@page {
    counter-increment: page;
    counter-reset: page 1;
    @top-right {
        content: "Page " counter(page) " of " counter(pages);
    }
}

... в теории. В реальном мире только PrinceXML поддерживает это.

 Scoots23 окт. 2017 г., 15:04
Хм. К сожалению, это для слабого программного обеспечения для создания отчетов на основе браузера. Он должен работать для печати в браузере. Тем не менее, если я вернусь к клиенту и скажу: «Извини, приятель, интернет говорит, что нет», по крайней мере, я сделаю все возможное,
 Scoots23 окт. 2017 г., 14:19
Как уже упоминалось в вопросе, пытаясь использоватьcounter-increment в@page заставляет счетчик возвращаться как 0 при использовании в Firefox 56 [64 бит]. Я сделал тебе юмор и включилcounter-reset Править тоже, без изменений.
 spotnick23 окт. 2017 г., 14:47
Насколько я могу судить, функции CSS для постраничных носителей предназначены в первую очередь для систем, которые отображают для печати, а не для систем, отображающих для экрана (браузеры) или функции печати в браузерах. Примером механизма HTML / CSS для печати является Prince. Таким образом, @page не будет работать в браузере, и (насколько я знаю) не был предназначен.ссылка

Ваш ответ на вопрос