删除CSS @media打印规则而不修改CSS文件

时间:2015-09-22 12:12:29

标签: javascript html css

我将bootstrap CSS文件添加到我的页面。我不想修改CSS文件。

当我尝试你打印页面时,bootstrap修改媒体以打印样式并删除所有颜色属性。

如何取消用于打印的引导程序媒体设置?

这个jquery代码可以删除所有的css; $( “*”)的CSS( “所有”, “未设置”);

是否可以仅删除@media display {..}

的css设置

1 个答案:

答案 0 :(得分:4)

您可以获取样式表并删除以'@media print'开头的每个规则,请注意styleSheets[0]应该指向具有相关规则的样式表。

for(var i=document.styleSheets[0].rules.length -1; i >0; i--){
   if(document.styleSheets[0].rules[i].cssText.indexOf("@media print") !=-1 )
   {
      document.styleSheets[0].deleteRule(i);
   }
}
免责声明:它的臭代码,我不会在实际应用中使用它。我会寻找一个合适的解决方案(即从css文件中删除行) 但是,有时您无法控制所服务的所有文件,或者您只需要打印一个页面而无需其他格式。那就足够了。