2017-12-07 12 views
0

印刷ボタンを使用して、ヘッダーとフッターの一部に@media printというルールを印刷しています。@page:最初にCSSで作業していません

最初のページと別のページでヘッダーを別にしたい。このため私は@page :firstルールを試しています。 MDN documentationから

body, 
 
h1, 
 
h2, 
 
h3, 
 
h4, 
 
h5, 
 
h6 { 
 
    font-family: "Raleway", sans-serif 
 
} 
 

 
body, 
 
html { 
 
    height: 100%; 
 
    line-height: 1.8; 
 
} 
 

 
@media screen { 
 
    header.onlyprint, 
 
    header.onlyprintf, 
 
    footer.onlyprint { 
 
    display: none; 
 
    /* Hide from screen */ 
 
    } 
 
} 
 

 
.p { 
 
    display: none; 
 
} 
 

 
@media print { 
 
    #myHeader { 
 
    font-size: 30px; 
 
    } 
 
    .p { 
 
    display: initial; 
 
    } 
 
    .np { 
 
    display: none; 
 
    } 
 
    a[href]:after { 
 
    display: none; 
 
    } 
 
    header.onlyprint { 
 
    position: fixed; 
 
    /* Display only on print page (each) */ 
 
    top: 0; 
 
    /* Because it's header */ 
 
    text-align: center; 
 
    width: 100%; 
 
    } 
 
    footer.onlyprint { 
 
    position: fixed; 
 
    bottom: 0; 
 
    /* Because it's footer */ 
 
    text-align: center; 
 
    width: 100% 
 
    } 
 
    @page :first { 
 
    header.onlyprint { 
 
     display: none; 
 
    } 
 
    header.onlyprintf { 
 
     position: relative; 
 
     /* Display only on print page (each) */ 
 
     top: 0; 
 
     /* Because it's header */ 
 
     text-align: center; 
 
     width: 100%; 
 
    } 
 
    } 
 
}
<body> 
 
    <button class="btn btn-large btn-success np" onClick="window.print()" style="position: fixed; top: 75px; left: 50%;">Print</button> 
 
    <header class="onlyprint">Header</header> 
 
    <footer class="onlyprint">Footer</footer> 
 
    <header class="onlyprintf">First Page Header</header> 
 
    Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text 
 
    Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some 
 
    Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br 
 
    />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text 
 
    Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some 
 
    Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br 
 
    />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text 
 
    Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />Some Text Here<br />

+0

あなたはこれをどのブラウザでテストしましたか? – Quentin

+0

@Quentinクロムでテストしています –

答えて

1

注:この擬似クラスを持つすべてのCSSプロパティを変更することはできません。ドキュメントの余白、孤児、未亡人、ページ区切りのみを変更できます。さらに、マージンを定義するときには絶対長単位しか使用できません。その他のプロパティはすべて無視されます。

表示されているページに基づいて特定の要素のレンダリングを変更する方法はわかりません。

これは、最初のページにあるかどうかを変更する機能が原因である可能性があります。あなたはそれが最初のページにある場合、それは最初のページにもはや要素margin-top: 50cmを与えない場合、すなわち、そのmargin-top: 50cmはもはやそれをを意味し、適用される

は、最初のページにあるのでmargin-top: 50cmは適用され、永遠にループします。

CSSは、そのタイプの論理エラーを表現できないようにしようとします。

+0

どうすれば最初のページに別のヘッダーを付けることができますか? **注:**ヘッダーは、スクリーンではなく、印刷物でのみ表示されます。 –

+0

"表示されているページに基づいて、特定の要素のレンダリングを変更する方法はわかりません。" – Quentin

関連する問題