79

この例を使用する場合 (ここで表示: 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>

生成されたページの印刷プレビューを実行すると、通常のグリッド レイアウトで列を表示する代わりに、列がスタック/ブレーク (フロートが削除されたかのように) するように見えます。

私は@media printbootstrap.cssのセクションを見てきましたが、それに関連するものは何も見られませdivん。

これを回避する方法を知っている人はいますか?

4

4 に答える 4

33

解決策は、ページ自体ではなく要素にある必要があります。また、col-xs-... に依存するべきではありません。これは、小さな画面/デバイス用であるためです。

問題は、ページ自体がピクセル単位で小さいため、ブートストラップは xs スタイルを適用する必要があると判断することです。

この問題は Bootstrap チームによって対処されず、https://code.google.com/p/chromium/issues/detail?id=273306に関連しています

ブートストラップの解決策は、この「風変わりな」動作をあいまいに文書化することでしたhttps://github.com/twbs/bootstrap/issues/12078

私の意見では、col-print-... レイアウト クラスのセットが存在する必要があるため、極小サイズと印刷を共存させることができます。

私の暫定的な解決策は次のとおりです。

@media print {
  [class*="col-sm-"] {
    float: left;
  }
}

col-print を使用できます。私たちの場合、xs ではなく sm を使用しています。これは、xs でレイアウトをブロックする必要があるためです。これが、これらのクラスを印刷に使用できない理由です。

于 2014-04-10T18:20:53.280 に答える
22

Gerard ソリューションに基づいて、このようにブートストラップ ミックスイン .make-grid() を使用できるため、印刷が xs サイズに収まることはありません。

@media print {
  .make-grid(sm);
}

または生成された css (less を使用したくない場合):

@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%;
  }
}
于 2016-12-29T16:24:58.570 に答える
7

別の print.css を作成し、以下を追加しました。

@page {
    size: A3;
    margin-left: -5cm;
    margin-right: -5cm;
    }

Chrome では問題なく動作しますが、負のマージンにより IE が強制終了されます。Firefox は必要ないようです。別のアプローチに興味があります。

于 2013-12-16T21:31:42.507 に答える