打印时的文字阴影和阴影(Chrome)

hog*_*ool 12 css google-chrome printing-web-page

我正在使用HTML,CSS和JS制作一些可打印的日历网站.

不幸的是我无法使用调用的CSS属性text-shadow,因为文本后面的阴影打印为纯黑色文本,没有任何模糊或透明度.

当我尝试使用box-shadow任何div 时出现同样的问题- 阴影打印像纯黑色而没有透明度.

我正在使用Chrome风格html {-webkit-print-color-adjust: exact;}来确保打印所有背景颜色.

任何解决方法?我宁愿不使用任何背景图片.

编辑:我不想隐藏阴影,当然这很容易.我想要正确打印阴影.

Dav*_*ave 16

我意识到这是一个老问题,但请注意,可以在Chrome中正确打印阴影.您需要设置这两个-webkit-print-color-adjust和过滤器,如此错误线程中所示:https://code.google.com/p/chromium/issues/detail?id = 174583

.thing {
    -webkit-print-color-adjust:exact;
    -webkit-filter:opacity(1);
}
Run Code Online (Sandbox Code Playgroud)

(我更喜欢设置不透明度而不是blur在bug中使用,只是因为它似乎可能导致更少的问题).

请注意,这将限制打印的分辨率(过滤器使其发送光栅化版本),因此文本可能变得难以阅读.如果你真的想解决这个问题,我建议复制div(一个用于阴影,一个用于过滤黑客和透明文本,另一个用于没有阴影的文本)

  • 从 Chrome 46 开始,添加过滤器会导致文本严重像素化。据我所知,目前在 Chrome 中没有针对此的解决方法 (2认同)

Ans*_*son -1

您无需为了使其打印看起来漂亮而牺牲您的网页。只需定义一个即可print.css使打印视图满足您的需求。

# index.html
<head>
  <link href="/css/print.css" media="print" rel="stylesheet" type="text/css" /> 
</head>

# print.css
.shadow {
  text-shadow: none;
}
Run Code Online (Sandbox Code Playgroud)

有关更多信息,Smashing Magazine 有一篇关于如何设置打印样式表的有用文章。