【发布时间】:2012-05-11 01:46:32
【问题描述】:
我有一个链接到我的网页的 CSS 样式表。当我查看网页时,它看起来应该是这样的,但是当我打印文档时,我再也看不到样式了。我已经用属性第二次添加了 css:media='print',但它不起作用。有人知道如何使用window.print() 函数并保持打印文档的样式吗?
ASPX:
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="cpHead" ClientIDMode="AutoID">
<link rel="stylesheet" type="text/css" media="screen" href="Styles/Site.css" />
<link rel="stylesheet" type="text/css" media="print" href="Styles/Site.css" />
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="Main" ClientIDMode="AutoID">
<asp:Image ID="imgHeader" Width="100%" runat="server" />
<asp:GridView ID="gvPrintData" Width="100%" runat="server" HeaderStyle-CssClass="printGridHeader" RowStyle-CssClass="printGridRow" AlternatingRowStyle-CssClass="printGridAltRow" />
</asp:Content>
.CS:
Response.Write("<script type='text/javascript'>window.print(); window.onfocus = function() { window.close(); }</script>");
综合浏览量(应有的外观):
Printedview(它在打印文档上的外观):
【问题讨论】:
-
总的来说,我发现在不同浏览器之间打印 HTML 不一致并且通常很麻烦,更不用说它很少看起来不错。您有机会输出 .pdf 文件进行打印吗?
-
您清除缓存了吗?如果文件在其缓存中,浏览器有时无法获取最新版本的文件。
-
@vari,缓存在这方面没有任何作用。内容发送给浏览器后,浏览器将关闭背景样式。这不是编程/api 问题,而是困扰 Web 开发人员多年的浏览器设置问题。
标签: c# javascript asp.net css printing