• ベストアンサー

tableタグで作るような表をCSSで作る方法

一つのページに表(横:600px、縦:155px)を20~30個くらい表示させたいのですが、tableタグを多用するとページが重くなると聞きました。 そこで、CSSを使って表を作ろうと思うのですが、どのように作れば良いのか分かりません。 ご存知でしたら教えてください。 私が作りたい表は下記になります。 XHTML 1.0 Transitional 横幅:600px 縦幅:155px 4行3列で、一番左の列の4行を繋げて(tableタグでの記述は<td rowspan="4">)一つの空間になっているのもの。 セルとセルの間隔は5pxのもの。 HTMLとCSSの記述を教えていただけると幸いです。 よろしくお願いします。

この投稿のマルチメディアは削除されているためご覧いただけません。
  • HTML
  • 回答数3
  • ありがとう数3

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

  • ベストアンサー
  • syagain
  • ベストアンサー率54% (42/77)
回答No.3

・divにボーダーをつけてセルのようにする。 ・floatで位置指定をして、表のように収める。 というやり方で考えてみました。 無理矢理収めたので、融通は利かなそうですが、 できることはできました。 **CSS .soto{ border:0px; width:600px;height:155px; padding:3px; clear:both } .hidari{ border:1px black solid; width:160px;height:155px;margin:2px; float:left; } .naka{ border:1px black solid; width:100px;height:32px;margin:3px 2px 3px; float:left; } .migi{ border:1px black solid; width:320px;height:32px;margin:3px; float:right; } **HTML <div class="soto">  <div class="hidari">左</div>  <div class="naka">中央</div>  <div class="migi">右</div>  <div class="naka">中央</div>  <div class="migi">右</div>  <div class="naka">中央</div>  <div class="migi">右</div>  <div class="naka">中央</div>  <div class="migi">右</div> </div>  細かいサイズのずれはあると思いますが、  safari,firefoxではこれで一応できました。  ただ、やはり無理に作ったものなので、  文字が多いとはみ出たりなど、  テーブルに比べて劣る点はあると思います。

zxcpoikjha
質問者

お礼

ご回答ありがとうございます。 やはりCSSで表を作成するのは大変そうですね。 CSS初心者の私には、とても考え付かないアイデアでした! 大変勉強になりました。 この度はご親切にありがとうございました。

その他の回答 (2)

noname#100277
noname#100277
回答No.2

レイアウトの為に目的外でのtable適応なら考え物ですが、本来の「表」としての使い方ならtable使用するのは構わないと思います。 特に問題は無いでしょう。 HTMLでしか出来ない事は其の侭で、細かい指定はCSSで実行すれば良いのでは?

zxcpoikjha
質問者

お礼

ご回答ありがとうございます。 tableは表の作成に使うのであれば問題ないのですね。 とても参考になりました。

  • shokodei
  • ベストアンサー率33% (2/6)
回答No.1

えーと、「表」なので、テーブルでイイと思いますけど。重くなるというほどでもないと思いますよ。 むしろ、CSSでどうにかする方が、レンダリングエンジンの負荷になったりして……。(それもないとは思うけど)

zxcpoikjha
質問者

お礼

ご回答ありがとうございます。 初心者はおとなしくtableを使っておいた方が良さそうですね。 とても参考になりました。

関連するQ&A

  • CSSで、表をデザインしたいのですが…

    CSS初心者です。 現在作っているサイトは、CSSの部分とHTMLは別ファイルになっています。 CSSで表をデザインしたいのですが、ページによって表のレイアウトが違い、パターンが5~6種類あります。 CSSでの表の設定はおおむねわかりますが、 ・1つの表にしか使わない記述を、それぞれの表の数だけいくつもいくつも書くのか? ・それだったら、HTMLの中にHTMLとして記述してもいいのでは? ・でも、CSSで書いた方がいいであろう設定をHTMLに書いて混在させるのはあまりすっきりしない… と、悩んでいます。 このようなサイトを作る場合は、普通どのようにするのでしょう? また、いくつものパターンの表の設定をするのに、一気に設定できるような方法はあるのでしょうか? 表は、○列○行といったようなごくシンプルなものばかりで、ただそれぞれが列と行の数が違うものです。 もしかしたらとんでもない考え方をしているのかもしれませんが、どうかご教示下さい。

    • ベストアンサー
    • CSS
  • CSSレイアウトの中にテーブルのような使い方でCSSを入れ子にする方法で質問です。

    テーブルを一切つかわないでサイトを作成したいと思っていて、 現在CSSで2カラムのレイアウトをしています。 困っているのが、 ページの下部に”前のページ HOME 後ろのページ” という風に横に3つならべたいと思っています。 テーブルであれば簡単にできることなのですが、 それをCSSでできないかと思っております。 そこで外部CSSに .table{ width: 10px ; background-color: #ffffff; margin: 5px; border: solid 0px ; padding: 0.5em; } と記述し、HTML部分に <p><span class="table">前のページ</span> <span class="table">HOME</span> <span class="table">後ろのページ</span></p> という風に記述してみたのですが、 文字を打っていくとどんどんよこに伸びて、横幅を指定している意味がないような感じです。 私のようなCSSの使い方をしたい場合はどのように記述すればよろしいのでしょうか?

    • ベストアンサー
    • HTML
  • cssで、1行2段のtableを記述するには?

    cssで、1行2段のtableを記述するには? → htmlのページに以下を挿入しました。 <table> <tr> <td width="2"></td> <td width="588"></td> </tr> </table> → htmlのページの<head>と</head>の間に以下を挿入しました。 <link rel="stylesheet" type="text/css" href="table.css"> → table.cssファイルを、onimotsuさんの指示に従い、以下のように記述しました。 TABLE{width : 640px;border-width : 0px 0px 0px 0px; padding-top : 0px;padding-left : 0px;padding-right : 0px; padding-bottom : 0px; background-color : #FFFFFF;} → table.cssファイルに以下を挿入するにはどうしたらいいのでしょうか? いろいろ試しましたが、うまくいきません。 <tr> <td width="2"></td> <td width="588"></td> </tr> → うまく挿入できれば、htmlのページのtableの項は次のようにすっきりとなります。 <table> </table> よろしくおねがいします。

  • tableタグを使わない表の作り方について

    tableタグを使わずに、6列1行の表を作成したいのですが、どのように すれば、出来るのでしょうか また、<td colspan="2">のように2列を結合する方法を教えて頂けないでしょうか。 宜しくお願いします

    • ベストアンサー
    • HTML
  • 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
  • DreamWeaverでテーブルをCSSにした場合にずれます。

    DreamWeaverを使い始めました。 CSSの段組左にテーブルを入れると下記のようになりました。 ----------------------- <!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=shift_jis" /> <title>無題ドキュメント</title> <style type="text/css"> <!-- #wrap { width: 500px; } #content { float: left; width: 200px; background-color: #00CCCC; } #main { width: 300px; float: left; background-color: #99FF99; } #footer { clear: both; width: auto; background-color: #CCFF66; } --> </style> </head> <body> <div id="wrap"> <div id="content"> <table width="200px" border="0" cellspacing="0" cellpadding="0"> <tr> <td>1段</td> </tr> <tr> <td>2段</td> </tr> </table> </div> <div id="main">メインメインメインメインメイン</div> <div id="footer"> 下</div> </div> </body> </html> -----↑ここまでDreamWeaver そこで、CSSでテーブルにボーダー0の値を入れて、タグからborder="0"を消すと、段組右側が左の下にずれて表示されます。 ブラウザプレビューでは正常ですが、編集しにくくて困ってます。 table { border: none; border-collapse: collapse; } DWでは、このようになるものなのでしょうか。

    • ベストアンサー
    • HTML
  • <table>の「cellpadding」と「cellspacing」のタグを、CSS2で記述する場合

    <table>の「cellpadding」と「cellspacing」という、表のセルとセルの間隔を指定できるものがありますが、CSS2ではどのように記述すればいいのでしょうか?

  • 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
  • CSSでテーブルの表示

    .table1 { border: 0px #000000 solid; } table1.s1{width: 20px; } table1.s2{width: 40px; } とcssを記述し <TABLE CLASS="table1" CLASS="s1"> ・・・ と行ってもs1,s2の項目が反映されません。 どのようにすればよいでしょうか?

    • ベストアンサー
    • HTML
  • tableタグによるエラー

    モバイルサイトの制作の際に tableタグを使用した箇所で ページスクロールをすると 意図しない場所に飛ぶことがあります。 例えばページ下部にtableタグを記述し 実機で最下部から上部へ ページスクロールするとtableタグの箇所で 最上部に飛んでしまうことがありました。 記述ミスではなくtableタグを使わないと 直りました。 モバイルサイトの制作の際、 複雑なレイアウトにする場合、tableタグが必要になります。 これはどのようなことが原因なのでしょうか。