使用しているcssメディアタイプに応じて、asp.netWebページがブラウザーに出力される方法を変更したいと考えています。
cssは通常、画面モードと印刷モードの外観の違いに対応していますが、印刷モードが必要な場合は、マークアップに若干の調整を加えたいと思います。ブラウザの画面レイアウト中に使用される2列のアプローチとしてではなく、単にフロートセクションを兄弟の下にドロップします。
使用しているcssメディアタイプに応じて、asp.netWebページがブラウザーに出力される方法を変更したいと考えています。
cssは通常、画面モードと印刷モードの外観の違いに対応していますが、印刷モードが必要な場合は、マークアップに若干の調整を加えたいと思います。ブラウザの画面レイアウト中に使用される2列のアプローチとしてではなく、単にフロートセクションを兄弟の下にドロップします。
列をフロートさせるためにマークアップがこの順序で記述されているが、ドキュメントの実際の形式が別の方法で意味をなす場合は、マークアップと画面のCSSを修正する必要があります。
MNarkupはCSSに依存するべきではありません。最初にドキュメントをマークアップして、CSSがなくても意味があるようにします。これは、行間を読み取ることで、印刷用に表示する方法です。それが済んだら、そのソースの順序に基づいて列レイアウトのスタイルを設定します。
あまり良い方法ではありませんが、兄弟の下にあるfloatセクションを追加して、ScreenCSSファイルでこのセクションを非表示にすることができます。次に、印刷CSSファイルで、この非表示のセクションを表示し、印刷ページで不要な他のセクションを非表示にすることができます。
これにより、ページに余分なhtmlが含まれるようになりますが、このフロートセクションが何であるかによっては、オプションになる場合があります。
これは不可能です。サーバー側で(つまり、ブラウザーに送信する前に)マークアップを変更できるような方法でこの情報を公開するブラウザーはありません。
ブラウザは、そのページで何をするか(印刷、表示、読み取りなど)に応じて、使用するCSSを決定できますが、どのCSSになるかはわかりません。
画面と印刷の両方のCSSで適切に機能するように、マークアップを変更することを検討してください。
別のオプションはprint
、ページの印刷最適化バージョンにリンクするリンクを作成することです。
それで、あなたの目標は「印刷プレビュー」を模倣するブラウザページを提示することでしたか?前に回答したように、ブラウザーはメディアタイプを公開しないため、ブラウザーへの出力を変更するために事前にそれを照会することはできません。あなたの特定のケースでは、W3Cドキュメントからの私の理解は、「印刷」メディアタイプは、「ページングされた資料と、印刷プレビューモードで画面に表示されるドキュメント」に対してのみトリガーされるということです。画面表示用に「印刷」メディアタイプをアクティブ化する唯一の方法は、とにかく「印刷プレビュー」を選択することです。
もちろん、「印刷プレビュー」に入ったら、メディアクエリを使用して変更されたレイアウトを確認することは問題なく機能します。これがあなたがやりたかったことをする非常に簡単な例です:
スタイル:
<style>
ul li {
float:left;
margin: 10px;
}
@media print {
li#printfloat {
clear:left;
}
}
</style>
およびHTML:
<ul>
<li>Sibling 1</li>
<li id="printfloat">Sibling 2</li>
</ul>