html - 正确打印 Twitter Bootstrap

标签 html css twitter-bootstrap printing

我真的很难正确打印我的 Twitter Bootstrap View ,并且想知道是否有人可以指出我正确的方向。我添加了一个自定义的“print.css”,它覆盖了一些原始的 Bootstrap 样式,以及一些我自己的组件的样式。

这是我的打印对话框: enter image description here

不确定您是否可以从图像中轻易分辨出来,但是这口井已经失去了它的背景,也没有跨越整个页面宽度。此外,“列”或“跨度”似乎都很不稳定。页面是这样构建的:(只显示第一行以保持干净)

<div class="container-fluid">
    <div class="row-fluid">
        <div class="span3">
            <div class="row-fluid">
                <div style="height: 150px; width: 300px">
                    <img class="img-rounded" src='data:image/png;base64,@Model.Unit.Image64' />
                </div>
            </div>

            <div class="row-fluid">
                ...
            </div>

        </div>
        <div class="span4">
            ...Pie chart control
        </div>
        <div class="span5">
            ...Bar chart control
        </div>

    </div>
</div>

这是我的 print.css:

@media print {
    body {
        margin: 0;
        padding: 0;
        line-height: 1.4em;
        word-spacing: 1px;
        letter-spacing: 0.2px;
        font: 13px Arial, Helvetica,"Lucida Grande", serif;
        color: #000;
    }

    #print-btn #update-btn #nav-left #nav-bar, #selectUnitContainer, .navbar, .sidebar-nav {
        display: none;
    }

    #print-btn, #update-btn, #units {
        display: none;
    }

    #nav-left {
        display: none;
    }

    #report-container {
        visibility: visible;
    }

    .well .span12{
        width: 100%;
        visibility: visible;
    }

    .navbar {
        display: none;
    }

    .sidebar-nav {
        display: none;
    }
}

最佳答案

首先 Bootstrap.css 确实带有pre-defined print styles比如:

/** 
 *  Use these for toggling content for print.
**/
.visible-print {
    display: block !important;
}

.hidden-print {
    display: none !important;
}

其次您可以使用 page-break css rule 进行测试将图表分隔到不同的页面上以获得更清晰的格式。

/** 
 *  Page-break-inside seems to
 *  be required for Chrome.
**/
div.somechart { 
   page-break-after: always; 
   page-break-inside: avoid;
}

第三次 测试,使用行格式来占据打印屏幕上的完整宽度,而不是依赖于 的百分比span3/col-*-3span4/col-*-4,因为看起来它们当您考虑以下因素时,您的行为正确:

  • 系统打印页边距
  • Bootstrap 的@print 定义边距
  • 页面间距
  • 打印屏幕上的跨度百分比。

最后最后一个有助于注意的事情(是的,尽管有自定义 @print 样式!):

<link href="/assets/css/bootstrap.min.css" rel="stylesheet" media="screen" />

到:

<link href="/assets/css/bootstrap.min.css" rel="stylesheet" media="all" />

关于html - 正确打印 Twitter Bootstrap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18974662/

相关文章:

javascript - 如何更改传单上缩放按钮的不透明度?

html - 样式未在 IE8 中应用于特定页面

jquery - 更改滚动条上 Bootstrap 导航栏的颜色

css - Angular 和 CSS : How to change the horizontal Navigation bar to Vertical on button click

html - 带有 margin auto 的元素不会在 chrome 中显示 flex 的父元素内部居中

CSS 简单的线条不起作用

twitter-bootstrap - 你怎么能在 Bootstrap 中有一个导航栏拆分按钮下拉组件?

html - 动态内容的水平对齐(特殊情况)

javascript - 如何使用纯 JavaScript 实现此按钮行为?

html - CSS 元素无法正确呈现