Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー

背景色をうまく使えない

CSSを使ったページを試作しているのですが、背景色をうまく使えません。 「outline」の周り全部を赤の背景色にしたいのですが下記ページのようにしかなりません。どうしたら良いのでしょうか。 http://www.asahi-net.or.jp/~gc4t-iwt/taipei0801/1_19.html CSSソース @charset "Shift_JIS"; body { margin-left : 60px; color: black; background-image: url("b_bcg030.gif"); background-repeat: repeat-y; background-color: red; } #outline { background-color: lavender; width: 750px; text-align: left; border: 2px solid silver; padding: 5 5 5 5px; } h2 { padding-left: 100px; }

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

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.3

背景画像が非透過なので背景が覆い隠されてしまいます。透過GIFで保存しましょう。 なお、このままではIEで印刷すると枠の右端が印刷されないはずです。印刷用スタイルシートを別に用意するのでなければ、body要素に上下左右のマージンを指定しておくと良い。 私ならこう書くでしょう。 @charset "Shift_JIS"; /* スタイルシート */ body{ margin : 0px; color: black; line-height: 1.4em; background: url("b_bcg030.gif") repeat-y red; } p{ text-indent: 1em; margin: 0.4em 2em; } h1{ } div#outline { background-color: lavender; margin: 10px 60px 20px 100px; /* 本文幅を固定するのはまずい。小さな画面の訪問者には横スクロールを強制することになるし、大きな画面の方には右が抜けた間抜けなページになる。*/ /* text-align: left; 初期値なので不要 */ border: 2px solid silver; padding: 0px; /* 5 5 5 5px という書き方はエラーになるはず */ } img{ border: none; clear: both; margin-top: 10px; margin-bottom: 10px; } img.left{ float: left; margin-right: 20px; } img.right{ float: right; margin-left: 20px; } hr{ visibility: hidden; clear: both; } HTMLのソースに誤りがあります。HTMLなら<br />ではなく、<br>です。(<br />はXHTMLでの空要素の記述方法です。)というより行間を空けるための連続<br>はブラウザによると無視されます。正しくは<p>段落</p>でマークアップし、段落間は上記例のようにp{margin:}で指定すべきです。 1) 背景画像を透明GIFで保存しなおす。(リング部分に同じ白があるので工夫が必要) 2) HTMLの<br><br />はすべて消して、改めて段落を<p></p>でマークアップ 3) せっかく画像にclass="left"などと指定してあるので、CSSにてfloatを設定するとHTMLソースのstyle指定は不要になる。 4) 画像のborderはCSSで0にすべきです。HTMLでは指定しない 5) 最後の</body>の直前に<hr>を入れておこう。CSSで不可視にする。 6) <div>が無意味に重複している。ひとつの<div>に指定可能です。  <div id="outline" class="outline-marign">  これでHTMLもすっきりし、期待通りの表示になるはずです。

ganko3
質問者

お礼

まだ解決していませんが回答を見て非常に参考になり解決方向が分かりました。有難うございます。 本文幅の固定は写真と説明文の配置の都合上固定にせざるをえません。モニタ幅に合わせると説明文が写真と合わないところへいってしまいます。

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.2

background-image: url("b_bcg030.gif"); これが効いているからではないでしょうか? 提示されている”下記ページ”を元に考えるならば、 背景画像が表示されていなければ、 「outline」の周り全部が赤の背景色になりました。 左端の画像(アルバムのリング?にあたる部分)は残して、 あと周り全部赤くしたいのであれば、 画像(b_bcg030.gif)の白い部分(アルバムの台紙?にあたる部分)を赤くするとよいと思います。

ganko3
質問者

お礼

背景画像に白い部分があるのを気付いていませんでした。 ご指摘有難うございます。

すると、全ての回答が全文表示されます。
  • ajcyp926
  • ベストアンサー率75% (9/12)
回答No.1

>background-image: url("b_bcg030.gif"); 背景画像を指定しているからではないでしょうか。

すると、全ての回答が全文表示されます。

関連するQ&A