2011-09-30 39 views
4

我有一个问题,这导致我一些头痛。我试图用print.css打印报告并正确格式化,但它每次都完全忽略我的css。有没有人有过这个问题?我确信CSS文件在正确的目录中,但仍然没有运气。打印/预览忽略我的Print.css

这里是我的模板:

注:我用JavaScript来控制打印按钮和JavaScript里面是我已经包括了CSS链接。我也试着把它放在HTML页面上,但没有帮助。

... 
<script type="text/javascript"> 

function printContent(id){ 

    str=document.getElementById(id).innerHTML 
    newwin=window.open('','printwin','left=100,top=100,'+ 
         'width=900,height=400, scrollbars=1') 
    newwin.document.write('<HTML>\n<HEAD>\n') 
    newwin.document.write('<TITLE>Print Page</TITLE>\n') 
    newwin.document.write('<link rel="stylesheet" type="text/css" '+ 
         'href="/media/css/print.css" media="print"/>\n') 
    newwin.document.write('<script>\n') 
    ... 

现在对于这个项目,我使用Ubuntu 10.10,和Firefox 7。如果能够帮助都没有。

编辑

我安装了Firefox的Web开发工具栏。它允许您将页面视为不同的媒体。现在,当我点击打印时,它会显示我所有的样式更改,但是当我打印时,它不会跟随它们。

+0

什么是CSS?换句话说,究竟是什么让你觉得你的风格被忽略?我问,因为浏览器对打印样式表的支持是非常糟糕的,而且有很多原本应该工作的东西根本就没有。 – Pointy

+2

你尝试省略'media =“print”'?由于窗口专门用于打印目的,我不认为需要将电子表格附加到特定的媒体类型。 –

+0

@Pointss样式表具有不同的字体大小的标题,hr样式元素等。检查我的上面**编辑** – TheLifeOfSteve

回答

3
<html> 
    <head> 
     <title>your website title</title> 
     <link rel="stylesheet" media="screen" href="/media/css/mainStyle.css" type="text/css"> 
     <link rel="stylesheet" media="print" href="/media/css/print.css" type="text/css"> 
    </head> 
    <body> 
     <input type="button" value="Print" onClick="javascript:window.print();" /> 
    </body> 
</html> 

也许你可能想给HTML模板一个去,看看它是否适合你或适合你的需求。

在我看来,你提出的函数实际上更好的写在服务器端而不是客户端使用JavaScript,因为你试图在那里动态生成html页面。您可以将该页面输出为print.html或其他内容,一旦将该页面发送给客户端,您就可以应用print.css样式并进行打印。无论如何,这里只是一些想法,希望对你的情况有所帮助。干杯。

2

不知道这是否有帮助,但@media print {}应该在打印作业期间封装所有样式。

<style type="text/css"> 
    @media print{ 
     /* Make the HR tag have 50 px spacing above and below */ 
     hr{ padding: 50px 0px; } 
    } 
</style> 

这是SUPPOSED处理这种类型的样式。该脚本仍然可以负责包含css文件,但@media print {}会将嵌入其中的所有样式仅应用于打印作业。

+2

我确定您的意思是而不是 – Christoffer

+0

是的,谢谢Christoffer! – Furbeenator