- ベストアンサー
<div>レイヤー3層構造の、背景色表示についての疑問。
まずは下記 HTML を見て下さい。 <body> <div style=背景:赤 幅:100px> <!--大枠(1階)開始タグ--> <div style=背景:青 幅:100px> <!--中枠上(2階)開始タグ--> <div style=背景:緑 幅:40px> <!--小枠左(3階)開始タグ--> スタイル:float:left </div> <!--小枠左(3階)終了タグ--> <div style=背景:黄 幅:40px> <!--小枠右(3階)開始タグ--> スタイル:float:right </div> <!--小枠右(3階)終了タグ--> </div> <!--中枠上(2階)終了タグ--> <div style=背景:紫 幅:100px> <!--中枠上(2階)開始タグ--> clear:both </div> <!--中枠下(2階)終了タグ--> </div> <!--大枠(1階)終了タグ--> </body> 奥が1階で、手前が3階とします。 2階には、上下に<div>が並び、上側の<div>にはさらに2つの<div>があります。 3階では、左と右にfloatで分けて<div>を配置しています。 左の<div>幅40pxと右の<div>幅40pxを足した幅80pxは、1階と2階の幅100pxと比べると、 20px小さいので、左と右の間には、隙間ができます。 そこで問題です。 この隙間の色は何色でしょうか。 私は2階の色が出ると思うのですが、1階の色が出てしまうのです。 その原因はなんでしょうか。 floatが関係しているのでしょうか。 私の希望としては、左右の隙間の色は、2階上側の<div>背景色である青色であってほしいのですが、実際には1階背景色である赤が出てしまいます。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- divの背景を高さ100%表示
以下のように、divをつかって背景色を設定した際、 右のピクセル指定の背景は、スクロールバーが出た場合でも 指定された高さまで背景色が表示されるのですが、 左の100%表示指定の方はウィンドウで隠れた部分で切れてしまいます。 色々調べたのですが、 過去にも同じような内容で質問があり、min-heightを追加する事で解決するとありました。 同じように試してみたのですが、思ったように表示がされません。 指定している場所が間違っているのでしょうか? <style type="text/css"> html{ height:100%; } body { height:100%; } #test1 { height:auto !important; height:100%; min-height:100%; float:left; width:400px; background-color:black; } #test2{ float:right; height:800px; width:400px; background-color:black; } body > #test1 { height: auto; } </style> </head> <body> <div id="test1"></div> <div id="test2"></div> </body> </html>
- ベストアンサー
- HTML
- DIVで表示が崩れる。
こんにちわ。 お願いします。 TABLEから脱出してDIVで整理整頓しようとおもっているのですが なかなかうまくいきません。 ソースはっちゃいますね <DIV style="width : 780px;height : 100%;z-index : 0;"> <DIV style="width : 780px;clear : both;z-index : 1;"></DIV>(2) <DIV style="width : 200px;float : left;z-index : 2;"></DIV> <DIV style="width : 380px;float : left;z-index : 2;"></DIV> <DIV style="width : 200px;float : right;z-index : 2;"></DIV>(1) </DIV> といった感じでベースになっているDIVがデカデカとあり その中に一段目のDIV(回り込み解除/ヘッダー的役割です)があってその下にDIVが3つ回りこみで並んでる。 という。 で、問題が、HBビルダーで作っているのですが、 3つならんでるDIV、 一番左は「左に廻り込み」 真ん中は「左に廻り込み」 で、問題は一番右です。 ここを「右に廻り込み」にしなきゃ3つ並ばないのですが、(廻り込み設定しない場合一段下がってしまいます)このままだと、(1)の部分に文章やらTABLEやら画像やらいれると(2)の位置へ表示されてしまいます。(ソースは変わらないのですが)。 ならばとおもってDIVを入れると、右のDIVの下に来てしまいます。 ならばとおもい3つのDIVをDIVで囲み、その外に書いても右のDIVの下へ… 俺がしたいのは、 とにかく一段下げたいのです。TABLEでいえばTRを作りたい。 わかりますでしょうか?
- ベストアンサー
- HTML
- [携帯]divで指定した背景色から画像がはみ出す。
携帯用サイトを制作しているのですが、 <div style="clear:both;background-color:red;"> <img src="./images/icon.gif" width="64" height="64" align="left" style="vertical-align:middle;float:left;margin:5px;" /> <br />こんにちは </div> <div style="clear:both;~ と画像の横に文字が回りこんだとき、背景色が文字の部分にしかつかず、画像がはみ出した状態になってしまいます。 今回は1*1の透明なgif画像を使い、 <div style="clear:both;background-color:red;"> <img src="./images/icon.gif" width="64" height="64" align="left" style="vertical-align:middle;float:left;margin:5px;" /> <br />こんにちは <div clear="all" style="clear:both;"> <img src="./images/space.gif"> </div> </div> <div style="clear:both;~ とすることで解消できたのですが、 参考にしていたサイトではどうやら画像を使わずに背景内に収めているようです。 後学のために、画像を使わず、背景から画像をはみ出さないように見せる方法を教えてください。よろしくお願いします。 docomoで動作確認しています。
- 締切済み
- HTML
- div入れ子の背景画像
【CSS】 #layout{ width:755px; margin:auto; background-color:#ffff00; background-image:url(img/back.gif); background-repeat:repeat-y;} #menu{ width:168px; margin:0px; padding:0px; float:left;} #main{ width:570px; background-color:#ffffff; padding:0px 0px 0px 10px; float:left;} 【html】 <div id="layout"> <div id="menu">メニュー</div> <div id="main">メイン</div> </div> レイアウトで指定した背景画像を縦に繰り返し表示させたいのですが、 上記のCSSだとIEはOKなのですが、foxが表示されません。 メニューidにはデザイン上背景画像は設定できません。 また、 <div id="layout"> あああ </div> を試したら背景画像が表示されましたので、パスの間違いはありません。 どうすれば良いでしょうか? 知恵をお貸しいただけますでしょうか。 宜しくお願い致します。
- ベストアンサー
- HTML
- レイヤーを背景だけ透過させたい
お世話になります。 レイヤーを背景だけ透過させたく、質問させていただきます。 レイヤーを透過させたい場合、よくスタイルシートのfilterが使われると思います。 たとえば <div style="width:100; height:20; color:#ff0000; background-color:#0000ff; filter:Alpha(opacity=60);"> フィルター適応</div> のようにすると、レイヤー全体が透過されます。 しかし、今回やりたいのは、背景のみが透過し、文字は透過させたくありません。 1つ考えた方法として、 <div style="width:100px; height:20px; top:0px; left:0px; position:absolute; background-color:#0000ff; filter:Alpha(opacity=60);"> </div> <div style="width:100px; height:20px; top:0px; left:0px; position:absolute; color:#ff0000;"> フィルター適応 </div> のように、無理やりレイヤーを2つ重ねて表示できないこともないのですが、もっとスマートな方法はないでしょうか。 ご存知の方がいらっしゃいましたら、ご教授お願いいたします。
- ベストアンサー
- HTML
- divで作成したレイアウトに背景画像を付けたいが付けられない
divでレイアウト作り背景画像を入れたいのですが背景画像が思うように適用されません。 以下のようなサイトのように、作成したレイアウトのコンテンツ部分(真ん中白い背景色部分)に背景画像をつけたいのですが、色々やってみたのですが背景画像が適用されません。 参考サイト:http://www.realbit.net/rb_results/index.html 私のソースコードは以下です。 HTML <body> <div id="header"> <p>ヘッダー</p> <p>あああ</p> </div> <div id="container"> <div id="incontainer"> <div id="main"> <p>メイン</p> <p>あああ</p> <p>あああ</p> <p>あああ</p> </div> <div id="leftMenu"> <p>左メニュー</p> <p>あああ</p> <p>あああ</p> <p>あああ</p> <p>あああ</p> <p>あああ</p> </div> </div> <div id="rightMenu"> <p>右メニュー</p> <p>あああ</p> <p>あああ</p> <p>あああ</p> <p>あああ</p> <p>あああ</p> </div> </div> <div id="footer"> <p>フッター</p> <p>あああ</p> <p>あああ</p> </div> </body> CSS #header { background-color: #FF3; width: 920px; margin-right: auto; margin-left: auto; } #container { background-color: #F00; width: 920px; margin-right: auto; margin-left: auto; } #incontainer { float: left; width: 720px; } #main { float: right; width: 520px; background-color: #900; } #leftMenu { background-color: #00F; float: left; width: 180px; margin-left: 20px; } #rightMenu { float: right; width: 180px; background-color: #FF9; margin-right: 20px; } #footer { background-color: #F0F; clear: both; width: 920px; margin-right: auto; margin-left: auto; } 参考サイトのようにコンテンツ部分に背景画像を入れたい、私の場合container部分にフォトショップで作成した背景画像をいれたいのですが、まずは実験的に、上記のように背景画像を入れる前に赤い背景色を入れて見ましたが赤い背景が出てきません。背景画像もためしに入れてみましたが適用されません。 なにが間違っているのでしょうか?
- ベストアンサー
- HTML
- ホームページの背景画像が表示されない。
ホームページ作成を行っておりますが、どうしても背景画像が表示しなくて困っております。 構成としては、ものすごく単純な構成なのですが・・。 構成は図に記載させていただきました。 大枠を【Contents】というDiv要素で囲み、 その中に【mainArea】【subArea】をDiv要素配置しております。 【mainArea】はFloat:Left【subArea】はFloat:Rightを設定し左右に配置しております。 【subArea】の中にさらに【6Support】というDiv要素を作り、その中に背景画像を設置したところブラウザにて表示されません。 色々試してみたのですが、どうしても表示されずにお手上げ状態です。詳しい方にアドバイス・ご教授いただければ幸いです。 ※ちなみに、上記構成にて【subArea】に背景を設定すると問題なく表示されます。 【HTML】 <div id="contents"> <div id="mainArea"> id "mainArea" の内容がここに入ります</div> <div id="sideArea"> <div class="6support"> 背景画像をおきたい。</div> </div> </div> 【CSS】 #contents { height: 1000px; width: 960px; margin-right: auto; margin-left: auto; } #mainArea { float: left; height: 800px; width: 700px; } #sideArea { float: right; height: 800px; width: 250px; } #sideArea .6support { height: 400px; width: 240px; background-repeat: no-repeat; margin-left: 7px; background-image: url(images/6supportBack.jpg); } 一応、原状を「 http://soltsuger.web.fc2.com/test.html 」にアップさせていただいております。参考になればご覧ください。 ご教授よろしくお願いいたします。
- ベストアンサー
- HTML
- 【CSS】横3カラム:左右は固定pxで中央カラムはが残り幅となるにはどうすれば?
http://www.amazon.co.jp/ のように、 横3カラムで、全体は100%、一番左カラムと一番右カラムは固定px、真ん中のカラムは100%-左カラム固定pxー右カラム固定pxで、 ウィンドウをリサイズしても、この状況が変わらない・・・ というようなCSS(JSもからむのでしょうか?)は、どのようにすればつくれるのでしょうか? <div style="float:left;"> 左カラム </div> <div style="float:right;"> 右カラム </div> <div> 中央カラム </div> 。。。だと、中央カラムが縦長になるとはみ出してしまいますよね・・・。 どうぞよろしくお願いいたします。
- ベストアンサー
- HTML
- 枠がスクロールさせると消える
ブログのような日記調記事をいくつも縦に並べて表示したいと思っています。 例) <div 大枠> <div 記事(float: leftにしている)></div> <div 写真></div> </div> 上記<div 大枠>から繰り返し・・・ 最初ぱっと見はそれらしい形になるのですが、IEの場合のみ下の記事を見ようとスクロールさせると、大枠の左右の枠線が一部消えます。 (上下は問題なく、角部分も表示される) 上の記事に戻ると、最初見えていた上部記事の枠も左右とも消えてしまいます。 画面から見えない位置にある記事の枠を表示させる時に異常が生じるようです。 IE以外では問題なく、どうしても直すことができません。 枠を常時表示させるにはどうしたらよいでしょうか。 枠の設定 <div class="waku" style="border-style:solid; border-width:thin; border-color:#CCCCCC; padding:10px 20px 0px 0px;">
- 締切済み
- HTML
- floatについて
■ □ と並んでいた場合■にスタイルシートでfloat:leftとすると□が右にきますよね。( ■□となる) それで私はfloat:leftは『次に来る要素を自分の右に移動させる』と 解釈してました。 それで質問なのですが以下のタグの場合どうして最後に(.set1)にfloat:leftが必要なのでしょうか? 次に要素がきていないからあっても意味がないと思ったのですが、実際 はずしてみると間に幅ができてデザインが崩れてしまいます。 また全体の枠を見えるよう最初のdivに.wakuで設定したのですがfloat:leftがあるときには長い一本の線になってしまいます。 どうしてこうなるのでしょうか? <html> <head> <style type="text/css"> .waku{border-color:#cccccc;border-style:solid;border-width:3px;} .set1{border-color:#cccccc;border-style:solid;border-width:1px; width:150px;height:500px;background-color:white;color:#ffffff; margin:0 2.5;float:left;} .main{border-color:#cccccc;border-style:solid;border-width:1px; width:500px;height:500px;background-color:white;color:#ffffff; margin:0 2.5;font-weight:bold;float:left;} .set2{border-color:#cccccc;border-style:solid;border-width:1px; width:150px;height:500px;background-color:white;font-weight:bold; color:#ffffff;margin:0 2.5;float:left;} </style> <div class="waku" align="center"> <div class="set1"> <div>左1</div> <div>左2</div> </div> <div class="main">真ん中</div> <div class="set2">右</div> </div>
- ベストアンサー
- HTML
お礼
補足回答には「添付画像を載せる機能」はないようなので、 簡易ホームページを作ってみました。 http://www.geocities.jp/march4_photo/ 補足文中の、添付画像なんたら という箇所は、このページを見てご理解下さい。 よろしくお願いします。
補足
さらなる回答ありがとうございます。 >ご解決おめでとうございます。 んー、まだスッキリしてません。(^^; >?補足のコードと質問のコードでは「clear: both;」の位置が違っていますよね。 あ、補足で書いたコード(#2さんのコードを拝借して書いたコード)と質問で書いたコードで、「clear:both」の位置が違っていましたね!すみません! これに気づけていませんでした。 この違いがどう影響するのかについて、実際に試してみました。 その結果が添付画像です。 見方は、左側の図形がHTML上でのdiv配置で、右側が出力結果です。 要するに、 <div class="footer">あ</div> の置き場所の違いで、背景色が異なるという結果を示しています。 >#2の方も私も「原因はFloatである」として、補足のコードのように「clear: both;」の位置を変更することを勧めているんですが。^^; そうだったのですか~。気づいていませんでした。(苦笑) コードを見て、ふむふむと読み、それをブラウザに出力して、ほぉ~と思っただけでした。(汗) >プラウザのキャッシュや一時ファイルが残ったままではありませんか? その可能性は薄そうです。 実際のサイトのdiv配置が例1のタイプなので、まず間違いなく、それが原因であると思われます。 >あれはよくあるおまじないです。スタイルではありません。^^; おまじないでしたか。。。汗 って、なんだそりゃーと突っ込みたくなりますが、この際、脇に置いておきます。 >ここを締め切られて、別に質問をされる方がもっとよい回答がつくと思います そうですね。検討してみます。 >自分ならば「div#main」に背景画像(高さの狭い物:添付画像)を指定してしまいます。それで、中の「div#lefter」「div#righter」には色を指定しません。 はい、この方法は知っているのですが、ページビューが重くなりそうなので、背景画像を使わずに表現できないかと模索していました。 でも、私のしたいことが正確に伝わっていることが感じられて嬉しく思いました。 まさに、そういうことをしたいのです! ありがとうございます。