[PR]ネットとスマホ OCNでまとめておトク!

現在、ホームページを作成し、印刷用のcssの作成をしております。
そこで、chromeやsafariでは表示できるのに、ieでは印刷時に画像が表示されない部分があります。

以下のようなhtml、cssにてコーディングしております。

【HTML】
<div class="hoge">
  <a href="./">Top</a>
</div>

【print.css】
.hoge a{
content: url("../images/print/img_header_pr.jpg");
position: absolute;
top: 9px;
left: 9px;
}


IEで表示させるには、どのようにすればよいのでしょうか

このQ&Aに関連する最新のQ&A

A 回答 (3件)

印刷には適用されないようですね。


印刷を考慮したページでしたら、後方互換のため次のように書くほうが良いでしょう。

★Another HTML-lint 5( http://www.htmllint.net/html-lint/htmllint.html# )
でチェック済み。HTML4.01strict+CSS2.1
★タブは_に置換してあるので戻すこと。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
_<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
_<title>サンプル</title>
_<meta name="author" content="ORUKA1951">
_<meta http-equiv="Content-Style-Type" content="text/css">
_<link rev="made" href="mailto:oruka1951@hoge.com" title="send a mail" >
_<link rel="START" href="../index.html">
<style type="text/css" media="screen">
<!--
a img{border:none;}/* IE対策 */
div.header h1{
width:900px;height:210px;
margin:0 auto;
overflow:hidden;
text-indent:-900px;
position:relative;
}
div.header h1 a{
display:block;width:100%;height:100%;
background: url("../images/main/img_header.jpg") top left no-repeat;
}
div.header h1 a:hover {
background-position:bottom left;
}
-->
</style>
<style type="text/css" media="print">
<!--
a img{border:none;}
div.header div.nav a:after{content:"\A( http://hoge.com"attr(href)" )";withe-space:pre;}
-->
</style>
</head>
<body>
_<div class="header">
__<h1><a href="./"><img src="../images/print/img_header_pr.jpg" width="900" height="210" alt="ようこそ****のサイトへ"></a></h1>
__<div class="nav">
___<ol>
____<li><a href="/">Top</a></li>
____<li><a href="/product">製品</a></li>
____<li><a href="/books">書籍</a></li>
____<li><a href="/profile">紹介</a></li>
___</ol>
__</div>
_</div>
_<div class="section">
__<h2>見出し</h2>
__<p class="goTop"><a href="/">トップへ</a></p>
_</div>
_<div class="footer">
__<h2>文書情報</h2>
__<dl class="documentHistry">
___<dt id="FIRST-PUBLISHED">First Published</dt>
___<dd>2012-08-10</dd>
___<dt id="LAST-MODIFIED">Last Modified</dt>
___<dd>2012-08-10 12:00:00 (JST)</dd>
__</dl>
__<address>&copy; ORUKA1951 2012 - 2016 All Rights Reserved mailto:*****</address>
_</div>
</body>
</html>
    • good
    • 0

レンダリングエンジン(WebKit、Tridentなど)によって異なるものなのかもしれませんが、contentプロパティを適用することができるのが、:before擬似要素および:after擬似要素のみだからではないでしょうか。


また、メディアタイプを指定してスタイルを適用(@media print)するか、ページボックスを定義(@page)するかによるものと思います。

参考URL:http://www.htmq.com/index.htm

この回答への補足

印刷用のcss上には@printの指定は行っていました。
:afterや:beforeをつけてもうまくいかないです。

確かにレンダリングエンジンのせいだとは思うのですが、表示されません。
難しいです。

補足日時:2013/03/31 17:26
    • good
    • 0

古いIE(IE7以前)は対応していません。


 ⇒この際だから覚えてしまいたいIE7からのCSSの小難しいセレクタやプロパティいろいろ( http://webdesignrecipes.com/css-selectors-and-pr … )
googleが配布しているjavascriptを使うと良いでしょう。
 ⇒IE7/IE8.jsを使って、スタイルシートの標準化( http://ash.jp/web/css/ie8_js.htm )

 

この回答への補足

早速の回答ありがとうございました。
ご指摘の通り、組み込んでみましたが、うまくいかないようです。
ie9でみてもダメでした...

補足日時:2013/03/31 17:26
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QIEの印刷でcssが無効になう

宜しくお願いします。

CSSを使って、DIVタグでレイアウトしています。TABLEでなくDIVだけで組むのは初チャレンジです。外部CSSを使用しています。

IE(Ver6)では、問題なくCSSが有効となって見えるのですが、印刷プレビュー及び印刷では、CSSが無効となりレイアウトが崩れてしまいます。DIV関係に限らず全てのCSSが無効です。

こんな経験は初めてで、何が悪いのかわかりません。

どこをチェックすれば良いのでしょうか?

Aベストアンサー

#2です。例題が悪かったです。(こうなっていると印刷にcssが効かないという例です。)
media="screen" になっているならこのCSSはscreenメディア(主にパソコンのディスプレイ)に対してだけ適用してください。という意味になります。
media="screen,print" と、すると画面と印刷の両方に適用されます。
(media="all"またはmedia自体を削除すれば全てのメディアに適用されます。)

Qウェブページの背景画像を強制的にプリント

ウェブページをプリントする際、例えばIEでは「ツール>インターネットオプション>詳細設定」で、「背景の色とイメージを印刷する」に設定すれば、htmlやcssで背景していしている画像もプリントされるのですが、、
設定方法を知らない人の方が多いかと思います。

そのチェックなしに、htmlやcssなどの指定により強制的に背景画像もプリントされるような状態にできるものなのでしょうか?

Aベストアンサー

http://www.lucky-bag.com/archives/2005/12/print-background-image.html

そもそもWeb上の画像なんて印刷に耐えれるレベルじゃないし、背景ないほうが無駄なインクを消費しないですむのだけどね。
家庭用インクジェットプリンタなら画質はそんなに気にならないけど。

自分なら、印刷用にメニューとか余計なの印刷されない背景とか無くても見やすい別なCSS用意しますね。

参考URL:http://www.lucky-bag.com/archives/2005/12/print-background-image.html

Q背景を印刷

ページを印刷させる時、セルの塗りつぶしを印刷させるにはどうしたらいいですか?
普通に<TD bgcolor="#000099">等にすると、ブラウザのプロパティーで「背景を印刷」にチェックが入っていないと印刷されませんよね。
これを「背景を印刷」にチェックが入っていなくても印刷させるように出来ないでしょうか?
CSSで「background-color : #000099;」としてみましたが、無理でしたorz

Aベストアンサー

背景として表示させていてはたぶんブラウザによってブロックされたままでしょう。
<img>として背景画像として使うものを配置した上に
<div>などを重ねてみると
<img>は背景ではなく画像ですので、印刷してくれるでしょう。

画像ではなく色をつけたい場合も同様に、
#000099が1ドットあるだけの画像を用意しておくとうまくいくと思います。

文法ものすごく汚いですが、サンプル。
ブラウザの互換性は確認してません。
<table border="1"><tr><td><img width="100" height="100"><div style="margin-top:-100px;">aaa</div></td></tr></table>

Q印刷時に2ページ以上になる時CSSで指定した背景が全てのページに印刷されてしまう

CSSで背景を上部にno-repeatで指定しています。これを印刷すると、印刷枚数が2ページ以上になった時、全てのページに背景が印刷されてしまいます。できれば最初のページだけに印刷されるようにしたいのですが方法はありますでしょうか。Mac IEでは最初のページのみに背景が印刷されます。Windowsはだめです。

Aベストアンサー

無理ではありませんよ^^
大丈夫です。印刷用のCSSは簡単です。
まず印刷用のCSSは、
<link REL="stylesheet" type="text/css" HREF="印刷用のスタイルシートアドレス" media="print">
ヘッダ部にこのように記述します。
そこから、印刷した場合2ページ以上は背景を表示しないですよね。
印刷用のCSSには、改ページさせる記述方法があります。
.front_print {
page-break-before: always;
}

例として名前を入力しました。.front_printは任意の名前で結構ですよ。
そして、HTMLの方の記述は、

<div class="front_print"></div>

この<div class="front_print"></div>がある箇所で、印刷は改ページとなります。

この記述がある箇所で改ページがなされるという事は、それ以降の記述は2ページ後となりますので、そこより
背景を再指定させればご質問者様の要望に叶うかと思います。

CSSが詳しく紹介されているページを参考URLに載せておきます。ご覧下さい

ご参考頂けますと幸いです。

参考URL:http://www.stylish-style.com/index.html

無理ではありませんよ^^
大丈夫です。印刷用のCSSは簡単です。
まず印刷用のCSSは、
<link REL="stylesheet" type="text/css" HREF="印刷用のスタイルシートアドレス" media="print">
ヘッダ部にこのように記述します。
そこから、印刷した場合2ページ以上は背景を表示しないですよね。
印刷用のCSSには、改ページさせる記述方法があります。
.front_print {
page-break-before: always;
}

例として名前を入力しました。.front_printは任意の名前で結構ですよ。
そして、HTMLの方の記述は、

<...続きを読む

Qサイト全体を縮小して印刷するには?

こんにちは。教えてください。
http://lexus.jp/
上記アドレスのサイトのように
横幅940pxと普通はA4縦では全てが印刷出来ないサイズのサイトでも
ブラウザから印刷するとサイト全体が縮小して
A4縦に収まって印刷される方法を教えてください。

JavaScript、css少しならわかります。
よろしくお願い致します!

Aベストアンサー

まず、このサイトは標準準拠モードではなく互換モードで作成されています。
(IEはプロパティにつくアンダーバーを無視する。
他のブラウザは仕様どおり存在しないプロパティ自体を無視する)

http://lexus.jp/models/common/css/import.css
から読み込まれる
http://lexus.jp/models/common/css/default.css
にある

@media print {
body {
_zoom: 0.68;
}
}

を読み込むことで印刷時のみzoomを効かせているんだと思います。

Minefield/Firefox,Opera,IE7にはShrink To Fitという
自動的にページ幅を基準とする機能が付いています。

MinefieldではScaleで調整し,
Operaでは[ファイル]-[印刷オプション]に「用紙幅におさめる」で有効になります。
IE6は上の指定で回避します。

ただし,IE7は標準でShrink To Fitであり,zoomプロパティを読み込んでしまうため,異様に小さく印刷されてしまいます。なのでShrink To Fitではなく100%で印刷した方が良いでしょう。

何故か俺の環境ではVPC上でしか動作しないSafariは,
VPCにプリンタドライバ入れなきゃいけないのが面倒なので検証していません。

まず、このサイトは標準準拠モードではなく互換モードで作成されています。
(IEはプロパティにつくアンダーバーを無視する。
他のブラウザは仕様どおり存在しないプロパティ自体を無視する)

http://lexus.jp/models/common/css/import.css
から読み込まれる
http://lexus.jp/models/common/css/default.css
にある

@media print {
body {
_zoom: 0.68;
}
}

を読み込むことで印刷時のみzoomを効かせているんだと思います。

Minefield/Firefox,Opera,IE7にはShrink To Fitという
自動的にペ...続きを読む

Qページの一部が消える印刷プレビューの原因について

ご質問です。
当方、実務経験の浅いwebデザイナー兼コーダーです。
仕事でコーポレートサイトを作成したのですが、htmlファイルの納品後に「印刷にも対応できるようにしてほしい」とクライアントからの要望を頂きました。

フルcssで作成したサイトを確認するも社内のWinXPのIE7・WinVistaIE7共に特定の倍率で「ページのある一部」が印刷プレビューに映らない(印刷しても、そこだけ白い・そこだけスペースが空いている)という現象が起きてしまいました。
(念のため・・クライアントからは最低IE7で印刷できればいい、と言われています)

私の確認では倍率70~75%で「ページのある一部」が表示できなくなり、クライアントの環境(WinXP IE7)では縮小して全体を印刷する、80%、60%の3つで「ページのある一部」が表示できないとのことです。
これはいったい何が原因となっているのでしょうか。

印刷用のcssにzoom指定で修正はできそうなのですが、何より原因がわからないので気になります。

プリンターの問題なのか、ブラウザによるものなのか・・
はたまたコーディングが悪いのか・・。

説明が悪いので伝わりにくく申し訳ないのですが、クライアントにうまく説明するためにも心当たりがある方のご意見を頂きたいです。
宜しくお願いします。

ご質問です。
当方、実務経験の浅いwebデザイナー兼コーダーです。
仕事でコーポレートサイトを作成したのですが、htmlファイルの納品後に「印刷にも対応できるようにしてほしい」とクライアントからの要望を頂きました。

フルcssで作成したサイトを確認するも社内のWinXPのIE7・WinVistaIE7共に特定の倍率で「ページのある一部」が印刷プレビューに映らない(印刷しても、そこだけ白い・そこだけスペースが空いている)という現象が起きてしまいました。
(念のため・・クライアントからは最低IE7で印刷で...続きを読む

Aベストアンサー

結構日数が経っているのでもう解決済みかもしれませんが…
私も一度その現象に出くわしたことがあります。
その時はoverflow:hidden;を消せば直りましたが、どうでしょうか。
もし解決済みでしたら、どうしてそうなったのか、解決方法はあったのかよろしければ教えて下さい。


人気Q&Aランキング