2009-10-15 59 views
0

客户端下载开销希望我能很好地解释这一点,并希望我想正确的做法:)浏览器相关:CSS打印样式表 - 停止与@media

我的问题是,如果我有一个打印样式表有几个类可以“显示”背景图像,有没有办法让浏览器在打印时下载图像,或者是否需要预加载图像。

我用FF和IE做了打印式背景图像的混合效果。实际上IE似乎在打印时下载图像? FF没有这样做 - (即使Firefox的Live HTTP头文件插件也这样说!)。

我的代码基本上是这样说:

@media=screen 
.class 
{ 
    display: none; 

} 

@media=print 
.class 
{ 
    display: list-item !important; 
    list-style-image: 
} 

回答

0

不是一个很好的解决方案,但你可以提供一个“打印”按钮,它被点击之前实际打印时修改了样式,并改变它回来后?

例如(使用jQuery):

<script type="text/javascript" language="javascript"> 
    function doprint() { 
     $('.class').css('display','list-item').css('list-style-image','img.jpg'); 
     window.print(); 
     $('.class').css('display','none').css('list-style-image',''); 
    } 
</script> 

<input type="button" onclick="doprint();" /> 

很明显,你可以使用浏览器的打印功能解决这个问题。

还有你通过不预加载图像是很好,真正使用jQuery和脚本中使用了节省开销的问题...

+0

感谢您的Damovisa!但从可访问性的角度来看,我无法使用此解决方案。我想如果这是唯一可能的解决方案,我将不得不从头开始预加载。 干杯 Jared – Jared 2009-10-15 20:00:53

+0

没问题,也许如果预加载特别慢,你可能想看看你正在加载的图像的大小/格式? – Damovisa 2009-10-19 01:10:09