• 締切済み

画像をスライスしてボックスごと表示する場合について

画像スライスをCSSで組み合わせたものをページの中央に表示する場合は、以下のタグで全体を囲みますよね。 div#imgbox{ width:1200px; height:200px; position:relative; margin:0px auto; } このときに背景色を1色ではなく、 黒色ボックスの背景色は、ブラウザの端っこまで黒色 赤色ボックスの背景色は、ブラウザの端っこまで赤色 のようにしたいのです。 黒色部分を div#imgbox{ width:100%; height:200px; position:relative; margin:0px auto; background:#000000; } と色別に指定したら、今度は真ん中に寄らなくなってしまいました。 何か方法はあるのでしょうか?やはりテーブルなどで囲むしかないの でしょうか・・・。

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

みんなの回答

noname#83877
noname#83877
回答No.3

スペースはおそらく html,body { margin:0; padding:0; } で対処できます。 div#imgboxに背景画像をしても表示されないのはちょっとよくわからないですね。

fumi69
質問者

お礼

metametamuさんへ ありがとうございます。スペースに関しては解決 出来そうです。 まだ、IEでしか確認できてませんが・・・。

noname#83877
noname#83877
回答No.2

多分リンク先のサイトはほとんど画像なので、一番下の文字の部分までの画像を用意し、 background:url(image.jpg) no-repeat center 0 blue; のような感じの指定をbodyに指定すれば再現できると思います。 コンテンツによるのですが、分割したボックスの中が文字ならそれぞれの色ごとにdivで囲って背景色なり画像なりを指定する方が良いと思います。 もしもほとんど画像だけなら前述のような指定をfumi69さんの場合にはbody直下のdivにでも指定し(divにはheightを指定して高さを確保)、その上でdivに指定した背景画像と同じ間隔で縦方向に色分けされた長細い画像を用意し、bodyにrepeat-xで指定します。 こうすると水平方向に分割された背景画像の上に、また別の画像が重なるので1枚の画像に見えるはずです。

fumi69
質問者

お礼

回答への補足は1回だけなので、こちらに書かせてもらいます。 ボックスごとに画像を並べたままですと、ブラウザの左側に寄って ますよね? そのたくさん画像が並んだボックスを div#imgbox{ width:1200px; height:200px; position:relative; margin:0px auto; } このdivで囲むと、センターに行きます。しかし、トップ部分にブラウザとの間に、なぜか隙間が出来てしまいます。 多分、そのことによって、縦方向に色分けした背景画像と合わなくなるような気がします。 ボックス全体をdivで囲んだ場合、隙間が出来てしまうのはしかたないことなのでしょうか? 何か良い解決方法はありますか?

fumi69
質問者

補足

ボックスの中身はほとんど画像です。 分割された画像を並べています。 試しに、body全体の背景を縦方向に色分けされた画像を置きました。 ボックスに表示されている画像と色の位置がずれてしまいます。 今度は、こちらの部分に背景画像を指定したところ、 なぜか背景画像が表示されません。 div#imgbox{ width:1200px; height:200px; position:relative; margin:0px auto; }

noname#83877
noname#83877
回答No.1

ちょっとどういったものか想像がつきにくいですが、幅がpx指定で固定の場合は背景画像を縦方向にリピートで指定すれば良いのではないでしょうか。 2つめのソースはwidth:100%;と指定されているので、表示範囲がブラウザの画面全体にまで広がってしまうため中央寄せはできません。 widthをpxで指定するようにしてみてください。 div#imgbox{ width:1200px; height:200px; position:relative; margin:0px auto; background:url(image.gif) repeat-y center 0; }

fumi69
質問者

お礼

画像の色が黒・赤・グレーなどの順番になっています。 そのとおりに背景色もしたいのです。 そのため、背景は縦方向に繰り返すと、モニターサイズが1280×1024の場合は、また黒色が表示されてしまいます。 横だけ繰り返し表示にすればよいのでしょうか?

fumi69
質問者

補足

補足情報を間違って、お礼の部分に書いてしまいました。 こちらのサイトは、バックが青色・白色の順番に なってますよね。 http://www.stanley-no-majo.com/index.html このような感じで、黒色・赤色・黒色・グレー黒と 背景色を表示したいのです。

関連するQ&A

  • position:fixedが親要素に準じて表示してくれません。。

    position:fixedが親要素に準じて表示してくれません。。 <div id="relative">   <div id="flashContent"><img></div>   <div id="TopBnr"><img></div> </div> ーーCSS-ーーーーーーーーーーーーーーーーーーーーーーーーーーーー #relative {      position:relative;      width:990px;      height:374px;      margin:0px auto; } #flashContent {      width:990px;      height:374px;      margin:0px auto;      z-index:0; } #TopBnr { position:fixed; width:260px; height:90px; right:90px; top:30px; z-index:1; } Ie6対応済みです。。 なぜかIeでの配置はできているのですが、 それ以外のブラウザでは、親要素に準じて配置してくれません。 どなたか解決策を教えてください。。

  • CSSでボックスのheightが0になる

    http://css-happylife.com/ 上のサイト(私のサイトではないです)で、 <div id="contentsInner"> <div id="main"> </div> <div id="sub"> </div> </div> という部分があります。 CSSはだいたい下のような感じです。 #contentsInner { margin:0pt auto; position:relative; width:910px; } #main { float:left; overflow:hidden; width:500px; } #sub { float:right; margin-top:20px; padding:8px 0pt 8px 10px; width:390px; } Firebugで確認したところ、 #mainの大きさは500 x 1552 #subの大きさは390 x 1305 に対し、 #contentsInnerの大きさは910 x 0 と、高さが0になっています。 もちろん、#contentsInnnerに背景画像を設定しても 表示されることはありません。 ブラウザもheight=0と認識しているようです。 なぜ高さが0になってしまっているのでしょうか。 このバグ?の対策を教えてください。 よろしくお願いします。

    • ベストアンサー
    • CSS
  • Safariでheight:100%のボックスを表示したいのです

    Safariでheight:100%のボックスを表示したいのです。MacIE・WinIE・FireFox・Operaでは出来たのですが、どうしてもSafariだけheight:100%のボックスが出来上がらず・・・。 以下、記述したCSSとHTMLです。 HTML--------- <body> <div id="main"> <h1>height100%のボックス</h1> <p> 標準準拠のIEやfirefoxでbody直下にheight100%のボックス </p> ・・・略 <h1>height100%のボックス</h1> <p> 標準準拠のIEやfirefoxでbody直下にheight100%のボックス </p> ・・・略 </div> </body> </html> CSS--- /* \*/ html{ height:100%; } /* \*/ body{ height:100%; width:80%; margin:0px auto; padding:0px; } div#main{ background-image:url(../images/contents_bg.gif); border:solid 1px #760014; border-width:0px 1px; height:100%; min-height: 100%; margin:0px auto; padding:0px; border:1px solid #ff0000; } body > #main{ height: auto; } h1{ margin:0px auto; padding:0

    • ベストアンサー
    • HTML
  • 背景画像

    背景画像のCSSを教えてください wordpressのfooterのように、footer内のみに縦100px横幅1pxの画像で敷き詰めたいです 実際に横960pxに敷き詰められるようにしたいです #footer_in { position:relative; margin:0 auto; padding:0; width:960px; height:100px; background:url(../images/footer_bg.png) no-repeat center 13px; font-size:12px; } <div id="footer_in"> </div>

    • ベストアンサー
    • CSS
  • HPの作成を教えてください。

    HP作成を見よう見まねで作成しているのですが最初からつまずきました。 作成したいのはDIVで#headerでヘッダー領域を作りその中にヘッダー#header-inを作りその中を区分けしたいので#header-logoと#header-logo2をCSSで作成したのですが#header-logoと#header-logo2の文字が表示されません。 何分初心者なので分かりやすく教えて頂ければ助かります。 body , html { height: 100%; margin: 0; padding: 0; text-align: center; /* 標準文字色 */ font-size : 100%; background-image : url(../imege/bg01.png); background-repeat : repeat-x;background-position : left top; } /* Safari用ハック 文字サイズ調整 */ /*\*/ html:\66irst-child body{ font-size: 90%; } /* end */ } img{ border-top: 0; border-right: 0; border-bottom: 0; border-left: 0; } #container { width: 100%; position: relative; height : 100%; min-height: 100%; background-image : url(../imege/fbg01.png); background-repeat : repeat-x;background-position : left bottom; } #header{ width: 100%; height : 84px; margin-top : 0px; margin-bottom : 0px; text-indent : -9999px; } #contents { padding-top : 84px; padding-bottom: 100px; margin-top : 0px; margin-bottom : 0px; margin-left : auto; margin-right : auto; } #footer { position: fixed; bottom: 0; width: 100%; height: 100px; margin-left : auto; margin-right : auto; } #header-in{ width : 900px; height : 84px; position : relative; margin-left : auto; margin-right : auto; margin-top : 0px; margin-bottom : 1px; } #contents-in{ margin-left : auto; margin-right : auto; width : 900px; position : relative; margin-top : 0px; margin-bottom : 0px; } #footer-in{ margin-left : auto; margin-right : auto; margin-bottom : 0px; width : 900px; height : 100px; position : relative; margin-top : 0px; } #header-logo{ width : 500px; height : 84px; float : left; z-index: 2; } #header-logo2{ width : 200px; height : 84px; float : left; z-index: 2; } <div id="container">  <div id="header">  <div id="header-in">ヘッダー     <div id="header-logo">トップロゴ</div>     <div id="header-logo2">お問い合わせ</div>    </div> </div>    <div id="contents">   <div id="contents-in">コンテンツ</div>  </div>  <div id="footer">    <div id="footer-in">フッター</div>  </div> </div> よろしくお願いいたします。

    • ベストアンサー
    • CSS
  • positionプロパティの設定について

    下記のようなposition: relative;の指定widthが100%に対して、position: absolute;を指定するdiv#innerのwidthが800pxでセンター表示されるように指定したいのですが、position: absolute;のtop: 0px; left: 0px;と記述すると当然のごとく左寄りに表示されます。 div#inner部分をpositionプロパティを使いセンター表示される記述方法があればご教授下さい。 なお、positionプロパティを使う方法のみのご回答でお願いします。 ----------------------------------------- div#footer { position: relative; width: 100%; height: 250px; margin: 0; padding: 0; background : url(images/footer_bg.gif) repeat-x 0 0; } div#inner { position: absolute; top: 0px; left: ?px; width: 800px; margin: 0px auto 0px auto; } -----------------------------------------

    • ベストアンサー
    • HTML
  • position:fixed;でメニューを右側に固定したい

    position:fixed;でメニューを右側に固定したい こちらを参考にサイドバーが固定された2カラムのサイトを作っています。 http://www.css-lecture.com/log/css/049.html 上記のサイトを見てくだされば分かると思うのですが、サイトバーはすべてを囲うwrapperボックスの左端に固定されています。 これをwrapperボックスの右端に持って行きたいのですが、うまくいきません。 position:fixed;にrightやleftを指定すると、wrapperボックスではなくブラウザの端に寄ってしまいます。 absolutoではスクロールされてしまいますし……。 自分なりに調べていろいろと試してみたのですが、解決することはできませんでした。 javascriptや疑似フレームは出来るだけ使いたくありません。 右端に持って行くことは可能なのでしょうか?現状では無理なのでしょうか? HTML <div id="wrapper"> <div id="menu"></div> <div id="main"></div> </div> CSS #wrapper{ width:700px; margin:0 auto; background-color:#FFF; position:relative; } div#menu { width: 100px; background: #CCC; padding:10px; height:100%; position:fixed; top: 0px; z-index: 20; } * html div#subContents { position: absolute; top: expression(eval(document.documentElement.scrollTop+0)); } #main{ margin-left:120px; padding:10px; width:560px; position:relative; background-color:#FFF; } よろしくお願いします。

    • ベストアンサー
    • HTML
  • IEだけで配置したボックスがずれて困っています。

    DIVでボックスを配置してレイアウトをしています。 IE以外では、問題なく中央に配置されるのに、 IEのバージョン関係なく、上のボックスがずれてしまいます。 スターハックなどを使ってもダメでした。 問題箇所を下記に明記しますので、解決策を教えてください。 宜しくお願いします。 .top p{ background-image:url(../img/basis/br.gif); background-repeat:repeat-x; width:720px; height:35px; z-index:2; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 40px; padding-bottom: 0px; padding-left: 40px; text-align: center; float: left; position: relative; border: 1px solid #0033FF; } .h2-img{ width:800px; padding:0px; margin:0px auto 0px auto; border: 1px solid #009900; background-color: #009900; } /*---メニュー類---*/ .m-bar { border: 0; padding:0; overflow:hidden; height:35px; width:720px; position:relative; margin-top: 60px; margin-bottom: 0px; margin-right: auto; margin-left: auto; text-align: left; right: 0px; float: left; display: block; background-color: #333399; }

    • 締切済み
    • CSS
  • ieとfirefoxでdiv枠に2pxのズレ

    宜しくお願い致します。 現在下記のHTMLを作成致しましたが、CSSにてfirefoxとchomeに合わせると ieではdiv枠が2px程左右にズレが生じてしまいます。ieに合わせると逆の現象が生じます。 何が原因なのか判りません。宜しくご教示下さい。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <style type="text/css"> .clear {clear:both; } .clear hr {display:none;height:0px;font-size:0pt; } #wrap {width:810px; text-align:center; margin:0px auto;} #header{font-size:70%;color:green;margin-top:5px;text-align:center;} #menu {width:200px;height:auto; float:left;margin:0;position: relative;} #goods {width:600px;height:auto; float:right;margin:0;position: relative;} #top-title { width:200px;height:70px; float:left; margin-bottom: 10px;background-color:#ffffee; border:solid 1px #336600;position: relative;} #top-menu { width:600px;height:70px; float:right; margin-bottom: 10px;background-color:#ffffee; border:solid 1px #336600;position: relative;} /* position: relative削除したり widthの値を%にしたり色々試してみましたが??? */ .col_01_l{width:295px;height:310px;position: relative; float:left; margin-bottom: 5px;background-color:#ffffee;border:solid 1px #336600;} .col_01_r{width:295px;height:310px;position: relative; float:right;margin-bottom: 5px;background-color:#ffffee;border:solid 1px #336600;} .col_05 {width:200px;height:auto; float:left; margin-bottom: 8px;background-color:#ffffee; border:solid 1px #336600;} .col_06a {width:600px;height:auto; float:right; margin-bottom: 10px;background-color:#ffffee; border:solid 1px #000000;position: relative;} </style> </head> <body> <div id="wrap"> <div id="header"> </div><!-- /header --> <div id="goods"> <div id="top-menu"> </div><!-- /top-menu --> <br style="clear:both;"> <div class="col_06a"> <br><br> </div> <br style="clear:both;"> <div class="col_01_l"> <p>ブラウザieではずれませんが、 chrome、firefoxで、この枠が 右に2pxにずれる。 どのように直せば良いか具体的にご教示下さい。</p> </div> <div class="col_01_r"> <br> </div> <br style="clear:both;"> </div><!-- /goods --> <!-- ################################################################################## --> <div id="menu"> <div id="top-title"> <br> </div> <br style="clear:both;"> <div class="col_05"> <br><br> <br><br><br><br> <br><br><br><br> <br><br><br><br> <br><br> </div><!-- /col_05 --> <br style="clear:both;"> </div><!-- /menu --> <br style="clear:both;"> <!-- ################################################################################## --> </div><!-- /wrap --> </body> </html>

    • ベストアンサー
    • CSS
  • ホームページの背景画像が表示されない。

    ホームページ作成を行っておりますが、どうしても背景画像が表示しなくて困っております。 構成としては、ものすごく単純な構成なのですが・・。 構成は図に記載させていただきました。 大枠を【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

専門家に質問してみよう