css - 打印时处理响应式媒体查询

标签 css twitter-bootstrap media-queries print-css

问题:https://output.jsbin.com/donapohuci

这是桌面上的两列布局。使用 CSS 媒体查询,当视口(viewport)为 800 像素或更小时,我将其设置为一列:

div {
  float: left; 
  width: 50%;
}

@media (max-width:800px) {
  div {
    width: 100%
  }
}

问题是,当您打印此文件时(目前使用 Chrome),它会判断信纸大小的纸张小于 800 像素,因此使用媒体查询样式进行打印。

我们正在使用 Bootstrap,它使用这样的媒体查询。一种解决方案是修改 CSS,使其添加“屏幕”修饰符:

 @media screen and (max-width:800px)

唉,这是一个巨大的企业元素,有多个团队都在做出贡献,所以我们真的不想在这个时候弄乱任何基础 CSS(因为这通常会导致其他团队出现其他问题的多米诺骨牌效应...... )

有没有办法解决这个问题,即只为这个我们需要打印“如您在屏幕上看到的”的特定页面编写单独的打印样式表?

我正在考虑以某种方式告诉浏览器“假装纸张比实际更宽,并在打印时使用桌面布局...”

最佳答案

我要解决这个问题的方法是在常规 CSS 的链接中添加媒体 screen 属性,这样它就不适用于打印,并创建一个单独的自定义打印样式表,之后调用,再次使用 print 媒体属性:

<link href="print.css" rel="stylesheet" media="print">

默认的 Bootstrap 可能包含打印文件,但这应该很容易删除,如果不可能,最终样式表仍会覆盖这些样式。

关于css - 打印时处理响应式媒体查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44596869/

相关文章:

css - 检查与实际移动设备的背景图像不同

html - 为什么 <a> 标签不适合子图像

javascript - 将div转换为图片,在javascript中的bootstrap modal中显示

html - 响应式表格仅适用于 Firefox

css - @media 查询在浏览器调整大小时工作正常但在移动设备上不工作

javascript - 导航栏中的外部 URL 在 Bootstrap 中不起作用

javascript - 使用原型(prototype)从 CSS 类获取颜色

javascript - 如何获取现有弹出窗口的 Bootstrap 弹出窗口 'data-placement'?

css - 使用 Twitter Bootstrap 自动 float

html - 当低于文本区域时,按钮会粘在窗体上