スタイルシートで背景を伸ばしたい

このQ&Aのポイント
  • スタイルシートを使用して、背景を伸ばす方法を知りたいです。
  • ソースコード内の要素の高さを揃える方法が分かりません。
  • 背景が上下に伸びない問題を解決したいです。
回答を見る
  • ベストアンサー

スタイルシートで背景を伸ばしたい

以下のソースで、文字列のside side...の高さをmain,main...に揃えたいです。 色々試してみたのですが、side の文字のある側の背景が下まで伸びてくれません。 どうしたらよいでしょうか。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <style TYPE="text/css"> <!-- body{ font-size: 10pt; text-align: center; } #container { width: 752px; border-left: 1px solid #599E3D; border-right: 1px solid #599E3D; } #main { float: right; width: 570px; background: #FFFFFF; } #side { float: left; width: 180px; background: #E0FFFF; border-right: 1px solid #F2992F; } --> </style> </head> <body> <div id="container"> <div id="main"> main<br> main<br> main<br> main<br> main<br> </div> <div id="side"> side<br> side<br> side<br> </div> </div> </body> </html>

  • HTML
  • 回答数1
  • ありがとう数1

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

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

#containerに「752px(横)×1px(縦)」の背景画像を指定してrepeat-yにしてみてください。 #container { width: 752px; background: #FFFFFF url(/img/img_bk_01.gif) repeat-y top; } で、#sideの指定は削除。 #side { float: left; width: 180px; } どうですか。

kurin2007
質問者

お礼

できました! とても助かりました。 ありがとうございました。

関連するQ&A

  • floatを突き抜けて背景の色が無くなる

    Firefox等ではタイトルの高さ分だけコンテナを突き抜けてしまうようです。 どうすればよいのでしょうか? タイトルがあるのと、表は画面いっぱいにしたい(高さ100%)という意図があり中々うまくいきません。 是非アドバイス宜しくお願い致します。 <html> <head> <style type="text/css"> html, body{ height: 100%; } #container { height: 100%; color: #000000; background-color: #cccccc; border: 1px solid #333333; } #container:after { content: ""; display: block; clear: both; height: 1px; overflow: hidden; } #title { width: 100%; height: 70px; float: left; border: 1px solid #000000; } .leftBox { width: 20%; float: left; border: 1px solid #000000; } .rightBox { width: 75%; height: 100%; float: right; border: 1px solid #000000; } </style> </head> <body> <div id="container"> <div id="title">タイトル</div> <div class="leftBox"> ナビ<br> a<br> b<br> c<br> d<br> e<br> f<br> g<br> h<br> i<br> j<br> k<br> l<br> m<br> n<br> o<br> p<br> q<br> r<br> s<br> t<br> u<br> v<br> w<br> x<br> y<br> z<br> </div> <div class="rightBox"> <table height="100%" width="100%" border="1"> <tr> <td>表1</td> <td>表2</td> </tr> <tr> <td>表3</td> <td>表4</td> </tr> </table> </div> </div> </body> </html>

    • 締切済み
    • CSS
  • スタイルシートでのレイアウトについて

    スタイルシートでレイアウトしたく、フリーのテンプレートからソースをもってきました。  -HTML- <div id="outline"> <div class="main"> メイン上部コンテンツ部分 </div><!-- end main --> <div class="side"> サイド上部メニュー部分 </div><!-- end side --> <br class="c-both"> <div class="main"> メイン下部コンテンツ部分 </div><!-- end main --> <div class="side"> サイド下部メニュー部分 </div><!-- end side --> <br class="c-both"> <div class="footer"> フッター部分 </div><!-- end footer --> </div><!-- end outline -->  -CSS- #outline{ width : 750px ; text-align : left ; border : solid 1px #000000 ; } .main { width : 200px ; background : #ebebeb ; margin-bottom : 10px ; float : left ; } .side { width : 540px ; background : #ebebeb ; margin-bottom : 10px ; float : right ; } .c-both { clear : both ; } .footer{ width : 100% ; background : #ebebeb ; } そこで、"上部コンテンツ部分"と"下部コンテンツ部分"の高さを、それぞれ違う高さにしたいのですが、どうしたら良いでしょうか? あと、メイン上部コンテンツ部分・サイド上部メニュー部分、メイン下部コンテンツ部分・サイド下部メニュー部分の下に、同じように行を追加したいのですが、どうしたら良いでしょうか? スタイルシートの段組みで、非常に困っています。 助けて下さいm(_ _)m

  • float & clear

    質問の概要は以下の通りです。 CSSを使用しています。 可変長な画面を作成する際に、サイドバーを「float:left」で配置して「margin-left」でメイン画面を配置します。 さらに、メイン画面の中で「float:left」と「margin-left」を使って左と右に分けます。 このとき、メイン画面の中で、回り込みを防ぐために「clear:left」を使用します。 ところが、この「clear:left」がサイドバーの長さに影響されてしまい、おかしな空白ができてしまいます。 これを防ぐ方法はありますか? もしくは、全体的に構造がおかしいならば、ご指摘ください。 すべてのソースをコピーするのは大変なので、主要な部分だけを以下に載せます。 <html> <head> <meta http-equiv="content-style-type" content="text/css"> <style type="text/css"> <!-- body{ margin:0; } #header{ border:1px #000000 solid; } #side{ margin:10px; float:left; width:200px; border:1px #000000 solid; } #infomation{ margin:10px 10px 10px 230px; border:1px #000000 solid; } #main{ margin:10px 10px 10px 230px; border:1px #000000 solid; } #main-left{ float:left; margin:10px; width:250px; border:1px #000000 solid; } #main-right{ margin:10px 10px 10px 280px; border:1px #000000 solid; } #footer{ clear:left; border:1px #000000 solid; } .clear{ clear:left; } --!> </style> </head> <body> <div id="header"> title </div> <div id="side"> sidebar<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> </div> <div id="infomation"> infomation </div> <div id="main"> main <div id="main-left"> main-left<br><br><br><br><br> </div> <div id="main-right"> main-right<br><br><br><br><br><br><br> </div> <div class="clear">clear</div> <div id="main-left"> main-left<br><br><br><br><br> </div> <div id="main-right"> main-right<br><br><br> </div> <div class="clear">clear</div> </div> <div id="footer">footer</div> </body> </html> 他にもいろいろ疑問点があり、「margin-left」ではなく「float:left」を2つ使用して左右の画面を表示した場合、通常は左右に分かれるのですが、右の画面の文章が長い場合に、右画面が左画面の下に移動してしまいます。 これを現象を防ぐ方法はありませんか? 全体の横幅を固定すればできるんでしょうが、可変長の場合にうまくいきません。

  • CSSでテーブル状にレイアウトしたが,背景色の範囲が意図と異なる.

    cssを使って3列のテーブル状のレイアウトを作成しています. 外部cssファイルにてbackground-colorを記述して 背景色を3列それぞれにつけているのですが,行数の 違いによって背景色の付く範囲がそれぞれの列で 変わってしまっています. (下のソースでいうと,111...は3行分の背景色が付きますが, 他の222...と333...は1行分の背景色しかつきませんが, 222...と333...の部分も背景色は3行分つけたいのです.) 原因は文字数の違いにより行数が異なるためと思いますが, これを解決する方法はありますか? 【html記述】 <div id="table"> <div id="table_left"> 111111<br> 111111<br> 111111<br> </div> <div id="table_center"> 222222 </div> <div id="table_right"> 333333 </div> <BR class="clears"> </div> 【css記述】 #table { width:700px; margin:0px auto 0px; border-style:solid; border-color:#999; border-width:1px; } #table_left { width:64px; background-color:#e5ded7; color:#80655e; padding:8px; float:left; } #table_center { width:294px; padding:8px; float:left; } #table_right { width:294px; background-color:#edf8b1; background-repeat:repeat; padding:8px; color:#3d6e14; float:right; }

    • 締切済み
    • CSS
  • div#left {width:50%;

    div#left {width:50%; float:left; border:1px solid black;} div#right {width:30%; border:1px solid red;} がfloatされません。なぜでしょうか? <html> <head> <title>a</title> <style type="text/css"> <!-- div#left {width:50%; float:left; border:1px solid black;} div#right {width:30%; border:1px solid red;} --> </style> </head> <body> <div id="left"> left </div> <div id="right"> right </div> </body> </html> これでなぜならないのでしょうか?

  • ホームページビルダーでスタイルシートを使ったのですが?

    今、ホームページビルダーで簡単な2カラム(右メニュー)のテンプレートを作っています。 質問ですが、メニューバー(サイドバー)に色を付けたくて、画像を使う事にしました。 <div class="main">に画像(background.gif)を入れ属性で繰り返す(垂直方向)にチェックをいれたのですが、IEやfirefoxでプレビューでは反映されていないです。 色々いじってみたのですがどうしても解りません。どこが間違っているのか教えていただけないでしょうか? よろしくお願いします。 HTML <body> <div class="box"> <div class="header"> <span class="site_name">ここにサイト名を入れる</span> <h1>ここにh1</h1> <div class="description_1">ここに簡単な説明文</div> </div> <div class="main"> <div class="contents">コンテンツ部分<br /> </div> <div class="menu"> メニュー部分 </div> </div> <div class="footer"> フッター部分 </div> </div> </body> スタイルシート * { margin:0; padding:0; } .box{ width : 750px; margin: 0 auto; border-left-width : 1px; border-left-style : solid; border-left-color : black; border-right-width : 1px; border-right-style : solid; border-right-color : black; border-bottom-width : 1px; border-bottom-style : solid; border-bottom-color : black; } .header { width : 726px; height : 96px; background-color : #b9b9ff; padding-top : 12px; padding-left : 12px; padding-right : 12px; padding-bottom : 12px; border-bottom-width : 2px; border-bottom-style : solid; border-bottom-color : black; } .main { width : 750px; background-image : url(file:///C:/Documents and Settings/※※※/img/background.gif); background-repeat : repeat-y; background-position : 0px 0px; margin-top : 0px; margin-bottom : 0px; margin-left : auto; margin-right : auto; background-color : #ffffff; } .menu { float: left; width : 180px; padding-top : 10px; padding-left : 10px; padding-right : 10px; padding-bottom : 10px; margin-left : auto; margin-right : auto; } .contents { float: left; width : 526px; padding-top : 12px; padding-left : 12px; padding-right : 12px; padding-bottom : 12px; } .footer { clear: both; width : 726px; height : 26px; background-color : #b9b9ff; padding-top : 12px; padding-left : 12px; padding-right : 12px; padding-bottom : 12px; text-align : center; } .menu ul { list-style: none; } .site_name{ font-size : 21px; font-weight : bold; margin-left : 12px; } h1{ font-size : 15px; margin-top : 12px; margin-left : 24px; } .description_1{ font-size : 12px; font-weight : normal; margin-left : 24px; }

  • HTMLのCSS(float)の設定がよくわかりません

    HTMLのCSS(float)の設定がよくわかりません 画像のように各配置はうまく表示されているのですが footerのCSSを #footer { width: 100%; float: left; clear: both; } と表記するとwrapperのCSSで表記した外枠のボーダーが footerの前で切、footerの左横に1px~2pxの隙間が できてしまうのですが、その理由をわかる方いらっしゃいますか。 宜しくお願い致します。 footerの表記を #footer { width: 100%; clear: both; } とすると、ボーダーも1pxの隙間もなく正常に表示されます。 宜しくお願い致します。 ■HTML <html> <body> <div id="wrapper"> <div id="header"></div> <div id="container"> <div id="left"></div> <div id="right"></div> </div> <div id="footer"></div> </div> </body> </html> ■CSS #wrapper { width: 700px; border-right-width: 1px; border-left-width: 1px; border-right-style: solid; border-left-style: solid; border-right-color: #000; border-left-color: #000; } #container { overflow: hidden; } #left { float: left; } #right { float: left; } #footer { width: 100%; float: left; clear: both; } わかる方いらっしゃいましたら 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • floatをfooterに指定すると正しく表示ができない。

    floatをfooterに指定すると正しく表示ができない。 画像の(3)のようにfooterにfloat:leftを指定しなければ綺麗に表示されるのは分かります。ところが、画像の(1)や(2)のように、footerにfloat:left;を指定して、次の行で<div style="clear:left"></div>と指定して、footerにfloat:leftを指定しなかったのと同様の処理をすると、(1)や(2)のようにwidthに対して様々な現象が起きてしまいます。 (1)はwidthを指定しない場合、width:auto;を指定した場合に見られ、(2)はwidth:100%;とした場合にwrapperよりはみ出すという現象が起きます。なぜ、floatを指定しないのと指定後解除するのとで同様の結果が得られずに違った結果になるのでしょうか?わかる方いらっしゃいましたら回答宜しくお願い致します。 以下はソースでそのままエディタに貼り付けると表示できます。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>サンプル</title> <style type="text/css"> <!-- /* default.css */ #container { background:red; border:10px solid fuchsia; padding:10px; } #left { float: left; width: 200px; height:100px; background:yellow; } #right { float: left; border:5px #000 solid; width: 200px; height:200px; background:black; color:#FFF; } #footer { float: left; height:200px; background:blue; border:5px #000 solid; color:#FFF; } --> </style> </head> <body> <div id="wrapper">WRAPPER <div id="header">HEADER</div> <div id="container">CONTAINER <div id="left">LEFT </div> <div id="right">RIGHT </div> <br style="clear:left"/> </div> <div id="footer">FOOTER </div> <div style="clear:left"></div> </div> </body> </html>

    • ベストアンサー
    • HTML
  • ブログを3カラム右右から左右両サイドにしたい。

    現在CSSは下記のようになっています。 どこをいじれば右右から左右両サイドにできるのか教えていただけたら嬉しいです。 宜しくお願い致します。 /** 03. Layout - レイアウトの設定 */ /* ----------------------------------------------- */ body { margin: 0; padding: 0; min-width: 960px; text-align: center; background-image: none; background-repeat: repeat; background-position: 50% top; } div#containerWrap { width: 960px; margin: 0 auto 5px; } div#container {} div#content { padding: 10px 0; border-width: 1px; border-style: solid; } div#main , div#sub , div#extra { overflow: hidden; } div#main { float: left; display: inline; width: 538px; } div#main div.column-inner { padding: 0 10px 10px; } div#sub { float: left; display: inline; width: 210px; } div#sub div.column-inner { padding: 5px 10px 0; overflow: hidden; border-width: 1px; border-style: none none none solid; } div#extra { float: left; display: inline; width: 210px; } div#extra div.column-inner { padding: 5px 10px 20px; overflow: hidden; border-width: 1px; border-style: none none none solid; }

    • ベストアンサー
    • HTML
  • 背景色が表示されない><

    下記のように設定していますが、背景色が表示されません。 解決方はありますでしょうか? 【html】 <div id="header"> <div id="h_contents"> <div id="h_left_pr"> dddx </div><!-- h_left_pr --> <div id="h_wrapper"> <div id="right_top_area"> テキストリンクエリア </div><!-- right_top_area --> <div id="h_main_box"> <div id="h_main_left"> ロゴエリア </div><!-- h_main_left --> <div id="h_main_right"> <div id="h_search_area"> サーチエリア </div><!-- h_search_area --> <div id="h_map_area"> マップエリア </div><!-- h_map_area --> </div><!-- h_main_right --> </div><!-- h_main_box --> </div><!-- h_wrapper --> </div><!-- h_contents --> <div style="clear:both "></div> </div><!-- header --> 【css】 #header{ width:100%; background-color:black; } #h_contents{ width:1240px; margin:0 auto; } #h_left_pr{ float:left; width:120px; background-color:red; } #h_wrapper{ float:right; width:1000px; margin:0 120px 0 0; padding:0; background-color:blue; } #h_wrapper{ >margin:0 60px 0 0; } #right_top_area{ clear:both; float:right; background-color:green; width:350px; } #h_main_box{ clear:both; background-color:yellow; } #h_main_left{ float:left; width:200px; background-color:purple; } #h_main_right{ float:right; width:800px; background-color:orange; } #h_search_area{ clear:both; float:left; width:500px; background-color:gray; } #h_map_area{ float:right; width:300px; background-color:darkblue; }

    • ベストアンサー
    • HTML