【问题标题】:Print site logo just on first page (@media print )仅在第一页上打印网站徽标(@media print)
【发布时间】:2018-02-21 20:51:09
【问题描述】:

我需要创建网站的打印版本,正如我在标题中提到的,我需要在第一页上显示网站徽标。例如,如果我打印主页,我得到 5 页,那么徽标应该只显示在第一页上。

@media print 可以吗?

到目前为止我尝试过的方法但不起作用

@media print {
#top-menu,
#main-navigation-sticky-wrapper,
#action-bar,
.teaser-cda,
.pre-footer,
.footer,
.post-footer,
.header .logo {
    display: none;
}
@page:first {
    .header .logo { display:block }
}

【问题讨论】:

    标签: html css css-paged-media


    【解决方案1】:

    首页的正确语法 (according to MDN) 是:

    @page :first {
       /* .... */
    }
    

    两个组件之间没有空格。不过要小心,因为 @page :first 的兼容性没有明确定义。

    虽然它甚至可能没有必要。我认为块级元素不会在每个页面上重复,因此您可能只需要确保徽标显示在 @media print { ... } 中。

    您还需要检查元素及其容器元素,以确保它们都没有position: fixed,因为这也可能导致元素在每个打印页面上重复。

    【讨论】:

    • 有道理。但是当我定义 .header .logo { display: block; } 在@media print { } 中,当我打印页面和打印预览时,徽标再次出现在每个页面上。有什么想法吗?
    • 徽标(或其任何父元素)是否应用了与定位相关的其他样式?我认为position: fixedposition: absolute 可能会导致它在每一页上重复。
    • 是的,这就是线索。当我改变位置时:固定;定位:相对;奇迹般有效。谢谢
    • @MileMijatovic 我更新了答案以反映这个建议。
    猜你喜欢
    • 2021-12-21
    • 2017-10-01
    • 1970-01-01
    • 2012-11-09
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    相关资源
    最近更新 更多