• ベストアンサー

ieやfirefoxで。cssレイアウトが印刷時崩れる。

cssでレイアウトしてます。 ieやfirefoxでの ブラウザ上(画面)表示ができるのですが、 いざ、印刷プレビューや印刷になると レイアウトが 崩れてしまいます...どのような 解決策。問題点があるのでしょうか? 印刷ページが中途半端にページをまたいでしまうから? marginとpaddingがゴチャついて ダメ。 いろいろ考えられますが。。。 よろしくお願いします。

  • CSS
  • 回答数4
  • ありがとう数2

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

  • ベストアンサー
回答No.4

No2.です。 >印刷時のみ つかう CSSは別ファイルを作って >改めてつくりなおすということでしょうか? >または、 一部 書き換え(no.1さんのアドバイス)のみで >すむのでしょうか? 私は、一つのCSSファイルに沢山書き込むのが好きではないので、 (後々、どこで何を指定しているのかが分からなくなります…) ディスプレイ表示用CSSと印刷用CSSを別ファイルにしています。 ディスプレイ表示用:<link href="sample.css" rel="stylesheet" type="text/css" media="screen,tv" /> 印刷用:<link href="sample_print.css" rel="stylesheet" type="text/css" media="print" /> 『media』の部分で何に対応させるCSSなのかを指定しています。 印刷用CSSには、印刷させたくない部分(サイドメニューやフッターなど)に『display: none;』と『float: none;』を指定し、 印刷させたい部分(メインコンテンツ)に『width: 100%;』を指定して、 大体出てくる紙のサイズに印刷部分の横幅が合うようにしています。 以前は本当に必要最低限の指定のみだったのですが、最近は印刷した時に読みやすいようにフォントを明朝体に変えてみたり、 印刷部分に外部リンクが含まれていた場合は、リンクの横にURLを表示させたりと、 CSSの使い方次第では『印刷だからこそ生きてくる』見せ方も出来るので、勉強していくのも楽しいですよ! お力になれれば幸いです。

ponta2008
質問者

お礼

なるほど なるほど。お力どころか..ありがとうございます。 無事解決にいたりました。 クライアントに対してもその旨をつたえ 了解を得たので、 トラブルにならずすみました。

その他の回答 (3)

回答No.3

No2です。 すみません、No1.の方の回答への補足でした。 失礼いたしました。

回答No.2

No2.の方の回答へ補足です。 IE6以前のバージョンだと用紙サイズに合わせた印刷機能がありませんので、 サイズによったらfloatさせたサイド部分がごっそりなくなる場合もあります。 そのことも踏まえて、No2.の方のように『float:none;』を加えるか、 または印刷されなくても不都合ない部分(サイドメニューなど)を 『display:none;』で消してしまう方法もあります。 印刷時のみに適応させるCSSの指定方法も複数ありますので、一番ベストな ものを選択して使ってみてください。

ponta2008
質問者

補足

印刷時のみ つかう CSSは別ファイルを作って 改めてつくりなおすということでしょうか? または、 一部 書き換え(no.1さんのアドバイス)のみで すむのでしょうか? よろしくお願いします

noname#83877
noname#83877
回答No.1

IEもfirefoxもおかしいのであれば、linkにmedia=screenの指定がまず一番怪しいです。 あとはfirefoxだとfloatを指定された要素がページをまたぐ場合に途切れてしまうバグがあります。その場合は単純に印刷用cssにfloat:none;を指定してやるのが一番簡単な解決策です。

ponta2008
質問者

補足

ちなみに ieでのみ おかしいです。 fire foxでは 問題ありません。firefoxをベースに作ってます。

関連するQ&A

  • 【CSS】IE6で印刷時にレイアウトが崩れる

    大変困っています。 印刷を前提に作ったページではないのですが、 クライアントから印刷時にレイアウトが崩れて印刷できないとご指摘を受けました。 そこで、IE6とFirefoxで確認したところ、 Firefoxではレイアウトが崩れずきちんと印刷されますが、 IE6では2カラムの右側(メイン部分)が消えてしまっています。 (IE7は自分のオフィスでは入れてはいけないことになっているので、IE7では確認していません。) 何か問題があれば、ご指摘お願い致します。 <div id="container" class="clearfix"> <div id="siteSub"> ああああああ </div> <div id="siteMain"> いいいいいい </div> </div> ■CSS-------------------------------- div#container{ width: 950px; padding: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 10px; } div#siteSub{ margin: 0px; padding: 0px; width: 230px; display: block; float: left; } div#siteMain{ padding: 0px; float: left; width: 710px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 10px; } 右側のメイン部分が消えてしまっているので、 大雑把にレイアウト部分だけ書いてみました。 siteMainの中身のCSSのfoat要素等が関わってくることはあるのでしょうか。 linkの部分は media="all"としています。 <link rel="stylesheet" type="text/css" href="css/import.css" media="all"> また、Yahoo! UI Libraryを参考にした、reset.cssも入れています。

  • CSSレイアウト=firefox3.0とfirefox3.5のブラウザ

    CSSレイアウト=firefox3.0とfirefox3.5のブラウザ表現の違いについて教えてください。 firefox(以下。FF)3.0と、3.5ブラウザの見え方の違いが発生してしまいました。 FF3.5基準だと、IE(6.0。7.0。8.0)でも問題なくみえますが、 なぜかFF3.0だけ CSSレイアウトが 崩れています。 基本 FFは準拠しているものとして 3.5基準で作っていましたが、 仇となってしまいました。(私の勉強不足ってのもありましたが) これは ハック等で問題は解決できるのでしょうか? それとも、margin等の規格がIEバグのように 違うものになっているのでしょうか? ご回答よろしくお願いいたします。

    • ベストアンサー
    • CSS
  • CSSでのレイアウトについて

    HTML、CSS超初心者なのですが CSSでレイアウトを組むと ブラウザを縮小したりしたときに レイアウトがぐちゃぐちゃになります paddingやmarginはpxで指定してるのですが それがいけないのでしょうか? |   | |あああ| |   | こういうレイアウトの物が ブラウザを小さくすると || ||あああ || とボーダーがちいさくなって 中の文字がはみ出してしまいます どうぞよろしくお願いします

  • どう変更してもIE6だけCSSレイアウトが崩れてしまいます。

    CSSレイアウトで、サイトを作成していたのですが、 最近になってIE6で確認してみると、レイアウトが崩れまくっていました。。。 3カラムレイアウトなのですが、Firefox等他のブラウザではきちんと表示されるので、なぜかIE6だけ縦1列になってしまいます。。 こちらのサイトでもIE6はレイアウトが崩れやすいという情報がたくさんあり、そちらのアドバイスを参考にしながら1日かけてがんばってのですが、できませんでした。もう限界です(涙) 現在のCSSは、 * { margin:0; padding:0; } .wrapper { width: 740px; margin: 0 auto; } .header { width: 740px; } .main { width: 740 px; /* 両端ブロックとコンテンツを囲んでいるクラスです。 */ } .menu {display: inline; float: left; width: 205px; } .contents {display: inline; float: left; width: 385px; } .affiliate {display: inline; float: left; width: 150px; } .footer { clear: both; width: 740px; } というような状態です。 どなたかアドバイスいただけますと大変幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • CSS:印刷時のレイアウト崩れについて

    CSSを利用してレイアウトしたページを作成しています。 もう殆ど作りこんだ今になって気付いたのですが、記事本文のテキストが長くなり、印刷プレビュー時に改ページされる程度にまで伸びると、一挙にレイアウトが崩れてしまうようなのです。 こちらにつきまして回避策はありますでしょうか? ★外部CSS部分 body { padding: 0px; margin: 0px; } #container { width: 762px; position: relative; margin: 0 auto; margin-left: auto; margin-right: auto; top: 0px; } #header { width: 549px; position: absolute; left: 212px; top: 3px; } #left { width: 211px; position: absolute; left: 1px; top: 0px; } #content_right { width: 510px; margin-left: 231px; padding-top: 149px; font-size: 0.8em; line-height: 140%; } #footlink { text-align: center; margin: 30px 0px 40px 0px; } ★HTML部分 <div id="container"> <div id="content_right"> <h1>h1テキスト</h1> <h2>h2テキスト</h2> <p>記事:この辺に印刷プレビューで改ページされるほど改行を入れた場合です</p> <div id="footlink"><a href="#">フッダリンク</a></div> </div> <div id="header">ヘッダメニューとかタイトル画像とか</div> <div id="left">左メニュー部分</div> <div>コピーライト</div> </div> どうにもならないようであれば、印刷時に記事部分だけ抜き出すようなカタチにするべきなのかと考えていますが、難しそうで少し尻込みしています。 良い手立てがあるようでしたら、是非教えてください。 よろしくお願いします。

  • CSSサイトの3段組レイアウトによる印刷ミス

    現在CSSサイトの3段組レイアウトでのサイト構築を しておりましてページが完成しました。 しかし印刷をしようとした際にIE6で印刷プレビューしようとすると、ヘッダーだけ出てきてしまい白い状態でまったく中身が印刷されませんでした。 三段組レイアウトの手法として下記の手法を用いております。 まず大本のブロック要素にoverflow:hiddenを指定し、 3カラムのすべてに、padding-bottom:32768pxを増やしmargin-bottom:-32768pxをネガティブします。 参考 http://css-happylife.com/log/css-template/000174.shtml この設定をはずすと印刷はできるのですが、サイドの伸び幅がなくなってしまいます。 なんとかこの手法のまま印刷することは可能でしょうか?? 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • ブラウザによってCSSレイアウトが崩れる

    個人でサイトを運営しています。ビルダー等のソフトを使わず、HTMLタグ打ちで作っています(独学です)。テーブルでページをレイアウトするのは好ましくないと言われているので、最近になってCSSでレイアウトするようになりました。 普段ブラウザはIE6を使用していて、一つ一つレイアウトを確認しながら作り上げたのです。しかし、Fxを導入して確認してみると、レイアウトが無茶苦茶に崩れてしまいました。両方で崩れないように調整できたと思ったんですが、次にIE7を導入して確認すると、また大きく崩れるようになってしまいました。これは単に自分のミスなのか(widthやheight、margin、paddingなどで間違いがある)、それともブラウザによって微妙なズレが生じるのは仕方のないことなのか、よくわかりません。どなたかご教授お願いします。

  • CSSレイアウト・背景グラデーション

    初めまして <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" でCSSでヘッダー・右袖・左メイン・フッターとレイアウトしてます。 ヘッダーから下は右・左・フッターとコンテンツIDでまとめてます。 bodyと#wrapperを使いセンター表示にしてますがページによって テキストボリュームの差がかなりあるのでそれぞれのheightは設定してません。 autoでも非設定でも複数ブラウザで大丈夫だったので省きました。 このレイアウトでIE・Safari・FireFoxなどでレイアウト崩れはしないのですが、枠線を付けたり背景画像で境界線に影を付けたりすると問題が出ます。 FireFoxとSafariだけヘッダー部分にしか影が出ません。 IEやSleipnirではフッターまで反映されます。 ページ毎のテキストボリュームが違うためheight設定してませんが数値指定するとすべてのブラウザで反映されます。 heightに数値いれるとテキストが少ないページでは無駄な表示域がでてしまうので避けたいです。 解決策や当方の設定に問題点があるでしょうか? 影画像は820pxで制作#wapperの背景に指定してます。 よろしくお願いします。 body { text-align: center; padding: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; } #wrapper { text-align: left; width: 800px; margin-top: 0px; margin-bottom: 0px; margin-right: auto; margin-left: auto; padding: 0px; } #header { margin: 0px; padding: 0px; width: 800px; height: 300px; } #contents { padding: 0px; margin-top: 10px; margin-right: 0px; margin-left: 0px; width: 800px; height: auto; margin-bottom: 0px; } #contents #left { margin: 0px; padding: 0px; width: 200px; float: left; height: auto; } #contents #right { padding: 0px; float: right; width: 600px; margin: 0px; height: 1280px; } #footer { margin: 0px; padding: 0px; width: 800px; height: 60px; } 上では#wrapperに画像設定してませんが#wrapperに背景設定してます。 どのブラウザでもレイアウト崩れは起きてないです。 よろしくお願いします。

    • ベストアンサー
    • CSS
  • IEとファイヤーフォックスでのレイアウト違い

    外部CSSにてレイアウト組んだのですがIE7とファイヤーフォックスで微妙に違うレイアウトになってしまいます。。 IEですとメインフラッシュの横に1px程度の白い空白ができてしまいます。 正しくはファイヤーフォックスのように空白がない というようにIEでも表示させたいのですが・・・・。 どなたかお力添えいただけると幸です。。 http://studio-evah.com/test/ cssは http://studio-evah.com/test/css/css.css です。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • CSS IEとfirefoxおなじレイアウトにしたいのですが

    初心者です。↑質問ですが IEでレイアウトはみれてもfirefoxでは崩れてしまいそれの 対処で困ってしまっています。 どなたかアドバイスください。 ↓のCSSなのですが、途中混乱したままの投稿となってしまっていますが おわかりなられるかた助けてください! ロゴがメイン画像にのっかったりと崩れがたえません。 body{ margin-top: 60px; padding: auto; background-color: #000000; background-image: url(../image/back.gif); color: #000000; cursor: crosshair; } P{ margin: 0; } h1{ font-family: serif; font-size: 5pt; color: #000000; } /*imgDIV↓*/ #lightbox{ width: 100%; z-index: center; text-align: center; background-repeat: no-repeat; } /*toplogo*/ #wrapper{ position: relative; width: 100%; margin: auto; margin-bottom: 20px; margin-left: auto; margin-right: auto; } #logo{ padding-top: 50px 50px 50px 50px; position: absolute; left: 410px; } /*グローバルナビ*/ #hako { margin-top: 150px; line-height:50px; padding-left: 900px; } #hako li { display:inline; list-style:none; padding-right:12px; float: left; background: url(../image/bpin.gif) left top no-repeat; line-height: 12px; padding-left: 17px; } #hako li{ font-family: DejaVuSans; font-size: 12px; } #hako li a { color:#C0C0C0; text-decoration:none; border-bottom:solid 2px #ADABAE; } #hako li a:hover { color:#FFFF66; border-bottom:solid 1px #CC0000; }

専門家に質問してみよう