【发布时间】:2011-06-23 01:23:55
【问题描述】:
jQuery 是否可以修改特定媒体类型(例如打印)的 CSS?
我的具体问题是我在一个元素上使用了动画,它覆盖了打印样式表,这破坏了我的打印布局。尽管我的问题与提出的一般问题略有不同,但我认为答案应该可以帮助我解决问题。任何可能的解决方法也会有所帮助。非常感谢。
【问题讨论】:
标签: jquery css media-queries
jQuery 是否可以修改特定媒体类型(例如打印)的 CSS?
我的具体问题是我在一个元素上使用了动画,它覆盖了打印样式表,这破坏了我的打印布局。尽管我的问题与提出的一般问题略有不同,但我认为答案应该可以帮助我解决问题。任何可能的解决方法也会有所帮助。非常感谢。
【问题讨论】:
标签: jquery css media-queries
使用隐藏元素的特定规则为您的媒体(打印)添加一个 CSS(例如 #div { display: none; })
在你的脚本中,如果这样:
$('#div').is(':visible')
是真的,那么你是在印刷媒体上(印刷)。
【讨论】:
window.matchMedia('print') 并监听媒体变化,但它不是很可靠。
您不需要使用 Javascript 来执行此操作。只需在您的 css 文档中使用 @media 规则。
您可以将所有这些内容写在一个 CSS 文件中。这里是具体的W3C Documentation
@media screen {
/* all your fancy screen css with a bunch of animation stuff*/
}
@media print {
/* all your fancy print css just plain */
}
您可以编写非常具体的声明并根据您的需要匹配所有元素。顺便说一句,它支持 低至 IE6。在我们的项目中就像一个魅力。
@media print {
body { font-size: 10pt }
}
@media screen {
body { font-size: 13px }
}
@media screen, print {
body { line-height: 1.2 }
}
【讨论】:
@media print 中设置您的打印样式。