jQuery可以修改特定媒体类型的CSS吗?

Per*_*ave 14 css jquery media-queries

是否有可能jQuery修改特定媒体类型的CSS(例如打印)?

我的具体问题是我在元素上使用动画并且它覆盖了打印样式表,这会破坏我的打印布局.虽然我的问题与提出的一般问题略有不同,但我认为答案可以帮助我解决我的问题.任何可能的解决方法也会有所帮助.非常感谢.

gea*_*tal 6

您不需要使用Javascript执行此操作.只需@media在css文档中使用该规则即可.你可以只在一个css文件中写下所有这些东西.这是特定的W3C文档

@media screen {

/* all your fancy screen css with a bunch of animation stuff*/

}

@media print {

/* all your fancy print css just plain */

}
Run Code Online (Sandbox Code Playgroud)

您可以编写非常具体的声明,并根据您的需要匹配所有元素.顺便说一句,它支持IE6.就像我们项目中的魅力一样.

@media print {
   body { font-size: 10pt }
}

@media screen {
   body { font-size: 13px }
}

@media screen, print {
   body { line-height: 1.2 }
}
Run Code Online (Sandbox Code Playgroud)

  • 不要认为这完全解决了我的问题.可以说我按照你的建议设置了样式表.假设我为打印和屏幕指定了不同的宽度.显示页面后,我使用jquery $(div).animate({width:100px}来更改宽度.现在,当我打开浏览器时,它将使用新的"100px"宽度而不是打印宽度.希望有道理. (3认同)

Jul*_*ZET 5

使用隐藏元素的特定规则为您的媒体(打印)添加css(例如#div {display:none;})

在您的脚本中,如果这样:

$('#div').is(':visible')
Run Code Online (Sandbox Code Playgroud)

是的,然后你在印刷媒体上(印刷).