我有一个主要使用SVG绘制的日历。绘图的几个方面(如语言)由JQuery UI对话框中的输入控制。从浏览器打印时,我使用媒体CSS部分隐藏对话框和其他与日历无关的页面组件,因此只打印日历。
这一切都运作良好。即使对话框在浏览器中可见,日历也会按预期打印,而不显示对话框。
只要对话框在日历上居中,或推到左侧。如果对话框可见并且被推到页面右侧,甚至部分,则打印版本会急剧缩小,大约是正常尺寸的一半。向左移动对话框会将打印版本恢复为正常大小。
我尝试将所有ui- *组件隐藏在媒体打印CSS批发中,同时使用visibility:hidden和display:none,但没有成功。我和检查员一起探查了代码,寻找可能造成这种情况的超大div,但我已经空了。
如果对话被驳回,一切都很顺利。
这种情况发生在我尝试过的所有浏览器上 - IE 11,以及Firefox和Chrome的最新版本。
答案 0 :(得分:0)
经过深思熟虑之后,事实证明这是由Jquery UI为其某些组件内联编写样式信息引起的。所以'显示:无'在我的样式表中,优先于' display:block' JQUI迫使其成分。将我的样式表规则变为' display:none!important'修好了。
我不认为这是一个好的设计或解决方案,但我不知道如何解决它。 JQUI应该避免使用内联样式,并坚持在样式表文件中保留样式信息,就像它与相关的可见性:隐藏'一样。当它未显示时,它将用于此组件。