如果你想在A4打印(大约540px)上保留列,这是一个好主意
@media print { .make-grid(print-A4); } .make-print-A4-column(@columns) { @media print { float: left; width: percentage((@columns / @grid-columns)); } }
你可以像这样使用它:
<div class="col-sm-4 col-print-A4-4">
2件事FYI -
要使打印视图看起来像平板电脑或桌面包括bootstrap asless,而不是.css,然后你可以在bootstrap_variables文件的末尾覆盖bootstrap响应类,例如:
@container-sm: 1200px; @container-md: 1200px; @container-lg: 1200px; @screen-sm: 0;
不要担心将这些变量放在文件的末尾。 LESS支持延迟加载变量,因此它们将被应用。
务必为打印指定样式表。 它可以是一个单独的样式表:
<link rel="stylesheet" type="text/css" media="print" href="print.css">
或者您为所有设备共享的内容:
<link rel="stylesheet" type="text/css" href="bootstrap.min.css"> # Note there's no media attribute
然后,您可以使用媒体查询在单独的样式表或共享样式表中为打印机编写样式:
@media print { /* Your styles here */ }
有一部分 @media print 在css文件中的代码(Bootstrap 3.3.1 [更新:]到3.3.5),这几乎剥离了所有的样式,所以即使它正在工作,你也会得到相当平淡的打印输出。
@media print
现在我不得不求助于剥离 @media print 来自bootstrap.css的部分 - 我真的 的 不 强> 我很高兴,但我的用户希望直接获取屏幕,所以现在必须这样做。如果有人知道如何抑制它而不更改引导程序文件我会非常感兴趣。
这是'违规'代码块,从第192行开始:
@media print { *, *:before,enter code here *:after { color: #000 !important; text-shadow: none !important; background: transparent !important; -webkit-box-shadow: none !important; box-shadow: none !important; } a, a:visited { text-decoration: underline; } a[href]:after { content: " (" attr(href) ")"; } abbr[title]:after { content: " (" attr(title) ")"; } a[href^="#"]:after, a[href^="javascript:"]:after { content: ""; } pre, blockquote { border: 1px solid #999; page-break-inside: avoid; } thead { display: table-header-group; } tr, img { page-break-inside: avoid; } img { max-width: 100% !important; } p, h2, h3 { orphans: 3; widows: 3; } h2, h3 { page-break-after: avoid; } select { background: #fff !important; } .navbar { display: none; } .btn > .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px solid #000; } .table { border-collapse: collapse !important; } .table td, .table th { background-color: #fff !important; } .table-bordered th, .table-bordered td { border: 1px solid #ddd !important; } }
我找到的最佳选择是 http://html2canvas.hertzen.com/ http://jsfiddle.net/nurbsurf/1235emen/
html2canvas(document.body, { onrendered: function(canvas) { $("#page").hide(); document.body.appendChild(canvas); window.print(); $('canvas').remove(); $("#page").show(); } });
如果有人正在寻找解决方案 的 Bootstrap v2.X.X 强> 这里。我要离开我正在使用的解决方案。 这并没有在所有浏览器上进行全面测试,但它可能是一个良好的开端。
1)确保媒体属性 bootstrap-responsive.css 是 screen 。
bootstrap-responsive.css
screen
<link href="/css/bootstrap-responsive.min.css" rel="stylesheet" media="screen" />
2)创建一个 print.css 并确保其媒体属性 print
print.css
print
<link href="/css/print.css" rel="stylesheet" media="print" />
3)里面 print.css ,在html&amp;中添加您网站的“宽度”身体
html, body { width: 1200px !important; }
4.)重现必要的媒体查询类 print.css 因为他们在里面 bootstrap-responsive.css 我们在打印时禁用了它。
.hidden{display:none;visibility:hidden} .visible-phone{display:none!important} .visible-tablet{display:none!important} .hidden-desktop{display:none!important} .visible-desktop{display:inherit!important}
这是完整版 print.css :
html, body { width: 1200px !important; } .hidden{display:none;visibility:hidden} .visible-phone{display:none!important} .visible-tablet{display:none!important} .hidden-desktop{display:none!important} .visible-desktop{display:inherit!important}
替换每一个 col-md- 同 col-xs-
col-md-
col-xs-
例如:替换每一个 col-md-6 至 col-xs-6 。
col-md-6
col-xs-6
这对我有用,让我摆脱这个问题你可以看到你必须要更换的东西。