• ベストアンサー

CSSのfloatでレイアウトしたページの印刷について

CSSのfloatでレイアウトしたページを印刷してみると、 2ページ分必要なところが1ページ分しか印刷されなかったり、2ページ目が印刷されていても、ある一箇所だけ・・・ といった、印刷した時のレイアウトの崩れで悩んでいます。 ページ内のコンテンツ部分だけを印刷したいのではなく、あくまでも全体がきちんと印刷されるようにしたいのですが、 float:none; を設定すると、floatが解除されてしまうので、印刷するとますますおかしくなってしまいます。。。 印刷用スタイルシートをどのように設定したら良いのか、皆様アドバイスをお願いします・・・!!

  • CSS
  • 回答数3
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
  • Ysan
  • ベストアンサー率32% (44/136)
回答No.2

CSSで、印刷時に見たままを表示するのは難しいですよね。 基本は<link REL="stylesheet" type="text/css" HREF="XXXXX.css" media="print">という風に 印刷用の外部スタイルシートを別に指定してやります。 で、その中身ですが、、表示用CSSを ちょこちょこと変えても思い通りにはなりません。 (私の経験です) 私は、新たにレイアウト等を作り直します。 1.IE等で背景を印刷しない設定にしていると  背景や背景色が無視され(たまに枠線色も無視する)  せっかくのデザインが意味のないものになる。 2.改行位置やページの幅等が特定できない。 3.白黒のプリンタだと… とかいう理由で、思い通りにならないので 思い切って!?無難な文字ベースにしちゃいます。 (一応 2 の改行位置やページの幅等を固定する ことは出来ますが、古いブラウザ等では 無視されることがあります。参考URL参照) どうしても同じレイアウトにしたいのであれば テーブルレイアウトの別ページで対応とかを 考えてみてはどうでしょうか。

参考URL:
http://www.tohoho-web.com/css/reference.htm#page2
kemura
質問者

お礼

早速のお返事有難うございます! やはり、思い通りにいかないのですね。。 CSSがプリント用やPDA用、色々とタイプ出来るから便利だなと単純に考えておりましたが。。。 CSSでやっている以上、印刷用とはいえ1ページだけなら良いのですが、全30Pに及びますので、テーブルレイアウトで別ページタイプは現実的に無理かなと思っております。 1~3のアドバイスと教えて頂いた参考サイトを参照しながら、考えてみます。

その他の回答 (2)

  • sam_inoue
  • ベストアンサー率47% (27/57)
回答No.3

スタイルシートの中に印刷専用のスタイルを追加できます。 最後の方に、 @media print{ } を追加して、この中に印刷時専用のスタイルの記述を 埋め込みます。 これ以前に同一タグの記述があっても、 後ろに書いた方が優先されますが、 @media printの中に書いてあれば印刷時だけ機能します。 たとえば下記URLは画面では800px幅なのでA4縦印刷では 横がハミ出てしまいますが、 上記の方法で680pxに変更され、広告もない状態で 印刷されます。

参考URL:
http://www.asahi-net.or.jp/~ef2o-inue/top01.html
kemura
質問者

お礼

お礼が大変遅くなりまして申し訳ありませんでした。 アドバイス有難うございました。 結局外部でプリント用CSSを作成しました。 印刷がうまくいかなかったので、当初コンテンツメニュー部分を印刷時は非表示にするようにしていましたが、 結局floatでのレイアウトがおかしかったようです。 floatでのレイアウトを再度一つ一つ確かめ、再度レイアウトを組みなおした結果、特に印刷用CSSを準備しなくとも うまく印刷されるようになりました。 背景に画像を使用しているので、一応印刷時は背景画像は非表示にしておきました(インクの無駄なので)。 以上、報告でした。

  • quads
  • ベストアンサー率35% (90/257)
回答No.1

どこまで出来ているのか分かりかねるのですが、印刷用ページを別途用意しているのでしょうか? フロートと仰られても構成によって仕様が異なってきますので、できれば作成されたページを提示していただきたいのですが。 一応参考URLは印刷用ページについて。

参考URL:
http://www.stylish-style.com/csstec/hi-level/print-css.html
kemura
質問者

お礼

早速にご回答頂いていながら、お返事送れまして申し訳ありませんでした!! サイトは殆ど出来上がっておりまして、全部で30ページですが、全ページが印刷される対象ですので、それぞれに印刷用ページは用意していないんです。 参考URL有難うございます。バグなどの情報が掲載されているページは非常に嬉しいです。 >作成されたページ 以前、質問の時にプロバイダから与えられたスペースにデータをアップロードしましたが、規約違反で削除されました。私自身がよくルールを理解していなかったようです。折角お申し出頂いているのに残念なのですが、作成したページはお見せすることができないのではないかと思います。 今月中になんとかしたいので、参考サイトなど参照しながら頑張ってみます。結果を報告できればと思います。

関連するQ&A

  • floatを使わずに、cssレイアウトって可能でしょうか?

    例えば、現在見ているこのページのように、ヘッダーとフッターがあり、コンテンツが左右二つのカラムで成り立っているようなレイアウトを、floatでなくpositionで、レイアウトすることは可能でしょうか? (その際、左右どちらのカラムの方が、高さが高くなっても、レイアウトが崩れないように。) floatを使いたくない理由は、親ボックスからはみ出さないように、ハック(clearfix)を使わないといけないからです。

    • ベストアンサー
    • CSS
  • スタイルシートで印刷用のレイアウトの作り方

    こんにちわ スタイルシートでレイアウトしたWEBページの印刷用のレイアウトのことで悩んでいます。 WEBページはヘッダー部分、サイトナビゲーション部分、メニュー部分、コンテンツ部分、コピーライト部分とあるのですが印刷時にはヘッダー部分とコンテンツ部分とコピーライト部分のみ印刷できないかと考えています。印刷したくない部分をdisplay:noneのようにできませんか?

  • 印刷用のページでレイアウトが崩れます

    CSSを使って、画面と印刷用のページとを分けてみました。 他のページはうまく印刷できるのですが、画像がたくさん並んでいるページはレイアウトはめちゃめちゃに壊れています。たぶんfloat要素が反映されていないようなのですが・・・どうしたらいいのか全然分りません・・・教えていただけないでしょうか。よろしくお願いします。 http://dp36216231.lolipop.jp/liquor/liquor2.htm

    • 締切済み
    • CSS
  • CSSで一部分だけ印刷指定→ページ全体を印刷できない

    ページ内の表部分だけを印刷したくて、こちらで教えていただき以下のCSSを設置しました。 <style media=screen> .prtOnly {display:none;} </style> <style media=print> .dspOnly {display:none;} </style> html部分は、印刷したい表をclass="prtOnly"で囲んでいます。これで表部分だけの印刷は問題ないのですが、これを設置することによりページ全体を印刷することができなくなってしまっています。 どう解決したらよいでしょうか? クライアントにいわれて気づいてしまったので、できたら急ぎでお願いします。

    • ベストアンサー
    • HTML
  • CSSのfloatについて

    ホームページを作成していて、CSSが効かなくて困っています。 2カラムで左側にメニュー 右側にメインのコンテンツを作成しております。 メインのコンテンツは floatでrightに設定していて その中にさらに 2つの内容を入れようと (メインコンテンツ内に左側に画像で右側に画像の詳細をいれたい) floatタグでleftとrightに設定したのですが CSSが効かなくて 左側に画像が配置され その下に画像の詳細文が配置されてしまい 全部左側に配置されてしまいました。 色々と試したみたのですが やっぱりCSSが効きませんでした。 すいません誰かお分かりになられましたら 教えてください。宜しくお願い致します。

  • CSSを多用すると遅くなる?

    『スタイルシートを使いすぎると、ページ全体の動作速度が遅くなります。』 あるサイトで、こう書いているのを発見しました。 現在、CSSでページレイアウトを行っているのがほとんどなのですが、CSSでページレイアウトを行うと、テーブルで組むのよりも動作が遅くなってしまうのでしょうか? それとも、インラインで書いていると遅くなる、という意味で、外部CSSとして読み込む分には問題ないのでしょうか。 ご教授よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • ie7の印刷レイアウトがくずれます。css対策 

    質問です。 印刷についてのIE7対策をうかがいたいです。 画面上はまったく問題ないのですが、 いざ、印刷となると崩れてしまいます。 フッターがメインメニューの半ばまで せりあがって (崩れた形)で印刷されてしまいます。 たぶん3のメニューが短いからか... (今後 a-2 が更新する可能性があるためにheightはautoに してありますが。。) 対策としてはどうしたらよいでしょうか? よろしくお願いします。 ※print用のcss はすでに作成しています。 IE8,FIREFOXについてはフッターを css改行コードに強制改ページさせることにより 修正は成功しています。 メイン部分のレイアウトとしてはこういった感じです。 ​http://css.uka-p.com/3column/image.html​ レイアウトの順番としては。 0コンテナでつつんでます。 1ヘッダー height=auto 2メイン height=auto float: right;  (内部)a-1 右エリア height=auto float: right;   (内部)a-2 メインの部分 height=auto float: none; 3左メニュー height=auto float: left; 4フッター  height=auto clear:both; ちなみに画面上では ie6,ie7.firefoxはまったく問題が ありません.... よろしくお願いします。

    • ベストアンサー
    • CSS
  • CSSによるレイアウトブロック(Dreamweaver)

    Dreamweaver8を使用しています。 参考書にそって、CSSによるレイアウトブロックで、 ページ全体のCSSを作成しました。(body) 次にコンテンツ全てを選択し、全体のCSSを作成しました。(div) ブラウザで表示させると、ページ全体が左に偏ってしまいます。 これを中央にするのにはどうすればよいでしょうか? よろしくお願いします。

  • cssが長くなってしまう。他に良い方法は?

    サイトのレイアウトをCSSで行なっているのですが、例えばノーマルなテキストの色・スタイル、リンクの色などの設定がぺージ(コンテンツ)ごとに違います。なので「pタグ内のスタイルはこれ」と絶対的に定めることが出来ません。 全ページでテンプレートを使用していて、それが既に外部CSSを1つ呼び出しています。コンテンツごとにCSSを用意するのがスマートに思えますが、そうすると外部CSSを複数指定することになります。どこかでこの方法は推奨されないと聞いたんですが、本当ですか? もしそうである場合、その1つのCSSに全ページ分のスタイルを記述することになりますが、それもまたCSSのソースがバカでかくなってしまいます。 これはどうするべきでしょうか?

  • CSSのfloatについて教えてください。

    商品紹介のページを作成したいのですが、★どうクラスをつけて★どうfloatしたらいいのか 分かりません。(DreamweaverCS3, CSS1,Win)画像添付してます。 いろいろ試してはみたのですが・・・・・↓ 商品紹介は4シリーズに分けて各間にボーダーをつけて商品ブロックを左右に2列ずつ表示していこうと考えています。 ○各シリーズにクラスを設定してborder-Bottomをつける ○商品ブロックを1つづつ定義リストでマークアップして<dl class="floatL"><dl class="floatR">をつけていく。(cssに.floatL {float:left} .floatR {float:right}と記述してます。) 参考書を見ながらこの方法ですると何回やってもErrorがおきてしまいました。 次に1つづつ<dl>にidをつけて1つずつfloatしていくと★2が右に寄った状態になってしまいレイアウトが崩れてしまいました。 ちなみにfloatではなくabsoluteでするとデザインビューでは回りこんで表示するのですがブラウザでは表示できませんでした。 どの方法も間違った感じがするのですが独学中のためアドバイスをいただけたらうれしいです。 宜しくお願いします。

    • ベストアンサー
    • CSS

専門家に質問してみよう