Bootstrap 3 - 在每个网格列后打印布局和中断

And*_*dyC 74 html css printing twitter-bootstrap

如果您采用此示例(请在此处查看:http://www.bootply.com/93816)

<div class="container">
  <div class="row">
    <div class="col-md-6">Column1</div>
    <div class="col-md-6">Column2</div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

当您对生成的页面进行打印预览时,它似乎会导致列堆叠/中断(就像浮动被移除一样),而不是在通常的网格布局中显示它们.

我已经看过@media printbootstrap.css 的各个部分,我看不到任何相关的div内容会导致这种情况发生.

有谁知道如何避免这种情况?

And*_*dyC 119

Bojangles评论让我朝着正确的方向前进,所以我会回答我自己的问题.

使用'xs'大小网格列,根据http://getbootstrap.com/css/#grid-options用于"超小设备电话(<768px)",Bootstrap按照预期快乐打印.

<div class="container">
  <div class="row">
    <div class="col-xs-6">Column1</div>
    <div class="col-xs-6">Column2</div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 我试过这个并没有用.使用bootstrap 3.1 (6认同)
  • 正如@vijay所说它会在打印模式下使用col-xs,有没有改变这个?我需要打印页面,因为它在大型设备上看起来(col-lg)? (4认同)
  • 可以解决它,但希望有正确的方法来解决。使用xs尺寸,会变得挑剔,这将使它很难在较小的手机上阅读...包括iPhone。 (2认同)
  • 谢谢.我尝试了所有*除了*为xs. (2认同)
  • 谢谢,你今天救了我的命:) (2认同)
  • 谢谢**尝试1**:我使用col-xs它工作**尝试2**:col-sm +在横向模式下打印也工作**尝试3**:col-md +在横向模式下打印也工作**在风景模式下尝试4**col-lg +打印也工作**尝试5**col-lg打印在纵向模式下打破**尝试6**col-md打印在纵向模式下打破 - - - 所有这些变化可能由于我的div设置不均匀 (2认同)

Ger*_*ard 33

解决方案必须是元素而不是页面本身.您也不应该依赖col-xs -...因为它们适用于小屏幕/设备.

问题是页面本身在像素方面很小,因此bootstrap认为它需要应用xs样式.

Bootstrap团队不会解决此问题,该问题与https://code.google.com/p/chromium/issues/detail?id=273306有关

Bootstrap解决方案模糊地记录了这种"古怪"的行为https://github.com/twbs/bootstrap/issues/12078.

在我看来,应该有一个col-print -...布局类集,所以特别小和打印可以共存.

我的临时解决方案如下:

@media print {
  [class*="col-sm-"] {
    float: left;
  }
}
Run Code Online (Sandbox Code Playgroud)

您可以使用col-print,在我们的例子中我们使用sm而不是xs,因为我们希望xs阻止布局,这就是为什么利用这些类进行打印将无法工作.


Pao*_*chi 19

基于Gerard解决方案,您可以像这样使用bootstrap mixin .make-grid(),因此打印不会落到xs大小

@media print {
  .make-grid(sm);
}
Run Code Online (Sandbox Code Playgroud)

或生成的CSS(如果你不喜欢使用更少):

@media print {
  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
    float: left;
  }
  .col-sm-12 {
    width: 100%;
  }
  .col-sm-11 {
    width: 91.66666667%;
  }
  .col-sm-10 {
    width: 83.33333333%;
  }
  .col-sm-9 {
    width: 75%;
  }
  .col-sm-8 {
    width: 66.66666667%;
  }
  .col-sm-7 {
    width: 58.33333333%;
  }
  .col-sm-6 {
    width: 50%;
  }
  .col-sm-5 {
    width: 41.66666667%;
  }
  .col-sm-4 {
    width: 33.33333333%;
  }
  .col-sm-3 {
    width: 25%;
  }
  .col-sm-2 {
    width: 16.66666667%;
  }
  .col-sm-1 {
    width: 8.33333333%;
  }
  .col-sm-pull-12 {
    right: 100%;
  }
  .col-sm-pull-11 {
    right: 91.66666667%;
  }
  .col-sm-pull-10 {
    right: 83.33333333%;
  }
  .col-sm-pull-9 {
    right: 75%;
  }
  .col-sm-pull-8 {
    right: 66.66666667%;
  }
  .col-sm-pull-7 {
    right: 58.33333333%;
  }
  .col-sm-pull-6 {
    right: 50%;
  }
  .col-sm-pull-5 {
    right: 41.66666667%;
  }
  .col-sm-pull-4 {
    right: 33.33333333%;
  }
  .col-sm-pull-3 {
    right: 25%;
  }
  .col-sm-pull-2 {
    right: 16.66666667%;
  }
  .col-sm-pull-1 {
    right: 8.33333333%;
  }
  .col-sm-pull-0 {
    right: auto;
  }
  .col-sm-push-12 {
    left: 100%;
  }
  .col-sm-push-11 {
    left: 91.66666667%;
  }
  .col-sm-push-10 {
    left: 83.33333333%;
  }
  .col-sm-push-9 {
    left: 75%;
  }
  .col-sm-push-8 {
    left: 66.66666667%;
  }
  .col-sm-push-7 {
    left: 58.33333333%;
  }
  .col-sm-push-6 {
    left: 50%;
  }
  .col-sm-push-5 {
    left: 41.66666667%;
  }
  .col-sm-push-4 {
    left: 33.33333333%;
  }
  .col-sm-push-3 {
    left: 25%;
  }
  .col-sm-push-2 {
    left: 16.66666667%;
  }
  .col-sm-push-1 {
    left: 8.33333333%;
  }
  .col-sm-push-0 {
    left: auto;
  }
  .col-sm-offset-12 {
    margin-left: 100%;
  }
  .col-sm-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-sm-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-sm-offset-9 {
    margin-left: 75%;
  }
  .col-sm-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-sm-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-sm-offset-6 {
    margin-left: 50%;
  }
  .col-sm-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-sm-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-sm-offset-3 {
    margin-left: 25%;
  }
  .col-sm-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-sm-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-sm-offset-0 {
    margin-left: 0%;
  }
}
Run Code Online (Sandbox Code Playgroud)


小智 7

我创建了一个单独的print.css并添加了以下内容:

@page {
    size: A3;
    margin-left: -5cm;
    margin-right: -5cm;
    }
Run Code Online (Sandbox Code Playgroud)

适用于Chrome,但负边距会杀死IE.Firefox似乎不需要它.我会对另一种方法感兴趣.