• 締切済み

印刷用CSSの設定

現在、上からヘッダー、コンテンツ、フッターの3段構成で中央によせ、幅が833pxのサイトがあります。しかしながら印刷時に上部のヘッダー部と中央のコンテンツ部が分離した状態で印刷を余儀なくされます。そのようにならないページもありますが、回避方法をご存知の方がいらっしゃいましたら、ご教授願います。また、簡単に全体70%とかの指定で印刷CSSを作る記述等はございますでしょうか? ご教授の程、よろしくお願いします。

  • HTML
  • 回答数2
  • ありがとう数3

みんなの回答

  • abril
  • ベストアンサー率69% (388/560)
回答No.2

お悩みのポイントは: > 印刷時に上部のヘッダー部と中央のコンテンツ部が分離した状態で印刷を余儀なくされます。そのようにならないページもありますが、回避方法をご存知の方がいらっしゃいましたら (省略) > ヘッダーとコンテンツが分離してしまうページとそうでないページに分かれます。どうも、コンテンツ部分のフロートが多いページほど崩れやすく、簡素なページほど崩れずヘッダーとコンテンツがきちんとくっつきます。これをどのように統一すべきか悩んでおります。 であって、 > 全体の幅が833pxありますので、右端が切れます。 についてはスルーして宜しいのですよね? 残念ですが、floatが絡んだ印刷結果を完全にコントロールすることは無理だと思います。ページ毎に違う結果が出てしまうのはいかんともし難いでしょう。コンテンツの内容に依存するので…印刷環境によっても全く結果が違ったりしますし。 page-break-before/page-break-afterという印刷時の改ページ部分を定義するプロパティもありますが、ユーザ側の印刷時のフォント・サイズ等の設定の違い等を考慮すると、挿入位置は限定されるでしょうし。「どのコンテンツも印刷時にはヘッダーの後/フッターの前に必ず改ページする」という様な指定なら使えると思いますが。 もしヘッダーの情報がそれほど重要でないのなら、いっそのこと印刷時にはヘッダーやフッター部分を"display: none;"で非表示にし、(内容的に最も重要だと思われる)「中央のコンテンツ部」だけをプリントさせる様に制御されては?スクリーン/プリントというメディアによって完全に別物として考え、それぞれに適した形態で表示する、という手法はよくありますので。

sea-bass
質問者

補足

ご回答有難う御座います。 実は、私もそのように考えていたところでした。 先方ありきの問題なので、説明しようと思います。 有難う御座いました。

  • mochitora
  • ベストアンサー率28% (78/272)
回答No.1

印刷用CSSの中で、 ・3段構成それぞれの幅を70%に指定 ・ヘッダー部とコンテンツ部のマージンを0に で良いのでは? どんな書き方をしているのかまったくわからないので、 印刷用外部CSS(のヘッダー部とコンテンツ部の)定義ソースを貼り付けると、 良い回答がもらえると思いますよ。

sea-bass
質問者

お礼

試してみましたが、コンテンツ内の要素がコンテンツ幅70%に押しつぶされ、縦並びになってしまいました。

sea-bass
質問者

補足

早速のご回答、有難う御座います。 print.cssを何も指定しないと、全体の幅が833pxありますので、右端が切れます。またヘッダー(833×119)、コンテンツ(833×自動)、フッター(833×115)ですが、ヘッダーとコンテンツが分離してしまうページとそうでないページに分かれます。どうも、コンテンツ部分のフロートが多いページほど崩れやすく、簡素なページほど崩れずヘッダーとコンテンツがきちんとくっつきます。これをどのように統一すべきか悩んでおります。

関連するQ&A

  • 印刷用CSSの設定

    現在、ヘッダー部とコンテンツ部とフッター部を別々に作成し、中央揃え(左右のマージンを自動)にしておりますが、これらの幅が833pxあります。ページによって印刷時にヘッダー部とコンテンツ部が分離し、別ページでの印刷を余儀なくされます。問題のないページもありますが、この辺りのコーディングは全ページ共通ですので、なぜこのような現象が発生するのかが解明できず、困ってます。この回避方法をご存知の方いらっしゃいましたらご教授願います。また、簡単に全体を印刷枠におさまるよう、簡単にall;70%みたいな記述はないでしょうか? ご回答の程、よろしくお願いします。

  • Perlでcssを使わないで3カラムにしたい

    現在、Perlでcgiを作成していますが、ページの最上部にヘッダー、ページの両端にメニューや広告、中央にメインコンテンツを配置する3カラム(三段組み)、最下部をフッターにしたいと考えています。 現在、メインコンテンツは完成しております。 cssは、使わないで上記のようなレイアウトをPerlで組みたいのですが、上記にようにしたい場合は、どのように書けば良いのでしょうか? 横幅全体は800。(ヘッダーとフッターも横幅は800) 左メニュー180、中央メインコンテンツ 440 、右メニュー180 で組みたいと思っています。 お手数をおかけ致しますが、アドバイスよろしくお願い致します。

    • ベストアンサー
    • Perl
  • CSSで(3)段組のページを作りたいのですが

    上から3段のページを作りたいと思っています。 ヘッダー ↓ コンテンツ ↓ フッター という形にしたいのです。 ヘッダーとフッターの背景色は同じにして、フレームを使ったように見せたかったのですが、画面いっぱいまで広がってくれず困っています。 フレームを使ったら簡単にできるのですが、CSSでは不可能なのでしょうか? 基本的かもしれませんがよろしくお願いいたします。

    • ベストアンサー
    • CSS
  • perlで3カラムにしたい (css)

    perlでcgiのアンケートのページを作っていますが、ページの最上部をヘッダー、ページの両端にメニューや広告、中央にコンテンツを配置する3カラム(三段組み)、最下部をフッターにしたいと考えています。 ページ幅 755pxでセンタリング、両端のメニュー、コンテンツともに幅固定で、以下のようなcssファイルを作りましたが、cgiのページを見ると、cssファイルの設定がうまく反映されません。 どうすれば良いのか、ぜひ御指導、アドバイス頂けると助かります。 m(_ _)m 当方初心者のため、もし以下のcssファイルの書き方に間違えがありましたら、ご指摘ください。 よろしくお願い致します。 ----------------------------- <HTML> <BODY> <div id="wrapper"> <div id="header"> ヘッダー部分 </div> <div id="main"> <div id="menu"> メニュー部分 </div> <div id="contents"> コンテンツ部分 </div> <div id="affiriate"> アフィリエイト部分 </div> </div> <div id="footer"> フッター部分 </div> * { margin: 0; padding: 0; } #wrapper { width: 755px; margin: 0 auto; /* 幅固定(755px)でセンタリングします。*/ } #header { width: 755px; height: 50px; } #main { width: 755px; /* 両端ブロックとコンテンツを囲んでいるセレクタです。*/ } #menu { float: left; width: 150px; /* floatに、width 指定は必須です。*/ } #contents { float: left; width: 505px; #affiliate { float: left; width: 150px; } #footer { clear: both; /* float をクリアしています。*/ width: 755px; height: 50px; } #menu ul { list-style: none; } </div> </BODY> </HTML>

    • ベストアンサー
    • CSS
  • CSSをどう書けばいいでしょうか?

    CSSをどう書けばいいでしょうか? 以下のhtmlを想定しています。flashの表示位置はウインドウの上下中央センターに表示させたいと思っております。 footerは常にページの下部に表示させる予定です。 ページ上にコンテンツが少ないのでスクロールするまでもない状態なのでこのような表示位置を実現したいのですがどのようにすればいいでしょうか? 下記に書いているCSSに添削をお願いいたします! #flash { margin: 0 auto; width: 960px; height: 450px; } #footer { margin: 0 auto; width: 960px; height: 150px; } <div id="flash">上下左右の中央に表示されるコンテンツ</div> <div id="footer">常にページ下部に表示されるコンテンツ</div>

    • ベストアンサー
    • HTML
  • FirefoxだとCSSで作ったフッターが崩れてしまいます

    お世話になります。現在、CSSにて2段組にて ヘッダー・メニュー・コンテンツ・フッター部分にレイアウトを 切り分けてサイトを作っておりますが IEだと私が意図した通りに表示されるのですが、FireFoxだと フッター部分のレイアウトが、コンテンツ部分にかぶってしまい レイアウトがぐちゃぐちゃになってしまいます。 #cover { width: 700px; height: 100% } #menu { width: 150px; height: 100%; float: left } #main { width: 550px; height: 100%; float: right } #footer { width: 700px; clear: both } こちらが、htmlです。 <div id="cover"> <div id="main">コンテンツ</div> <div id="menu">メニュー</div> <csobj csref="a.html" h="259" occur="27" t="Component" w="700"> <div id="footer">フッター</csobj></div> </div> ※このcsobjは、Goliveのコンポーネント機能を使って 1つの外部ファイルからリンクさせることによって、 ヘッダー部分に変更が生じたら、全ページを一括で更新できる 機能を使っています。SSI(サーバーサイドインクルード)みたい なやつでしょうか。 とても困っていますので、詳しい方ぜひご教授ください。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • CSSによる印刷設定

    横幅が800pxで制作したWEBページの印刷設定をCSSにて行いたいと思います。背景画像を使用しているので、IEブラウザのツール→インターネットオプション→詳細設定の一番下にある「背景の色とイメージを印刷する」にチェックを入れて印刷プレビューをかけると確かに見た目通りの表示になりますが、横幅800pxですと右端が切れてしまいます。これを横幅が切れないように印刷設定するための方法としてCSSで何か設定はございますでしょうか?単純にプリンタのページ設定で横印刷や余白設定をすれば良いのでしょうが、デフォルトで最低限やっておきたいと考えております。有識者の方々、ご教授の程、よろしくお願いします。

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

    超初心者です。へッダーの固定をしたページを作りたいのですが、フリーのCSSを使ってやってみたところ、背景の色、タイトルの文字の大きさ、現在センタリングになっているのを全体に表示したいのに、それが上手くいきません。以下、試してみたCSSなのですが、どこをどう変えれば、上記の変更が可能でしょうか。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>CSSでヘッダーを固定する 第4歩</title> <style type="text/css"> html {  height:100%; } body {  margin:0px;  height:100%; } #body {  width:700px;  margin:0px auto; } #header {  background:#ccffcc;  height:100px; /* width:100%;*/  width:700px;  position:fixed; } #main {  padding-top:100px;  background:#ffff99; } #footer {  background:#ffcc99;  height:80px; } </style> <!--[if IE 6]> <link rel="stylesheet" href="./fixheader_ie6.css" type="text/css" /> <![endif]--> </head> <body> <div id="body"> <div id="header"> ヘッダー </div> <div id="main"> コンテンツ1<br /> コンテンツ2<br /> コンテンツ3<br /> コンテンツ4<br /> コンテンツ5<br /> コンテンツ6<br /> コンテンツ7<br /> コンテンツ8<br /> コンテンツ9<br /> コンテンツ10<br /> コンテンツ11<br /> コンテンツ12<br /> コンテンツ13<br /> コンテンツ14<br /> コンテンツ15<br /> コンテンツ16<br /> コンテンツ17<br /> コンテンツ18<br /> コンテンツ19<br /> コンテンツ20<br /> コンテンツ21<br /> コンテンツ22<br /> コンテンツ23<br /> コンテンツ24<br /> コンテンツ25<br /> コンテンツ26<br /> コンテンツ27<br /> コンテンツ28<br /> コンテンツ29<br /> コンテンツ30<br /> コンテンツ31<br /> </div> <div id="footer"> フッター </div> </div> </body> </html>

  • jQuery cssメソッドでの変数の使用について

    jQueryで例えば、 var H = 600; とした場合、 $("#footer").css("top" , H); でも、 $("#footer").css("top" , H + "px"); でも機能しますが、 var H = $("#contents").height(); とした途端、 $("#footer").css("top" , H); も、 $("#footer").css("top" , H + "px"); も機能しません。 後者を機能させる方法はございますでしょうか。 何卒ご教授のほど、よろしくお願い致します。

  • CSSで微妙にずれる

    CSSで微妙にずれる こんにちは、最近HPを作成するようになった初心者です。 あるフリーサイトのCSSを雛形としてHPを作成したのですが、 (TOPとMENUとMAIN(コンテンツ)とFOOTERの4構成 MENUは左でMAINが右) ブラウザの枠の中にFOOTER部分が表示されると (上下に短いコンテンツ) 微妙に左(多分3PXぐらい)に、ずれて表示されてしまいます。 この様な、場合原因の部位を特定するには、どの様なアプローチを 行えばよろしいのでしょうか? 教えていただけるとありがたいです。 ちなみに、FOOTERのHTMLは <div id="footer"> <address>Copyright &copy; 2010 XXXXX All Rights Reserved.</address> </div> で、 CSSは div#footer { clear:both; margin:0 20px 0 20px; } です

専門家に質問してみよう