この例を使用する場合(こちらをご覧ください: 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>
生成されたページの印刷プレビューを行うと、通常のグリッドレイアウトで列を表示する代わりに、(フロートが削除されたかのように)列がスタック/破損するようです。
Bootstrap.cssの@media print
セクションを見てきましたが、それを引き起こすdiv
に関連するものは見当たりません。
誰もこれを避ける方法を知っていますか?
Bojanglesのコメントは私を正しい方向に導いたので、私は自分の質問に答えます。
「 http://getbootstrap.com/css/#grid-options に応じて「xs」サイズのグリッド列を使用すると、「超小型デバイスの電話(<768px)」、Bootstrap期待どおりに印刷します。
<div class="container">
<div class="row">
<div class="col-xs-6">Column1</div>
<div class="col-xs-6">Column2</div>
</div>
</div>
解決策は、ページ自体ではなく要素になければなりません。また、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;
}
}
Col-printを使用できます。この場合、xsでレイアウトをブロックするため、xsではなくsmを使用しています。これが、これらのクラスを印刷に利用できない理由です。
Gerardのソリューションに基づいて、bootstrap mixin .make-grid()をこのように使用できるため、印刷はxsサイズにはなりません
@media print {
.make-grid(sm);
}
または生成された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%;
}
}
別のprint.cssを作成し、次を追加しました。
@page {
size: A3;
margin-left: -5cm;
margin-right: -5cm;
}
Chromeでは正常に動作しますが、マイナスのマージンはIEを殺します。 Firefoxはそれを必要としないようです。別のアプローチに興味があります。