我首先测试了一段如下的代码,发现打印预览时的确无法显示背景色。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Regonline</title> <link href="css/bootstrap.css" rel="stylesheet" /> <link href="css/font-awesome.min.css" rel="stylesheet" /> </head> <body> <style> .main{ overflow: hidden; padding: 40px; } .one, .two, .three{ float: left; height: 40px; } .one{ width: 40%; background-color: red; } .two{ width: 30%; background-color: green; } .three{ width: 30%; background-color: pink; } </style> <div class="main"> <div class="one"></div> <div class="two"></div> <div class="three"></div> </div> </body> </html>
比较奇怪的是,如果我删除bootstrap的样式引用,就可以正常打印预览了。想来必定是bootstrap3 设置了@media print相关属性导致。
果然,翻开源码,发现如下代码:
@media print { * { color: #000 !important; text-shadow: none !important; background: transparent !important; box-shadow: none !important; } a, a:visited { text-decoration: underline; } a[href]:after { content: " (" attr(href) ")"; } abbr[title]:after { content: " (" attr(title) ")"; } a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; } pre, blockquote { border: 1px solid #999; page-break-inside: avoid; } thead { display: table-header-group; } tr, img { page-break-inside: avoid; } img { max-width: 100% !important; } p, h2, h3 { orphans: 3; widows: 3; } h2, h3 { page-break-after: avoid; } select { background: #fff !important; } .navbar { display: none; } .table td, .table th { background-color: #fff !important; } .btn > .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px solid #000; } .table { border-collapse: collapse !important; } .table-bordered th, .table-bordered td { border: 1px solid #ddd !important; } }
注意代码里面的 color:#000 !important; 以及 background-color:transparent !important; 。它表示打印时,页面中的文字都为黑色,并且背景色都设置为透明。因为有了这样的样式,我们的背景色就打印
不出来了。去掉这两段代码,一切OK!
值得一提的说:如果页面中有超链接,打印时会显示超链接的地址,这样比较难看。我们删除对应的样式即可。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
问题内容: 我正在尝试打印页面。在该页面中,我为表格提供了背景色。当我在chrome中查看打印预览时,它不具有背景色属性… 所以我尝试了这个属性: 但仍然没有显示颜色。 问题答案: Chrome CSS属性可以正常工作。 但是,确保您拥有正确的CSS进行打印通常很棘手。可以做几件事来避免您遇到的困难。首先,将所有打印CSS与屏幕CSS分开。这是通过和完成的。 通常,仅设置一些额外的CSS是不够的,
我对我的代码有一个问题,它应该改变我开始活动的背景色。我应该用单选按钮(在RadioGroup中)在蓝色和红色之间进行选择。当我点击设置菜单中的红色/蓝色单选按钮时,总会出现错误。 这两行是错的? JAVAlang.NullPointerException:尝试调用虚拟方法“void”。小装置。相对论。setBackgroundColor(int)“”在com的空对象引用上。实例克莱克斯。游戏的反
问题内容: 我正在尝试使用chrome打印一个PHP生成的文档,在浏览器上看起来不错,链接到我要打印的页面,但是我的打印机无法打印任何彩色背景,请问有人可以提供任何建议吗?我可以用CSS做到这一点吗? 问题答案: 您可以在浏览器中调整是否打印背景颜色和图像。查看浏览器的打印选项。 GoogleChrome从26版(2013年3月)开始提供此功能。 同样从版本17开始,Chrome允许通过在元素CS
问题内容: 我在这家公司是新来的,我们有一款使用英里数的CSS的产品。我正在尝试为我们的应用制作可打印的样式表,但是in 中存在问题。 其他所有内容都可以使用,我可以修改边框等,但不会在打印中出现。现在,我了解到,如果没有更多详细信息,可能所有人都无法回答我的问题。我只是想知道以前是否有人遇到过此问题或类似问题。 问题答案: 如果用户在其打印设置中关闭了“打印背景色和图像”,则没有CSS会覆盖它,
在超文本标记语言中,我什么时候使用颜色,背景颜色和背景标签有什么区别? 有什么区别?
因此,我正在编写一个程序,在这个程序中,我最终希望一个按钮在按下时改变颜色。到目前为止,我的困境是: -尽管切换了setOpaque()和setContentAreaFilled()的真/假,但我无法获取当前设置为显示背景色的JButton。在尝试添加ActionListener之前,我希望能够做到这一点。 -我想用类似于JToggleButton()的东西来改变颜色,但是我想用背景而不是图标来改