2014-09-29 78 views
0

我有一个主要使用SVG绘制的日历。绘图的几个方面(如语言)由JQuery UI对话框中的输入控制。从浏览器打印时,我使用了媒体CSS部分,该部分隐藏了与日历不相关的对话框和其他页面组件,因此只打印日历。JQuery UI隐藏对话框干扰打印

这一切都很好。即使对话框在浏览器中可见,日历也会按预期打印,而不显示对话框。

只要对话框居中在日历上,或向左移动即可。如果该对话框可见并且被推到页面的右侧,即使是部分,印刷版本也会显着缩小,达到其正常尺寸的一半。将对话框向左移动可将打印版本恢复到正常尺寸。

我试图隐藏媒体中的所有ui- *组件打印CSS批发,使用可见性:隐藏和显示:无,没有成功。我向检查员透露了代码,正在寻找一个可能导致这种情况的超大的div,但我已经空了。

如果对话被解散,一切都很好。

这发生在我尝试过的所有浏览器上 - IE 11,以及最新版本的Firefox和Chrome。

回答

0

经过很长时间的讨论后发现,这是由于Jquery UI为其内嵌组件的某些组件写入样式信息造成的。所以我的样式表中的'display:none'失去了'display:block'的优先级,JQUI强行进入了它的组件。把我的样式表规则改为'display:none!important'解决了这个问题。

我不认为这是一个很好的设计或解决方案,但我不知道如何解决它。 JQUI应避免使用内联样式,并坚持将样式信息保留在其样式表文件中,就像它在不显示时使用的相关“可见性:隐藏”规则一样。