4

IE6/7とFirefox3.5で正常にレンダリングされるページがあります。IE6とFirefox3.5はどちらもページの印刷に問題はありませんが、IE7は問題ありません。ページが印刷されると、表示される2つのテーブルを除いて、コンテンツdivの前半は表示されません。コンテンツは文の途中で再表示され始め、タグやブレークはありません。

divの前半を隠しているものの、テーブルを表示させているようなものです。ただし、私には、場違いのタグ、魔法の空のフローティングdiv、またはあらゆる種類の検証エラーはありません。また、同じCSSを使用する他のいくつかのページがあり、すべて正常に印刷されます。

誰かが似たようなことを経験したことがありますか?どのように修正しましたか(欲求不満をあきらめなかった場合)?

編集:私はついにこれを調べるためにもう少し時間がありました、そして私は問題をかなりうまく絞り込みました。divの「position」スタイル属性を「absolute」以外に変更する(これにより位置がすべて間違っている)か、少量をコメントアウトすることで、すべてのテキストを表示できます。コンテンツの。

コメントアウトできる内容はこちら...

<p><strong>Personal Expenses: </strong>EJTH will bill your credit card for any additional expenses (extension <!--XXXX-->airfare, etc.), if applicable. <strong><!-- begin broken part --><em>All charges must be paid in full before your electronic ticket confirmation will be emailed. No payments will be accepted on-site. Note:</em></strong> When using a credit card for personal purchases (i.e., optional activities, trip extensions, conference registration fees, etc.), &ldquo;MT&rdquo; will appear as the vendor on your credit card statement.</p> <p>You will also be responsible for any personal charges you incur. These include phone calls, valet and laundry service or personal bar bills. The resort cashier will keep a separate record of these expenditures for you. Be sure to settle your personal account at the resort front desk prior to departure. <strong><em>Important: If you neglect to pay your personal (incidental) account when you check out, EJTH will bill you after the program for the actual cost, plus a 15% service charge.</em></strong><!-- end broken part --></p>

それが私を助けた以上にあなたを助けてくれることを願っています。今日は他の何かに引っ張られないことを前提として、CSSをいじって回避しようと思います。

編集:画面!

1つ目は、ページが現在どのように印刷されているかです。コンテンツが再表示されるページにXXXXを配置しました。上記のコードにも入れました。少し目を細めてみるとわかります。

http://img109.imageshack.us/img109/589/current.jpg

2つ目は、コンテンツdivのCSS位置を絶対から相対に変更した場合のページの印刷方法です。

http://img514.imageshack.us/img514/9961/modcss.jpg

3つ目は、「壊れた部分」をコメントアウトした場合のページの印刷方法です。つまり、問題ありません。

http://img514.imageshack.us/img514/653/commented.jpg

4

3 に答える 3

3

OK ...新しいCSSシートを作成し、media="print"に指定しました。このスタイルシートでは、すべてのフォーマットとナビゲーションを取り除き、コンテンツを完全に印刷しました。これはIE7とFirefoxで正常に機能します。助けてくれたみんなに感謝します!

于 2009-11-12T19:04:21.320 に答える
2

完全な答えではありません、私は恐れています、しかしそれはコメントのために少し長くなりすぎていました...

position属性を変更したときの位置付けはどのように「間違っている」のでしょうか。印刷されたページ、またはブラウザでの位置付けについて話しているのですか?ブラウザにある場合は、別の印刷スタイルシートを使用してください...

これらの2つの段落を削除することによってのみページを「修正」できますか、それとも同じdiv内、おそらく同じ印刷ページで、合計でほぼ同じ長さになる他の段落も修正できますか?

少しグーグルすると、IE7の位置と印刷に問題があることがわかります。以下のリンクをご覧ください。彼らはあなたを正しい方向に向けるかもしれません:

2番目のリンクからの「ThaSaltyDawg」によるこの投稿は、別の(?)IE7印刷バグに対処していますが、最も有益に見えます。

試行錯誤の結果、問題の修正が見つかりました。予想通りCSSでした。float、position、z-index、およびその他のいくつかの要素の組み合わせを使用すると、IEで予期しない結果が発生しました。Microsoftサポートページにアクセスした後、これに関してIEにバグがあることがわかりました。

私の場合、フロート値を使用する<table>ことはIEでは嫌われています。正常に表示されますが、印刷にはあまり適していません。また、位置の値が正しいことを確認してください。<table>また、 'と'をネストする場合は<div>、z-indexが正しいことを確認してください。

これらを設定するための実際の決まった方法はありません。私のページのいくつかは異なる調整をしなければならなかったので、それはそこでの使用法に依存します。

フロートと絶対的に配置された要素が最も問題を引き起こすようです。positionしたがって、おそらく、div(印刷スタイルシート内)の属性を変更するという以前の「解決策」を使用して、残りの部分を処理して壊れたレイアウトを修正する必要があります。

于 2009-11-11T23:08:56.313 に答える
0

印刷スタイルシートを使用しても、IE7(場合によってはIE8)が特定のスタイルを無視していることがわかりました。

少しテストしたところ、私が参照したクラス名がhtml5タグに含まれていたことが原因のようです。ただし、divをラップしている場合は、それらをターゲットにすることができます。これにより、問題が解決したようです。

于 2012-12-05T01:09:30.037 に答える