代码之家  ›  专栏  ›  技术社区  ›  Brian Fisher

避开CSS背景而不是打印的最佳方法

  •  3
  • Brian Fisher  · 技术社区  · 17 年前

    CSS背景不打印通常效果很好,然而,有时我使用它们来传达上下文信息。对于那些不打印但确实想要显示的CSS背景,最好的方法是什么。我目前正在处理的示例是一个显示财务信息的表。使用不同的背景色来表示数字的“好”程度(例如非常有利可图、有利可图、中性、负数、非常负数)。

    5 回复  |  直到 17 年前
        1
  •  6
  •   Prestaul    14 年前

    当我真的需要背景色时,我用边框来模拟背景。类似的方法会奏效(但我很抱歉没有进行测试):

    div.must-have-background-for-print {
        position: relative;
        width: 400px;
    }
    div.must-have-background-for-print div.background {
        position: absolute;
        top: 0;
        left: 0;
        height: 100%;
        border-left: 400px solid #999;
    }
    

    如果您从以下内容开始:

    <div class="has-background">Some stuff in here</div>
    

    您可以使用以下选项:

    <div class="has-background">
        <div class="background" />
        <div class="content">Some stuff in here</div>
    </div>
    

    这是非常难看,但我在过去使用过它,它确实解决了背景色不打印的问题。而且,在您提问之前,您必须根据您的具体情况调整css。我只是简单地描述了使用边框替换背景的概念。您的实现将取决于页面的结构,如果您的元素上没有固定的宽度或高度,这将非常困难。

        2
  •  2
  •   Jeremy    17 年前

    两项建议:

    1. 表行中的颜色代码文本

    您甚至可以将这些与背景色合并到普通视图中。

        3
  •  2
  •   Element    17 年前

    我在html中遇到了同样的问题颜色编码表格数据,最终我只是切换到pdf生成用于彩色打印输出,并且只在html中提供黑白

        4
  •  2
  •   EndangeredMassa    15 年前

    这是一个浏览器设置。 Turn on background printing in IE . 因此,您可以更改浏览器设置(如果在intranet上,则可能),也可以将报表导出到Excel或其他格式进行打印。

        5
  •  0
  •   bchhun    17 年前