• ベストアンサー

HTML:区画のレイアウトについて

HTMLで区画のレイアウトをするとき、通常基本的なものから複雑なものまで、<table>や<div>を使うのが一般的なんでしょうか? 下の図は、■が境界線で、□が画像や文章を配置する区画です。 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ■□□□□■□□□□□□□□□□□□□□□□□□□■□□□□□■ ■□□□□■□□□□□□□□□□□□□□□□□□□■□□□□□■ ■□□□□■□□□□□□□□□□□□□□□□□□□■□□□□□■ ■□□□□■□□□□□□□□□□□□□□□□□□□■□□□□□■ ■□□□□■□□□□□□□□□□□□□□□□□□□■□□□□□■ ■□□□□■□□□□□□□□□□□□□□□□□□□■□□□□□■ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□□□■□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□□□■□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□□□■□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□□□■□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 回答よろしくお願いします。

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

  • ベストアンサー
  • leap_day
  • ベストアンサー率60% (338/561)
回答No.1

こんにちは <table>は表内を読み込んでから表示されるのであまりレイアウト用には使わないほうがいいと思います <style type="text/css"><!-- .float { float:left; } #main { width:806px; } #head { width:804px; height:50px; } #midleft { width:200px; height:200px; } #midcenter { width:400px; height:200px; } #midright { width:200px; height:200px; } #btmleft { width:502px; height: 100px; } #btmright { width:300px; height:100px; } div { border:1px solid; } --></style> <div id="main"> <div id="head">上部</div> <div id="midleft" class="float">中部左</div> <div id="midcenter" class="float">中部中</div> <div id="midright" class="float">中部右</div> <div style="clear:both;"></div> <div id="btmleft" class="float">下部左</div> <div id="btmright" class="float">下部右</div> <div style="clear:both;"></div> </div> ※width 必要です。全体、上部、中部、下部のwidth合計は一致させてください 『全体』 #main 806px 『上部』 #head 804px #head border 1px*2 合計 806px 『中部』 #midleft 200px #midcenter 400px #midright 200px それぞれのborder (1px*2) *3 合計 806px 『下部』 #btmleft 502px #btmright 300px それぞれのborder (1px*2) *2 合計 806px という風に(それぞれのdiv内でそのdivのwidthを超えるwidthを設定すると幅が広がりレイアウトが崩れますので注意して下さい) ※height 便宜上つけてます。必要なければ省略してください ※div { border:1px solid; } コンテンツ内に別に<div>があるときにはそちらにもborderがつくので #***それぞれのCSSに付け加える もしくは <div id="head">にもclass="float"をつけて .float{ }内に付け加えてください この際には上部と中部左の間に<div style="clear:both"></div>も付け加えるか <div style="clear:both"></div>(中部右と下部左の間)を削除して#midleft、#btmleftを class="float2" などのようにして .float2 { clear:both; float:left; border:1px solid; } にする手もあります

miya_HN
質問者

お礼

なるほど。<div>がいいんですね。<table>は、読み込むのに時間がかかるということでしょうか。 スタイルシートの例を書いていただきありがとうございます。 参考にさせていただきます。 ありがとうございました。

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

その他の回答 (1)

  • kazumero
  • ベストアンサー率40% (20/49)
回答No.2

tableは表作成用のタグなので、レイアウトはdivを用います。 参考URLを参考にしてみてください。

参考URL:
http://desperadoes.biz/style/dan/index.php
miya_HN
質問者

お礼

やはり<table>ではなく、<div>を使うんですね。 参考にさせていただきます。 ありがとうございました。

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

関連するQ&A

  • CSS:区画のレイアウト1

    現在、CSSの練習中なんですが、 http://kokoro.es.land.to/HTML/Rensyuu.html 上記のURLで、最終的にURL内の下の図(CSSによる区画のレイアウト)のようなレイアウトにしたいのですが、Kukaku4_3(class名、色:red)のところで画面のあるとおり、Kukaku4_2(class名、色:navy)から下の方に範囲が伸びてしまい、うまくいきません。ほかにもいろいろ試したのですが、URL内の下の図(CSSによる区画のレイアウト)のようにするにはどうすればよいでしょうか? 回答よろしくお願いします。 div { float: left;} div.Kukaku1 { background-color:blue; width: 900px; height: 179px } div.Kukaku2_1 { background-color:green; width: 300px; height: 20px } div.Kukaku2_2 { background-color:aqua; width: 300px; height: 20px } div.Kukaku2_3 { background-color:gray; width: 300px; height: 20px } div.Kukaku3_1 { background-color: black; width: 250px; height: 300px; } div.Kukaku3_2 { background-color: fuchsia; width: 650px; height: 150px } div.Kukaku3_3 { background-color: lime; width: 650px; height: 150px } div.Kukaku4_1 { background-color: maroon; width: 500px; height: 80px } div.Kukaku4_2 { background-color: navy; width: 500px; height: 70px } div.Kukaku4_3 { background-color: red; width: 400px; height: 150px }

    • ベストアンサー
    • HTML
  • CSSで高さ100%のレイアウト

    テーブルを使用せずCSSでのレイアウトなのですが フッター位置をブラウザの一番下にマージン無しで指定したいのですが出来ません。 テーブルでは <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top">内容</td> </tr> <tr> <td valign="bottom">フッター</td> </tr> </table> というように指定していたのですが CSSでのレイアウトはHTMLを <div id="container"> <div class="content">内容</div> <div id="footer">フッター</div> </div> .CSS では #container { height: 100%; } は無効なのでしょうか? 他のやり方でもフッターをブラウザの一番下にマージン無しでレイアウトできる方法があったら教えて下さい。

    • ベストアンサー
    • CSS
  • HTMLのレイアウト表示拡張機能

    HTMLのレイアウト表示拡張機能 クロームかfirefoxのアドオンで下の方にHTMLのレイアウト分解図を表示する機能があったと思うのですが、それは何だったでしょうか? ご検討つく方、よろしくお願いします。

  • HTMLのことで・・・・・・・・。

    さきほども質問したのですが、少々説明不足だったので、もう一度質問したいと、思います。。。;;; この下は、今の私のソースです; ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー <Html> <Head> <Title>~</Title> </Head> <Body> </div> このバナー <!-- content end --> <!-- topleft --> <div id="left"> <a href="#"><img src="ban_seitokai.jpg" width="200" height="60" alt="生徒会の一存"></a> <br> <a href="#"><img src="bn_key.gif" width="200" height="60" alt="key"></a> <a href="#"><img src="" width="" height="" alt=""></a> <a href="#"><img src="" width="" height="" alt=""></a> </div> <div id="right"> <div align="center"><h1>タイトル</h1></div> <p>文章</p> </div> </div> <!-- topleft end --> </div> <!-- maincontent end --> </Body> </Html> ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー この画像の上の図が↑のソースです。 下の図は、『こうしたい』という図です。 画像の隣に文章を表示させたいのですが、どうすればなりますか? できれば、わかりやすく、例や見本を書いてくれますと助かります;

  • テーブル(HTML)と画像のレイアウトについて

    WEB画面のレイアウトについて質問があります。 HTMLのtableタグを使ってその中のtdタグにimgタグで画像をセットすると 高さ(height)に微妙な間ができてしまいます。 この現象を回避するにはどうすればよいでしょうか? ↓HTMLソース <table> <tr> <td><img src="GIF画像" alt="XXX" width="755" height="26"></td> </tr> </tabld> ※heightが指定値より若干高くなる どなたか良い回避策をご存知でしたらご教示下さい。 お願いします。

  • 3カラムのレイアウト、及びdivの入れ子等

    初めまして。 とても基本的なことでお恥ずかしいのですが、 3カラムのレイアウト、及びdivの入れ子等について、行き詰ってしまいました。 どうぞ宜しくお願い致します。 下記のように、3カラムの段組みレイアウトを行いました。 左・右のナビゲーションに、width:150pxで幅指定し、それぞれleft・rightにfloat、 中心部分(#contents)は、左右ナビゲーション分のマージンを設定して、真ん中に配置させる方法です。 HTMLでは、可変?させたい真ん中部分は、ナビゲーションの後に記述すること、とのことでしたので、そのように致しました。 <CSS> #contents { margin-left:155px; margin-right:155px; } #left { float:left; width:150px; } #right { float:right; width:150px; } <HTML> <div id="left>あああああああ</div> <div id="right">いいいいいいい</div> <div id="contents">ううううううう</div> ここまでは、問題なく配置させられたのですが、 【#contents】の中に、<div>や<ul>などを使用すると、画像(http://blog.goo.ne.jp/ray-chimin)のような現象が起きます。 ちなみに、【#left】のheightを長く伸ばすと、IEではキレイに並びましたが、firefox等では、やはり崩れます。 と言いましても、それは実験的に行った結果で、【#left】のheightを無駄に長く伸ばすことは避けたいです…(;ω;) そもそも、【#contents】の中の、「中身の並べ方」の考え方に問題があるのでしょうか…? 可能な限りシンプルに、 正しいCSSの使い方でレイアウトしたいと考えております…!(>_<) divの不必要な多用? (ひとつひとつの画像をdivの中に入れたり、 横並びのミニバナーを、divの中にdivを入れて…のような入れ子構造) は避けたいと思っておりましたが、 もしかして、それがいちばん正しいのでしょうか…? ご存じの方、どうぞご指南の程宜しくお願い致します! 散文、失礼いたしました!

    • ベストアンサー
    • HTML
  • HTML CSSを、教えてください。

    お世話になります。 HTMLを始めたばかりで、 超初心者ですので、ご教授いただけたらと思います。 以下の図のような感じに並べたいです。 バックグラウンドには、青色。 赤と緑の部分は、画像配置、 また、右の緑の画像の上に, オレンジのボタン配置を行いたいのです。 ただ、オレンジのボタン配置の仕方が、 なかなか出来ずにいます。 以下のHTMLとCSSには、 オレンジのボタンを入れずに、まず配置をしてみましたが…。 ただ、やはり右の緑の画像が、崩れてしまう感じも…。 オレンジのボタンを入れていただいた形で、 お願いできないでしょうか? (オレンジ画像 width=100 height=50 でお願いします。) 【 HTML 】 <div class="Red"><img src="img/Red.png" width="300" height="50" /> <div class="contents"> <div class="Color_Box"> <div class="Green01"><img src="img/Green01.png" width="200" height="100" /> </div> <div class="Green02"><img src="img/Green02.png" width="200" height="100" /> </div> </div> </div> </div> 【 CSS 】 div.Red{ background:url(img/Bule.png) 0 100% repeat-x; height:200px; margin-top:45px; text-align:center; } div.Color_box{ width:450px; height:100px; } div.Green01{ width:200px; padding-right:50px; float:left; } div.Green02{ width:200px; float:left; }

    • 締切済み
    • CSS
  • IE8でサイドバーのレイアウトが崩れる場合の対処法

    CSSについての質問です。 IE8よりも古いバージョンでのみレイアウトが崩れて困っています。 簡単な抜粋ですが、以下のような感じでfloatを使ってレイアウトを作成しています。 [HTML] ---------------- <div id="main"> </div> <div id="sidebar"> </div> <div id="footer"> </div> ---------------- [CSS] ---------------- #main{ float:left; width:620px; } #sidebar{ float:right; width:300px; } #footer{ clear:both; } ---------------- IE8よりも古いバージョンでは、サイドバーが下に落ちてレイアウトが崩れてしまいます。 しかもIEの開発ツールでHTMLを確認したところ、なぜかサイドバーがメインコンテンツの中に入っていました。 ---------------- <div id="main"> <div id="sidebar"> </div> </div> ---------------- なので、全体の幅を広げても、下に落ちてしまったサイドバーは全く上がってきてくれません。 どうにか解決する方法はありませんでしょうか? 文章だと伝わりくいかもしれませんが、よろしくお願いいたします。

    • ベストアンサー
    • CSS
  • HTMLの画像の位置の指定

    HTMLで、画像の位置などを決めるときに、<div align="center"></div>などを使いますが、CSSやジャバスクリプトで使用している、 position:absolute; 絶対配置 position:relative; 相対配置 position:static; 通常配置(指定しない場合はこれ) position:fixed; 上のようなポジションタグを使う事は可能ですか? できれば、そのサンプルのようなものを書いてもらえると 助かります。

    • ベストアンサー
    • HTML
  • htmlのtableレイアウトについて

    こんばんは。訳あってcssとテーブルの両方のレイアウト手法を用いた サイト作りをしています。準初心者です。 昔から受け継がれてきたサークルのサイトの更新担当をしているのですが、 テーブルレイアウトとcssレイアウトがごちゃまぜで、わけの分からないスペーサーgifなど も多用されていたりと、悲惨な有様なので、必死に修復しているところです。 テーブルレイアウトとで組まれていても、今回は抜本的な対策は留保するつもりで書いていた のですが、ある問題に突き当たりました。 divタグ内のtableタグによって作られた1×1の表ボックスが更新情報欄になっていて、 ページの左端に隙間無くくっついているようなレイアウトにしようと試みました。 <TABLE style=" border:0px;padding:0px;margin:0px;・・とするとdivのブロック要素と テーブルが完全にくっついた状態にできると思い実践してみたのですが、どうしても何pxかの隙間が生じてしまうのです。試行錯誤の末、もとのソースコードではtable要素にhtmlでwidth="400" と指定されていたものをtableタグ内に <TABLE style=" border:0px;padding:0px;margin:0px;  width:400px;> と指定し直した結果、計らずしもこの隙間は無くなりました。 そこで疑問なのですが、なぜこのような結果になったのでしょうか、ご教授ください!

    • 締切済み
    • CSS
このQ&Aのポイント
  • EP-714Aを使用してExcelの図形で作成した画像の色が印刷されない
  • EP-714Aを使用して作成した画像の色が印刷されず、全く違ったイメージの色になってしまいます
  • EP-714Aを使ってExcelで作成した図形の色が印刷されない問題が発生しています
回答を見る