2014-09-29 48 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應避免使用內聯樣式,並堅持將樣式信息保留在其樣式表文件中,就像它在不顯示時使用的相關「可見性:隱藏」規則一樣。