Печать номеров страниц на страницах при печати html
Я прочитал много веб-сайтов о печати номеров страниц, но все же я не мог отобразить его на моей странице html при попытке распечатать его.
Итак, следующий код CSS:
@page {
margin: 10%;
@top-center {
font-family: sans-serif;
font-weight: bold;
font-size: 2em;
content: counter(page);
}
}
Я попытался установить правило этой страницы внутри
@media all {
*CSS code*
}
И вне его попытался поместить его в @media print
, но ничто не помогло мне отображать номера страниц на моей странице. Я пытался использовать FireFox и Chrome (на основе WebKit, как вы знаете). Я думаю, проблема в моем коде html или css. Может ли кто-нибудь показать мне пример реализации этого правила @page
на большой странице html с несколькими страницами? Мне просто нужен код html-страницы и код css файла, который работает.
Постскриптум У меня есть последние поддерживаемые версии браузеров.
Ответы
Ответ 1
Поскольку @page с номерами страниц не работают в браузерах, я искал альтернативы.
Я нашел ответ, опубликованный Оливером Коллом.
Я опубликую это здесь, чтобы каждый мог найти его легче:
Для этого ответа мы не используем @page, который является чистым ответом 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>
Таким образом, вы можете настроить номер своей страницы, отредактировав параметры в #pageFooter. Мой пример:
#pageFooter:after {
counter-increment: page;
content:"Page " counter(page);
left: 0;
top: 100%;
white-space: nowrap;
z-index: 20;
-moz-border-radius: 5px;
-moz-box-shadow: 0px 0px 4px #222;
background-image: -moz-linear-gradient(top, #eeeeee, #cccccc);
}
Этот трюк отлично сработал. Надеюсь, это поможет вам.
Ответ 2
Можете ли вы попробовать это, вы можете использовать content: counter(page);
@page {
@bottom-left {
content: counter(page) "/" counter(pages);
}
}
Ссылка: http://www.w3.org/TR/CSS21/generate.html#counters
http://www.princexml.com/doc/9.0/page-numbers/
Ответ 3
Это то, что вы хотите:
@page {
@bottom-right {
content: counter(page) " of " counter(pages);
}
}
Ответ 4
**@page {
margin-top:21% !important;
@top-left{
content: element(header);
}
@bottom-left {
content: element(footer
}
div.header {
position: running(header);
}
div.footer {
position: running(footer);
border-bottom: 2px solid black;
}
.pagenumber:before {
content: counter(page);
}
.pagecount:before {
content: counter(pages);
}
<div class="footer" style="font-size:12pt; font-family: Arial; font-family: Arial;">
<span>Page <span class="pagenumber"/> of <span class="pagecount"/></span>
</div >**