JQuery UI隐藏对话框干扰打印

时间:2014-09-29 09:26:20

标签: jquery css jquery-ui printing

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

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

只要对话框在日历上居中,或推到左侧。如果对话框可见并且被推到页面右侧,甚至部分,则打印版本会急剧缩小,大约是正常尺寸的一半。向左移动对话框会将打印版本恢复为正常大小。

我尝试将所有ui- *组件隐藏在媒体打印CSS批发中,同时使用visibility:hidden和display:none,但没有成功。我和检查员一起探查了代码,寻找可能造成这种情况的超大div,但我已经空了。

如果对话被驳回,一切都很顺利。

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

1 个答案:

答案 0 :(得分:0)

经过深思熟虑之后,事实证明这是由Jquery UI为其某些组件内联编写样式信息引起的。所以'显示:无'在我的样式表中,优先于' display:block' JQUI迫使其成分。将我的样式表规则变为' display:none!important'修好了。

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