2

「画面」コンテキストでは印刷スタイルシートが読み込まれないと想定していましたが、スタイルシートはChrome(Windows)で読み込まれています。これはバグですか、私はつまずきますか、それとも「印刷」が読み込まれないという私の仮定は正しくありませんか?

クロームスクリーンショット

これが私のhtmlです:

<head>
  <link rel="stylesheet" href="all.css" type="text/css" media="all">
  <link rel="stylesheet" href="screen.css" type="text/css" media="screen">
  <link rel="stylesheet" href="print.css" type="text/css" media="print">
</head>

Chromeを使用24.0.1312.52m(最新)

4

1 に答える 1

4

これはバグではありません。DOM でスタイルシートにリンクすると、サーバー リクエストが作成されてダウンロードされます。media=screenなどは、スタイルシート内のスタイルにのみ適用される条件です。したがってmedia=print、print.css スタイルが画面に適用されることはありません (逆も同様です)。ただし、スタイルシートのロードは妨げられません。現在、一部のブラウザーは、指定したときに読み込みを遅らせることが知られているmedia=printため、ページが最初にレンダリングされ、次に print.css が読み込まれますが、すべてのブラウザーがそうするわけではありません。

Crisp によるこのブログ エントリは、JavaScript を使用して印刷スタイルシートを遅延ロードする方法について説明しています。これにより、ユーザーが印刷する必要がある場合にのみ読み込まれるようになります。残念ながら、彼が使用する方法です (これwindow.onbeforeprintは IE と Firefox でのみサポートされています - http://www.w3schools.com/tags/ev_onbeforeprint.asp )。

于 2013-01-11T06:03:59.503 に答える