• ベストアンサー

CCSを使ってTABLEタグをやめたい。

初心者です。 よろしくお願い致します。 現在 <table width="99%"> <tr> <td width="85"></td> <td></td> <td width="80"></td> <td width="70"></td> <td width="70"></td> </tr> </table> のテーブルタグを外しCSSで同じように再現できないか苦戦しています。 自分なりに #table {width: 99%; } #A{ width: 85; float: left; } #B{ float: left; } #C{ width: 80; float: left; } #D{ width: 70; float: left; } #E{ width: 70; float: left; } として <div id="table"> <div id="A"></div> <div id="B"></div> <div id="C"></div> <div id="D"></div> <div id="E"></div> </div> としてみたのですが、いまくいきません。もしご存知の方がいましたら是非教えてください。 よろしくお願いいたします。

  • melll
  • お礼率50% (114/227)
  • HTML
  • 回答数4
  • ありがとう数3

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

  • ベストアンサー
noname#20378
noname#20378
回答No.4

あ、言おうかどうしようか悩んでたら#1の人に言われてしまいました。解りやすい解説ページを探そうかと思ったのですが見つからず。 一応参考になりそうな質問を。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1089695 >なぜCSSが推奨されているのかという 本質・目的の部分をもっと勉強してみてください。 HTMLとデザインを切り離し、HTMLの 文章構造の論理性・汎用性を確保するためです。 <div>を多用しては、文章構造が何にも論理的になりません。 中でもnoname#8841さんのこの言葉が本質をついているように思います

melll
質問者

お礼

ありがとうございました。 確かに<div>を使えばなんて考えていました。 使わずやっていきます。

その他の回答 (3)

noname#19206
noname#19206
回答No.3

全体のレイアウトにテーブルを使うことは、見方次第で望ましくないことといえるかもしれませんが、 テーブルを使うことそのものが望ましくないというわけではありません。 例えば複雑なリストなどを作るために表を使うのは一般的なことですし、 これを無理にCSSで代用しようとしてもCSSが無効の環境でリストが崩れてしまうだけです。 (ただの箇条書きであればリストタグという方法もありますが、 関係ないのでこの場合は論外としておきます。) もしテーブルタグを使用することに問題があるとするならば、 それは代用が利く場所でテーブルタグを使用することであり、 テーブルタグそのものを使用することに問題があるわけはありません。

melll
質問者

お礼

>テーブルタグそのものを使用することに問題があるわけはありません。 そうですよね、すこし考え方を変えたいと思います。 ありがとうございました。

noname#20378
noname#20378
回答No.2

HTML4.01邦訳-属性一覧によると http://www.asahi-net.or.jp/~SD5A-UCD/rec-html401j/index/attributes.html.ja.sjis tdのwidth属性は%Length;を取ります。 <!ENTITY % Length "CDATA" -- nn for pixels or nn% for percentage length --> DTDのコメントによると、ピクセル指定をしたいときは【数字】...【つまり40はOKだけど40pxは駄目】 CSS2-邦訳:Widthプロパティ http://www.y-adagio.com/public/standards/tr_css2/visudet.html#propdef-width Length: http://www.y-adagio.com/public/standards/tr_css2/syndata.html#value-def-length <length>によって表示される長さの値のフォーマットは,オプションの符号文字('+'又は'-'だが,'+'がデフォルト)の直後に,10進小数点をもつ又はもたない<number>が続き,【その直後にpx,degなど単位識別子が続くものとする。】'0'の長さの後では,単位識別子はオプションとする。 なので【0でないときはpx等の単位をつける必要があります】

noname#127257
noname#127257
回答No.1

回答でなくて申し訳ないのですが、なぜtableをやめたいのでしょうか? そこまで複雑な事をするならむしろ、tableタグの方が向いているように思います。 「table=悪」ではないので、テーブルを丸々divに置き換えるだけなら、脱tableの意味があまりないように思います。 tableに対してCSSを適用というのもアリかと思います。 もう少し、どのような表示結果を得たいのか、どうしてdivを使おうとしているのかを補足いただけないでしょうか。

melll
質問者

お礼

ありがとうございました。 データベースからリストを出しているのですが、<div>を使った方が軽いかと思って苦戦していました。 「table=悪」だと思っていただけに良い指摘を頂きました。

関連するQ&A

  • 初心者です。floatでレイアウトしてるのですが、縦線とテーブルの間を広げる方法がわかりません

    floatでレイアウトしてるのですが、縦線とテーブルの間を広げる方法がわかりません メニューとコンテンツが縦線で区切られてるのですが右側のテーブルと縦線が合体してしまいます。 縦線とテーブルの間に少し隙間を作りたいのですが、どうすればいいでしょうか? HTMLとCSSを書いておきます。よろしくお願いします。 ・HTML <div id="contents"> <table> <tr> <td>×</td><td><p>あああ</p> </tr> <tr> <td>○</td><td><p>いいい</p> </tr> <tr> <td>■</td><td><p>ううう</p> </tr> </table> <br><br> a </div> <div id="left-menu"> <ul> <li><a href="index.html" class="a8">メニュー</a></li> <li><a href="league.html" class="a8">メニュー</a></li> </ul> </div> <div id="footer"> ああああああ </div> ・CSS body { width: 900px; } #contents { float: right; width: 740px; border-left: 1px solid #999;} #left-menu { float: left; width: 150px;} #footer { clear: both; }

  • liタグ中の二つのTABLEの間を埋めたい

    お世話になります。 現在二つのテーブルタグを埋めたくて、思考錯誤中です。 普通にTABLEタグを利用すると、二つのテーブルは隙間なく埋まります。 これをliタグに持っていくと、隙間が発生しております。 これを埋める方法はありませんでしょうか? 何卒よろしくお願いします。 (ちなみに私の環境はIE6です。) <!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> <title></title> </head> <body style="background-color:Black;"> <div> <table> <tr> <td> <table style="background-color: Red;"> <tr> <td> a </td> </tr> </table> <table style="background-color: Red;"> <tr> <td> b </td> </tr> </table> </td> </tr> </table> </div> <ul> <li style="text-align: left; vertical-align: middle;"> <table style="background-color: Yellow;"> <tr> <td> a </td> </tr> </table> <table style="background-color: Yellow;"> <tr> <td> b </td> </tr> </table> </li> </ul> </body> </html>

    • ベストアンサー
    • HTML
  • 【CSS】floatで左右に並べた<div>のマージンが効かない。

    CSS(スタイルシート)においてfloatで2つのdivを左右に並べる方法は定番ですが、<div id="A">に設定したマージンが【firefox】でききません。 おそらく基礎的なことと思われますが、検索の仕方が悪いのか、 該当する質問を探し出すことが出来ませんでしたので、質問させていただきました。 どなたか、教えていただければと思います。 【HTML】--------------------------------- <div id="A">   <div class="B">    <h3>テキスト</h3>    <p>タイトル</p>    <table>     <tr>      <th scope="col">テキスト</th>      <td>テキスト </td>     </tr>     <tr>      <th scope="col">テキスト</th>      <td>テキスト</td>     </tr>    </table>   </div>   <div class="C" >    <h3>テキスト</h3>    <p>タイトル</p>    <table>     <tr>      <th scope="col">テキスト</th>      <td>テキスト </td>     </tr>     <tr>      <th scope="col">テキスト</th>      <td>テキスト</td>     </tr>    </table>   </div> </div> 【CSS】--------------------------------- #A {     margin-bottom:10px } #A h3{ background:url(../images/bg_h3_option_half.gif) no-repeat; width:380px; height:31px; padding:0 0 0 15px; margin:10px 0 0 0; overflow:hidden; font-size: 22px; color:#FFFFFF; font-style:normal; } #A div.B { float:left; width:380px; height: 100%; margin-right:20px; } #A div.C { float:left; width:380px; height: 100%; }

    • ベストアンサー
    • HTML
  • TABLEタグの幅指定

    テーブルの幅を厳密に指定したいのですが、 例えば以下のような1行2列のテーブルがあるとき、 <TABLE CELLSPACING=1 CELLPADDING=4 BORDER=0> <TR> <TD WIDTH=100>***</TD> <TD WIDTH=100>***</TD> </TR> </TABLE> このような場合にテーブルタグにWIDTH属性を加えるとすると、 100*2+4*4+1*3=219で、WIDTH=219が正確な値なのでしょうか? よろしくお願いします。

  • tableタグについて

    <table width="700" border="0"> <tr><td width="700">あああああああ</td></tr> <tr><td width="200">いい</td><td width="500">ううううう</td></tr> </table> このタグですと【ああああああ】の部分が2段になります。 多分<td width="200">のためやと思うのですが、 <tr><td width="200">いい</td><td width="500">ううううう</td></tr> の部分を <tr><td width="700"><table width="700"><tr><td width="200">いい</td><td width="500">ううううう</td></tr></table></td></tr> にすると表示されます。 この方法以外にもっと簡単に表示できる方法はないでしょうか お願いします。

    • ベストアンサー
    • HTML
  • tableの外上部になぜか出来てしまう微妙な行をなくしたいのですがどう

    tableの外上部になぜか出来てしまう微妙な行をなくしたいのですがどうしていいかわかりません。 左を<MAIN> 右を<SIDE>として作っていまして、 現在MAINでtableを使っていますが、代わりに<P>を使うと、SIDEの現在aaaaaaと書かれているところと行がぴったり合うのですが、tableにすると、なぜか緑部分の改行が出来てしまいます。 こういう現象は実はよく起こるのですが、何が原因なのでしょうか。宜しくお願いいたします。 <!-- メインコンテンツここから --> <div id="main"> <table class="width2" cellspacing="0" cellpadding="0">  <TR><TD colspan="2" class="font7"><font color="#dc143c ">■</font>タイトル</TD></TR> <TR><td width="110"><img src="images/taiyo.jpg" alt="表紙" /></TD><TD><a href="http://(アドレス)" target="_blank">タイトル2</a></TD></TR> </table> </div> <!-- メインコンテンツここまで --> <!-- サイドメニューここから --> <div id="side"> <P>aaaaaa</P> </div> <!-- サイドメニューここまで --> CSSは、 #main{ float:left; padding-top:10px; padding-left:10px; width:575px; } #side{ float:right; padding-top:10px; padding-right:10px; width:200px; } table.width2 {width:575px; border-spacing:0px; margin: 0px; }

    • ベストアンサー
    • HTML
  • ヤフオク出品時のタグで・・・

    商品説明のタグで <div align="center"> <table border="0" width="60%" cellpadding="0" cellspaing="0"> <tr><td align="left"><font color="#60457a"> ここに商品説明を入れる。 </font></td></tr> <tr><td align="left"><hr color="#7a6d45"></td></tr> <tr><td align="left"><font color="#60457a"> </table> </div> このようなものを作りましたが (これは1行のみですが実際は何行にもなります) 出品時に見ると左寄せになってしまいます。 センター合わせになると思い作ったのですが どこがわるいのでしょう?

  • <table>を複数使用するレイアウトでの質問です。

    <table>を複数使用するレイアウトでの質問です。 <table width=30% align=left><tr><td>A</td></tr></table> <table width=70%><tr> <td width=20%>B-1</td> <td width=80%> <table width=100%><tr> <td width=25%>C-1</td> <td width=15%>C-2</td> <td width=15%>C-3</td> <td width=15%>C-4</td> <td width=15%>C-5</td> <td width=15%>C-6</td> </tr></table> </td> </tr></table> <table width=30% align=left><tr><td>D</td></tr></table> <table width=70%><tr> <td width=★%>E-1</td> <td width=☆%> <table width=100%><tr> <td width=20%>F-1</td> <td width=20%>F-2</td> <td width=20%>F-3</td> <td width=20%>F-4</td> <td width=20%>F-5</td> </tr></table> </td> </tr></table> ・”★%”は、(”B-1”+”C-1”)と同じ幅 ・”☆%”は、(100%-”★”)の値 ・F-1~5は20%としたのですが(=100%)、C-2~6と同じ幅になるかどうか どのようにすれば求められるかご指導お願い致します。

    • ベストアンサー
    • HTML
  • tableタグについて

    どのようのウィンドー幅になっても全ての文字が表示させたいのですが、以下のタグの何処がおかしいのでしょうか。 <table width="100%" cellpadding="0" cellspacing="0"> <tr> <td> <div align=center> <table width="700"> <tr> <td>あいうえお・かきくけこ・さしすせそ</td> </tr> </table> </div> </td> </tr> </table> この場合、ウィンドー枠を右から左に向かって縮小していくと、「あいうえお・かきくけこ・さしすせそ」の”そ”から順に見えなくなります。  そのではなくて、 あいうえお かきくけこ さしすせそ になり、 さらに縮小すると あい うえ おか かき くけ こさ しす せそ の様な感じで すべてが表示されるようにしたいのですが、どのようなタグを挿入すれば良いのでしょうか? お願いします。

  • tableがbodyにはみ出る。。

    文章での質問で恐縮ですが、 html例に記載のような形で、レイアウトを作っています。 ヘッダーとフッター、左右のBOXとベタな構成かと思ってますが、 右ボックス(div right-box)内のテーブルの行が増えた際(運用上、可変で増えます)に、 tableがdiv構成(wrap-1,wrap-2,right-box,footer)からはみ出して、bodyの領域に出てしまいます。 スタイルシートでは左右のボックスをfloat left、float rightしていて、 テーブルの行が可変なので、left-box以外にはheightは指定していないです。 ※left-boxのheight指定は100% heightを指定しなければ、基本的に行追加に合わせて、可変で動くような気がしているのですが、 どうもうまくいかないです。 left-boxにheightを指定しているのは、left-box内に定義している要素があり、 heightの指定がない場合に、その要素の高さになってしまうので、 right-boxと同じ高さになるように、100%を指定しています。 分かりにくい質問で申し訳ないですが、 right-boxのheightをtableの行追加に合わせて可変にする方法はないでしょうか? 本来、heightなしで可変になるのであれば、 可変にならない原因の推測をお願いします。 ---ここからhtml例--- <html> <head> </head> <body> <div id="wrap-1"> <div id="header">; </div> <div class="wrap-2"> <div id="left-box"> </div> <div id="right-box"> <table id="table"> <tr> <td><textarea></textarea></td> </tr> <tr> <td><textarea></textarea></td> </tr> <tr> <td><textarea></textarea></td> </tr> <tr> <td><textarea></textarea></td> </tr> <tr> <td><textarea></textarea></td> </tr> <tr> <td><textarea></textarea></td> </tr> </table> </div> </div> <div class="footer clear"> </body> </div> </div> </body> </html>

    • ベストアンサー
    • HTML