私はここでstackoverflowに関する多くの答えを探していましたが、それは私が疑問に思っていることを半カバーしていますが、私のために働くものは見つかりませんでした。
印刷ページはA4で約550ピクセルであるため、bootstrap=はモバイルデバイスで通常使用されるスタイルとレイアウトを使用します。
WebページにCtrl + Pを使用すると、印刷可能なページはモバイルバージョンのページのように見えます。しかし、どうすればデスクトップ版のように見せることができますか? (メディア> 1024 px)これを行う方法はありますか?
私はCSSを印刷専用に変更できることを知っています。しかし、bootstrap 3グリッドシステムでこのことを解決するにはどうすればよいですか? col-mdの場合
編集:数時間これに苦労した後、最初に予想していたよりも複雑になる可能性があることに気付きました。幅を変えるだけでは解決しません。私のdivの多くは次の構文を持っています
<div class="md-right sm-right xs-down col-md-1 col-sm-2 box"></div>
または
<div class="col-md-4 col-sm-6 col-xs-12"></div>
XSでは小さなデバイスのページは見栄えが良いですが、XSで印刷すると多くの要素が巨大に見えます。したがって、問題は残っています。印刷ページを中規模または大規模デバイスのレイアウトと同じように見せるための方法はありますか?または、bootstrapグリッドシステムを使用せずにCSSを印刷し、すべての要素の静的幅をptに追加してこれを達成する必要がありますか?
前もって感謝します
私はすべてのレスポンシブなbootstrapのものを含めずに独自のprint.cssファイルを使用して問題を解決することになりました。必要なbootstrap隠す。
JSBinを提供すると役立ちます。とにかく、私はこのレイアウトをcol-sm アスタリスク)でJSBinに持っていたので、印刷メディアクエリ間ですべての-sm-から-xs-を変更するだけです。すべてのパーセンテージはすべてのブレークポイントで同じであるため、smをxsに変更すると、それが出力され、他のcol-(アスタリスク)クラスが無視されます。ああ、私は今投稿を読みました。これですべてのcol-smをcol-mdに変更し、!importantを使用する必要があります。 xs colはメディアクエリの外部にあるため、これが発生している理由です。
---(http://jsbin.com/AzICaQes/5
@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.66666666666666%;
}
.col-sm-10 {
width: 83.33333333333334%;
}
.col-sm-9 {
width: 75%;
}
.col-sm-8 {
width: 66.66666666666666%;
}
.col-sm-7 {
width: 58.333333333333336%;
}
.col-sm-6 {
width: 50%;
}
.col-sm-5 {
width: 41.66666666666667%;
}
.col-sm-4 {
width: 33.33333333333333%;
}
.col-sm-3 {
width: 25%;
}
.col-sm-2 {
width: 16.666666666666664%;
}
.col-sm-1 {
width: 8.333333333333332%;
}
}
実際、(user.cssに)追加する必要があるのはこれだけです。
@media print {
@page {
size: A4;
margin: 0mm;
}
html, body {
width: 1024px;
}
body {
margin: 0 auto;
}
}
その間、bootstrap 3のこれらすべての設定を使用することを検討してください
@media print {
@page {
size: A4;
margin: 0mm;
}
html, body {
width: 1024px;
}
body {
margin: 0 auto;
line-height: 1em;
Word-spacing:1px;
letter-spacing:0.2px;
font: 14px "Times New Roman", Times, serif;
background:white;
color:black;
width: 100%;
float: none;
}
/* avoid page-breaks inside a listingContainer*/
.listingContainer{
page-break-inside: avoid;
}
h1 {
font: 28px "Times New Roman", Times, serif;
}
h2 {
font: 24px "Times New Roman", Times, serif;
}
h3 {
font: 20px "Times New Roman", Times, serif;
}
/* Improve colour contrast of links */
a:link, a:visited {
color: #781351
}
/* URL */
a:link, a:visited {
background: transparent;
color:#333;
text-decoration:none;
}
a[href]:after {
content: "" !important;
}
a[href^="http://"] {
color:#000;
}
#header {
height:75px;
font-size: 24pt;
color:black
}
}
bootstrap mixinsを使用してこのような列(sassバージョン)を作成する場合:
@include make-sm-column(3, 0);
christinaが提案するように、列クラスのスタイルを上書きするだけでは不十分です。私が見つけた唯一の簡単な解決策は、_variables.scssの$ screen-smを595pxに変更し、bootstrap.cssを再コンパイルすることでした。
したがって、_variables.scssでこのコードを見つけます。
$screen-sm: 768px !default;
$screen-sm-min: $screen-sm !default;
これに変更します:
// decrease min-width to fix print layout issue
$screen-sm: 595px !default;
$screen-sm-min: $screen-sm !default;
その後、_print.scssで
@page {
size: A4;
margin: 0;
}
@media print {
html, body {
width: 768px;
}
body {
margin: 0 auto;
}
// .. your custom styles for print layout
}
同様の問題がありました。最終的にすべてのcol-md- *をcol-xs- *に置き換えましたが、それは魅力的なものでした。ここに例のコードがあります
<div class="container make-border" id="obaidrehman07">
<div class="row make-border">
<div class="col-md-9 text-center main-title col-md-offset-1">
<h4 class="heading-white"><strong>CONTRACT ACTION REPORT</strong></h4>
</div>
<div class="col-md-0 pull-right"> <img class="img-responsive" src="<?=$base_url;?>assets/office_home/target/dd46a999e4f329f98e5b8df60e21e9ab.png" alt="" style="max-width: 110px;" /> </div>
</div>
</div>
に変換
<div class="container make-border" id="obaidrehman07">
<div class="row make-border">
<div class="col-xs-9 text-center main-title col-xs-offset-1">
<h4 class="heading-white"><strong>CONTRACT ACTION REPORT</strong></h4>
</div>
<div class="col-xs-0 pull-right"> <img class="img-responsive" src="<?=$base_url;?>assets/office_home/target/dd46a999e4f329f98e5b8df60e21e9ab.png" alt="" style="max-width: 110px;" /> </div>
</div>
</div>
このcssスタイルをprint.cssファイルに追加します
@page {
size: A4;
margin: 40px;
}
@media print {
html,
body {
width: 210mm;
height: 297mm;
}
@-moz-document url-prefix() {}
.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,
.col-md-1,
.col-md-2,
.col-md-3,
.col-md-4,
.col-md-5,
.col-md-6,
.col-md-7,
.col-md-8,
.col-md-9,
.col-md-10,
.col-md-11,
.col-smdm-12 {
float: left;
}
.col-sm-12,
.col-md-12 {
width: 100%;
}
.col-sm-11,
.col-md-11 {
width: 91.66666667%;
}
.col-sm-10,
.col-md-10 {
width: 83.33333333%;
}
.col-sm-9,
.col-md-9 {
width: 75%;
}
.col-sm-8,
.col-md-8 {
width: 66.66666667%;
}
.col-sm-7,
.col-md-7 {
width: 58.33333333%;
}
.col-sm-6,
.col-md-6 {
width: 50%;
}
.col-sm-5,
.col-md-5 {
width: 41.66666667%;
}
.col-sm-4,
.col-md-4 {
width: 33.33333333%;
}
.col-sm-3,
.col-md-3 {
width: 25%;
}
.col-sm-2,
.col-md-2 {
width: 16.66666667%;
}
.col-sm-1,
.col-md-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%;
}
.visible-xs {
display: none !important;
}
.hidden-xs {
display: block !important;
}
table.hidden-xs {
display: table;
}
tr.hidden-xs {
display: table-row !important;
}
th.hidden-xs,
td.hidden-xs {
display: table-cell !important;
}
.hidden-xs.hidden-print {
display: none !important;
}
.hidden-sm {
display: none !important;
}
.visible-sm {
display: block !important;
}
table.visible-sm {
display: table;
}
tr.visible-sm {
display: table-row !important;
}
th.visible-sm,
td.visible-sm {
display: table-cell !important;
}
}