• ベストアンサー

異なる<tbody>内のセルを連結したい

イメージ的には、 <tbody><tr> <td rowspan="2">AAA</td> <td>bbb</td> </tr></tbody> <tbody><tr><td>ccc</td></tr></tbody> このようなことをしたいのですが可能でしょうか。 <tbody>で指定した各グループをまたいだ大きなセルを作りたいのです。 無理ですかね^^;

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

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

必ず仕様書を読む癖をつけましょう。 【引用】____________ここから <!ELEMENT TABLE - - (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Tables in HTML documents (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/tables.html#h-11.2.1 )]より  table要素には、thead要素とtfoot要素は0個か1個、tbody要素は1個以上。そして 【引用】____________ここから TBODY開始タグは、表が本体をただ1つだけ含んでいてヘッダもフッタも含まないという場合を除き、常に必要である。 TBODY終了タグは、常に省略可能である。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Tables in HTML documents (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/tables.html#h-11.2.1 )]より  ところが、あなたの場合は、それよりも >bbbとcccを別々のグループに配置したままAAAだけを両グループにまたがって結合することは可能でしょうか??? できません。というかHTMLの文書構造上ありえません。あってはならない。それではTBODYというマークアップの意味がないです。tableは表であることを示す要素名ですし、tbodyは表のそれぞれが独立した本文であることを示します。独立した本文にまたがる列などありえません。HTMLは文書構造にしたがって正しくマークアップされて意味を成すのです。  次に<tbody>(少量タグは省略可能)が現れた時点で、thやtdにcolspanに大きな値が指定されていても、そのtdなりthを含むcollspanは終了しているとユーザーエージェントは判断すべきです。実際そのように判断します。  そもそも、HTMLでマークアップしたいその部分の文書とは何なのでしょうか??

zyousuke
質問者

お礼

わかりました・・・

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

その他の回答 (3)

  • Chaire
  • ベストアンサー率60% (79/130)
回答No.4

HTML 4.0 の表は多次元データを扱えます。No.3 では class 属性をお使いですが、データのつながりを物理的に(「タグ」的に)表現できないときは axis 属性を使います。 <tbody> <tr> <td axis="group-A upper">AAA</td> <td axis="group-B upper">AAA</td> </tr> </tbody> <tbody> <tr> <td axis="group-A lower">BBB</td> <td axis="group-B lower">BBB</td> </tr> </tbody> 最近のブラウザであれば CSS2 の属性セレクタに対応していますから、td[axis~="group-A"] { color: red } のようにグループを示すことができます。見出しセルが必要であれば headers 属性で見出しセルの ID を並べて下さい。 なお、HTML5 では axis 属性が廃止されています。が、どうせ HTML5-UA が無視するというだけですから気にする程のものではありません。気になるなら HTML 4.01 の文書型を宣言すれば良いだけですし、class 属性でもまあ構いません。

zyousuke
質問者

お礼

ごめんなさい、使い方がいまいちわからないので断念しました 現在は<td></td>の中に小さな<table>を置いて、当初やりたかったこと実現させています;;

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

開始タグから終了タグまでが1つのグループです。 終了タグが書かれた時点で別々のグループになりますから、それを1つにまとめようというのは 矛盾ということになると思います。 でなければ、classなどを使った別の方法でグループ化すべきだと思います。 -------- <span>が入っていてあまり良くない例ですが、CSSで何とかすれば1つのセルに見せかけることは出来ると思います。 (未検証です) <style> td{border: 1px solid gray} .upper{border-bottom:0 none;} .under{border-top: 0 none;} .under span{display:none} </style> <tbody><tr> <td class="group-A upper">AAA</td> <td>bbb</td> </tr></tbody> <tbody><tr> <td class="group-A under"><span>AAA</span></td> <td>ccc</td> </tr></tbody>

zyousuke
質問者

お礼

質問は別のグループ同士の結合可否を知ることですので目的達成です^^ 私としても恐らく無理だろうと予想していたので、その場合の代替案もあって、そのうえでの質問でした CSSでもトリッキーなことをやれば、それっぽい事が出来そうですね

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

<tbody> <tr><td rowspan="2">AAA</td><td>bbb</td></tr> <tr><td>ccc</td></tr> </tbody>

zyousuke
質問者

お礼

ご回答ありがとうございます! bbbとcccを別々のグループに配置したままAAAだけを両グループにまたがって結合することは可能でしょうか???

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

関連するQ&A

  • スタイルシート 

    さっそく質問させていただきます。 <table border> <tr> <td rowspan="3"> <h3>AAA</h3> <ul> <li>aaa</li> <li>bbb</li> <li>ccc</li> </ul> </td> <td> <h3>BBB</h3> <ul> <li>aaa</li> <li>bbb</li> </ul> </td> </tr> <tr> <td> <h3>CCC</h3> <ul> <li>aaa</li> <li>bbb</li> </ul> </td> </tr> <tr> <td> <h3>DDD</h3> <ul> <li>aaa</li> <li>bbb</li> </ul> </td> </tr> </table> このタグを記述すると左に右の三つのセルをまたがったセルが表示されると思うのですが、これと同じレイアウトをスタイルシートで表現するにはどのように記述すればよいのでしょうか? 左側に一つのボックスを置いて、その直ぐ隣に三つのボックスを置きたいのです。

    • ベストアンサー
    • CSS
  • tableのセル高さの固定法

    下記のようなTABLEがあるとします. 右の列は縦3行を連結した1つのセルになっています. また左上の「1」のセルの高さは,50PIXとなっています. いま,右列セルの内容が増えて,table全体の高さが増した場合, 「1」セルはその高さ指定50PIXを無視して拡がってしまいます. このような状況を回避して,右列セルの高さがどうあろうとも 「1」セルの高さを固定する方法を教えて下さい. (例えば,右列セルが高くなった場合,  「1」セルと固定する代わりに「3」セルを拡げて全体の高さを確保する,など) <TABLE border="1"> <TBODY> <TR> <TD HEIGHT="50PIX">1</TD> <TD ROWSPAN=5> ●あ<br> ●あ<br> ●あ </TD> </TR> <TR> <TD>2</TD> </TR> <TR> <TD>3</TD> </TR> </TBODY> </TABLE>

  • テーブル列の表示/非表示機能の追加~その2

    やりたい事は、AAAの列だけ常に表示させておき、BBB(つまり3列分)を表示/非表示になる・・といった事です。 下のHTMLで、変数bbbには「3」が入っているのは確認できましたが、後がさっぱり続きません。 どうぞよろしくお願いいたします。 <html> <head> <script type="text/javascript"> <!-- function hide(idName) { var aaa = document.getElementById(idName).childNodes; var bbb = aaa[0].length; alert(bbb); //--> </script> </head> <body> <button onClick="hide('list1')">隠す</button> <table border="1" cellpadding="2" cellspacing="1"> <tr> <th rowspan="3">AAA</th> <th colspan="3" id="list1">BBB</th> </tr> <tr> <th width="120">BBB1</th> <th width="120">BBB2</th> <th width="120">BBB3</th> </tr> <tr> <th>BBB11</th> <th>BBB21</th> <th>BBB31</th> </tr> <tr> <td>aaa</td> <td>aaa1</td> <td>aaa2</td> <td>aaa3</td> </tr> <tr> <td>bbb</td> <td>bbb1</td> <td>bbb2</td> <td>bbb3</td> </tr> <tr> <td>ccc</td> <td>ccc1</td> <td>ccc2</td> <td>ccc3</td> </tr> </table> </body> </html>

  • <tbody>

    <tbody> <tr>  <td>   <div>03</div>  </td>  <td>   <div> 9</div>  </td>  <td>   <div>0</div>  </td> </tr> <tr>  <td>   <div>03</div>  </td>  <td>   <div>11</div>  </td>  <td>   <div>11</div>  </td> </tr> </tbody> のようなHTMLを、javascriptで、 [["03/9",0],["03/11",11]] というような多次元配列に変換したいと思っています。 どなたか、ご教授願えませんでしょうか? 拙い説明で申し訳ありません、、、、 何卒、よろしくお願い致します。

  • Table内の文字の位置を変えるには

    <table> <td rowspan="4">テスト</td> <td>AAA</td> </tr> <tr> <td>BBB</td> </tr> </table> このコードを打ち込むとテストの位置がAAAとBBBの間の高さになりますが、 テストの高さをAAAと同じ位置に表示することはできますか?

    • ベストアンサー
    • HTML
  • セルの高さを固定するには?

    2列2行のテーブルを作り、右の列をrowspan=2で結合しています。 右の列はテキストや画像を追加入力していくので、縦が長くなっていきます。 その際、左上のセルだけ高さを固定し、左下のセルは自動で高さが決まるようにしたいと思っています。 が、左上のセルにheight=150と入力しても、右が伸びるにつれて長くなってしまいます。 CSSで指定しても同じです。 rowspanを使うと、結合していないセルの高さを固定することはできないのでしょうか。 良い解決策がありましたら、お知恵をお貸し下さい。 <table> <tr> <td>ここを固定したいです</td> <td rowspan="2">ここが長くなっていきます</td> </tr> <tr> <td>ここは右が長くなるにつれて自動で伸びるようにしたいです</td> </tr> </table>

    • ベストアンサー
    • HTML
  • 異なるセルに触れる度、テーブル背景画像もそれぞれ変化させる方法

    オンマウスで異なるセルなどの背景を変える方法 http://okwave.jp/qa4890043.html で質問した者です。 その質問で教えて頂いたやり方(※1)を応用して、 異なるセルに触れる度に、テーブル自体の背景もそれぞれ異なる画像に変化させる方法を教えて下さい。 マウスオーバーで変化、マウスアウトで元の背景に戻る、というかたちでお願いします。  * * *  テーブルにaaa.jpgという背景が設定されているとして、 <table><tr> <td>1111</td> ←このセルに触れるとテーブル背景がbbb.jpgに変化。 <td>2222</td> ←このセルに触れるとテーブル背景がccc.jpgに変化。 </tr></table> どのセルでもマウスアウトで元のaaa.jpgに戻る。 (※1) <script> function change(obj){ var p=obj.parentNode; while(p){ if(p.nodeName=="TABLE") break; p=p.parentNode; } p.style.backgroundImage="url(****.jpg)"; } </script> <table> <tbody> <tr> <td onMouseover="change(this)">1111</td> <td>2222</td> <td>3333</td> </tr> </tbody> </table> 私からのレスは明日以降になってしまいますが、宜しくお願いします。

    • ベストアンサー
    • HTML
  • colspan セルの結合について

    テーブルタグで作ったセルを結合させようとcolspan タグを使用したのですが 縦線が消えてしまいます。何故なのか調べてもわからず困っています。 ソースを載せるのでよければお知恵を貸してください。お願いします。 <html> <head></head> <body bgcolor="blue"> <table border=0 bgcolor="#ffffff cellspacing=0 cellpadding=0> <tr> <td> <table border=0 cellspacing=1 cellpadding=3> <tr bgcolor="#000000"><td colspan="9">aaa</td></tr> <tr bgcolor="#000000"><td>ccc</td>yyy</td><td>aaa</td><td>ccc</td><td>yyy</td><td>aaa</td><td>ccc</td><td>yyy</td><td>aaa</td></tr> </table> </td> </tr> </table> <table border=0 bgcolor="#ffffff" cellspacing=0 cellpadding=0> <tr> <td> <br> <table border=0 bgcolor="#ffffff" cellspacing=0 cellpadding=0> <tr> <td> <table border=0 cellspacing=1 cellpadding=3> <tr bgcolor="#000000"><td colspan="9">aaa</td></tr> <tr bgcolor="#000000"><td colspan="3">ccc</td><td colspan="3">kkk</td><td colspan="6">mmm</td></tr> </table> </td> </tr> </table> <table border=0 bgcolor="#ffffff" cellspacing=0 cellpadding=0> <tr> <td> </body> </html>

  • セルの高さを固定したい

    こちらの質問と同じです。 http://oshiete1.goo.ne.jp/qa4888659.html IEにおいて、隣に結合したセルがあり、中央の高さを固定したいという状態です。 条件として、”基本HTMLは変更しない”が重要です。 テーブルの変わりにdivにする、などは求めていません。 ■HTML <table> <tr> <td>&nbsp;</td> <td rowspan="3">結合セル</td> </tr> <tr> <td>高さを固定</td> </tr> <tr> <td>&nbsp;</td> </tr> </table> HTMLで高さを指定しても、CSSでheightやmax-heightで指定しても伸びてしまいます。 何か方法はあるでしょうか?

    • ベストアンサー
    • HTML
  • tableのあるセルに無駄な空間が出来てしまいます。

    tableのあるセルに無駄な空間が出来てしまい、全くの足踏み状態で困っています。 3兼4列目(あるセル)の中身が終わるとすぐに3列目、4列目がくっついてくるようにしたいです。 <TABLE border=1> <TBODY> <TR> <TD colSpan=3>あああああああああ</TD> <TD>いいいいい</TD></TR> <TR> <TD rowSpan=2 valign="top">1列目</TD> <TD rowSpan=2 valign="top">2列目<br> 2列目<br>2列目<br>2列目<br>2列目<br>2列目<br>2列目<br> 2列目<br>2列目<br>2列目<br>2列目<br>2列目<br>2列目<br> <br><br><br> </TD> <TD colSpan=2 valign="top"> 3兼4列目 <br> このセルと下の3列目、4列目を近づけさせたいです。<br> ↓この空間をなくす方法を教えてください。 </TD></TR> <TR> <TD valign="top">3列目</TD> <TD valign="top">4列目</TD></TR></TBODY></TABLE> 宜しくお願いします。

    • ベストアンサー
    • HTML