xhtmlでのtableのセル(td)等について

このQ&Aのポイント
  • xhtmlでのtableのセル(td)等についての質問です。tableの表示が正しくできないため、アドバイスをお願いします。
  • html4.01からxhtmlに更新しようとしていますが、tableの表示に問題があります。予約のスケジュール一覧を表示する際に、隙間ができてしまいます。
  • xhtml1.0に変更する際に、tdにborderの記述が必要になるのか疑問です。また、cellspacingとcellpaddingをゼロに設定しても、両端に隙間ができてしまいます。DOCTYPEの宣言も変更が必要なのか迷っています。アドバイスをお願いします。
回答を見る
  • ベストアンサー

xhtmlでのtableのセル(td)等について

お世話になります、 cgiアプリでシステムを構築しているものです。 html4.01 からxhtmlに更新しようと、画面のプロトタイプをリメークしているのですが tableの表示のところが 理解不足のようで、どうしても隙間ができてしまい、正しく表示することができません。 アドバイスをお願いいたします! tableの用途も悪いのでしょうが、他の方法が考えつかなかったため 他の方法で実現できるのであれば、変更しても良いかとも思っています。 表示内容は、(想定としまして)部屋などの分単位の予約のスケジュール一覧です。 1分単位で予約されている内容を例えば5部屋分を1週間分、表示します。 html4.01では table(border有り)の1行を、1440ピクセル(60分×24時間)の幅のtdと想定し、 (先頭tdで日にちなど表示) 予約が120分であれば、colspanを120に、 予約がなければ、colspanを1440にしたりして、 それぞれ予約毎に、tdの背景色を設定して、一週間分の予約一覧を表示しています。 これをxhtml1.0に変更しようとしているのですが、 まず、 tabelタグに記述のborder=2を styleに変更しました。 、、、ということは tdにもborderを記述しなければならなくなりますね? さらに htmlでは、tableタグで、cellspacing、 cellpaddingをゼロにしていたのですが xhtmlで同じようにしているのですが、 どうしても一日分の幅の両端に隙間が出てしまいます。 (背景色で色をつけているので、両端は白くなってしまいます) htmlでは飲み込んでくれていた(!)border付きのtdの幅なども xhtmlではborderの幅の分も加算しなければならない? というようなサイトもありましたので 増やしてみたのですが、表示は変わりませんでした。 多分、間違っているんだと思うのですが。。。 xhtmlだと 直接borderを記述するのでなく、styleとして記述しなければならないのですよね? 他に予定一覧などのサンプルサイトがあればマネもしたいところです。 最悪、このページだけはhtml4.01のままいくしかないのかなと思ったりしてます。 何日も躓いてる状態ですが、そもそも根本的な問題として DOCTYPEの宣言はhtml4.01のままでは、ダメでしょうか? できれば、なるべく最新の状態に変更したいと思っているのですが 変更しなくても、いいのでは、、、と思うようになっています。(うまくいってないので ^^;) どなたかアドバイスをお願いいたします。

  • jg1wjz
  • お礼率91% (148/162)
  • HTML
  • 回答数5
  • ありがとう数14

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

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

HTMLにするか、XHTMLにするか・・  つい数年前までは、W3CもHTMLは4.01で終了し、今後はXHTMLに移行すると宣言し、 HTML4.01  そのままXML構文にあわせた   XHTML1.0 strict、XHTML1.0 transitional、XHTML1.0 frameset  そして、予告どおりstrict以外を廃止した   XHTML1.1  そして、XHTML2.0の策定を進めていましたが、W3Cの方向性に反対するWHATWGが独自にHTML5の策定を進め始めた。世界はXHTMLを支持せず、HTML5に向かい始めた。そのためW3Cは前言を翻して、XHTML2.0の策定を中止して、一緒にHTML5に進み始めた。 詳しくは、 ★HTML5が持つ本当の意味 - @IT( http://www.atmarkit.co.jp/news/200801/25/html.html ) ---「難しい技術は広く使われない」---- 以下は、"HTML5“とか”アプリ開発入門(1):Webの3つの問題を解決する「HTML5」とは何なのか (2/2) - @IT( http://www.atmarkit.co.jp/ait/articles/1008/30/news106_2.html )"より 【問題1】Webブラウザ間の互換性が低い 【問題2】文書内に埋め込まれた「意味」が不明確   これは、HTML4.01のときにすでに『DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するための一般機構を提供する。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.4 )』とされていたはずなのに無視されてきた。 【問題3】Webアプリの機能が制限されている その反省から、HTML5は作られてきました。 私が示したサンプルは、HTML5の新しい要素をclass名などに取り入れた形になっている。  将来を考えると現状ではHTML5を念頭において、HTML4.01strictが一番簡単でしょう。 >1分単位なので1440個のTDになってしまいます。  それでしたら、table、特にtdは使いません。tableの描画は時間がかかります。 <div class="schedule">  <h2>週間予定</h2>  <dl>   <dt>月</th>   <dd>    <span class="noneOrder S0630 H0230 E0900">101</span>    <span class="ordered S0900 H0100 E1000">&nbsp;</span>    <span class="noneOrder S1000 H0150 E1050">102</span>    <span class="ordered S1050 H0300 E1350">&nbsp;</span>     ・・・とかのほうが楽でしょうね。・・classの中身は適当(後々使うかもしれないので)・・   </dd> ☆HTMLの仕様では、idには ・先頭がアルファベットで始ま。 ・2文字目以降にはアルファベット、数字、ハイフン(-)、アンダースコア(_)、ピリオン(.)、コロン(:)  class名には制限はないのですが、スタイルシートで使う場合はclass名にも ・一文字目はアルファベット、アンダースコア(_) ・二文字以降はアルファベット、数字、ハイフン(-)、アンダースコア(_)  と言う制限が加わります。

jg1wjz
質問者

お礼

ORUKA1951 様 大変わかりやすく詳細に教えていただき、とても参考になります。 どのDOCTYPEを選べばいいのか、周りに聞く人もいないし、ネットで情報を調べても判断がつきませんでした。 思えば、html4.01tran..で動いていて、マイグレ提案に伴い、上からIEのバージョンアップに耐えられるよね?との質問を受けました。 システムは5年以上使われることが多く、今後のweb関連の仕様がどのように進化するのかわからないのに、その全てに対応できるはずもないな-、と思ったし、 非推奨もあるしxhtmlのほうが良さげ?!...程度の判断でのリメークでした。 期間的にまだ間に合うと思いますので、 html4.01strictでいきたいと思います。 dl,dt,ddはまだ使ったことが無いので tableに変えて使ってみたいと思います。 すんなりいけるといいのですが。 ご回答有難うございました!

その他の回答 (4)

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

XHTMLでしたら、そのまま初めの部分を <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> とすれば良いです。 XHTMLはHTML4.01をそのままXML構文で書き直したものですから、本質的な差はありません。 まあ ・要素名 属性は小文字で書くこと ・属性はかならずattribute="[値]"と書くこと ・閉じタグを省略しないこと  内容のない要素は />で閉じること >これをxhtml1.0に変更しようとしているのですが、 だけが異なるだけです。それによって描画が変わる事はありません。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  原因は別にある。No.1の回答 XHTML1.1は、strictしかないので、このままでよいが<head></head>内が多少変わる。

jg1wjz
質問者

お礼

ORUKA1951様 サンプルに基づき、いろいろ試してみました。 で、原因がわかりました! html4.01Tran...ではtable内のボーダーは幅に含まれないようですが、 xhtml1.0では、幅にボーダー分がプラスされていました。 document.getElementById(str).offsetWidth; で、取得された値を表示してみてわかりました。 で、原因といいますか、 テーブルの見出し部分の0-23の時間帯にwidthを指定していたのが原因のようでした。 このwidthをはずしたら、正しく表示できました。 tableタグに全体のwidthを指定し、 スケジュールの詳細用の<td>にはwidthは指定せず、colspanだけでうまく表示されました。 DOCTYPEは、元の <?xml version="1.0" encoding="Shift_JIS"?> <!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" xml:lang="ja" lang="ja"> です。 こんな訂正でxhtml1.0の構文的によいのでしょうか? (構文チェックはまだしていませんが) DOCTYPE宣言は、html4.01のstrictにしたほうが良いと思われますか? ベストアンサーにしようと思いましたが、 アドバイスをお願いしたいので、今はこのままにしておきます。 よろしくお願いいたします。

jg1wjz
質問者

補足

お礼の補足になります。m(__)m もしかしたら、これはブラウザによるものなのでしょうか??? 不安になってきました。 テスト環境のブラウザはIE8です。 IE7で使いたいというエンドユーザもいるようですが、 システムとしてIE8以上を推奨予定です。 (「以上」はあまり言いたくないのですが) 他のブラウザは使用禁止です。^^;

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

スタイルシートのみ ★印刷やガラケー(フィーチャーホン)にも対応 <style type="text/css"> <!-- table[summary="weekly schedule"]{ border:2px solid gray; border-collapse:collapse; line-height:2em; padding:0; } table[summary="weekly schedule"] tbody th{white-space:pre;} table[summary="weekly schedule"] thead th{font-size:0.7em;text-align:left;font-weight:normal} table[summary="weekly schedule"] th,table[summary="weekly schedule"] td{ border;solid 1px gray; } table[summary="weekly schedule"] td{ padding:0; width:2em; text-align:center; } --> </style> <style type="text/css" media="screen"> <!-- html,body{margin:0;padding:0;} h1,h2,h3,h4,h5,h6{margin:0;line-height:1.6em;} p{text-indent:1em;} div.header,div.section,div.footer{width:90%;min-width:630px;max-width:900px;margin:0 auto;padding:5px;} table[summary="weekly schedule"] td{ width:1.6em; border-width: 1px 0; overflow:hidden; text-indent:-10em; } table[summary="weekly schedule"] td.ordered{ background-color:aqua; } th[abbr="日曜日"]{background-color:fuchsia;} --> </style>

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

HTML4.01strictのサンプル。 Another HTML Lint - Gateway( http://www.htmllint.net/html-lint/htmllint.html# ) でチェック済み ★タブは_に置換してあるので戻す。 ★スタイルシートは次回 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="ja"> <head> _<meta http-equiv="content-type" content="text/html; charset=Shift_JIS"> _<title>サンプル</title> _<meta name="author" content="ORUKA1951"> _<meta http-equiv="Content-Style-Type" content="text/css"> _<link rev="made" href="mailto:oruka1951@hoge.com" title="send a mail" > _<link rel="START" href="../index.html"> <style type="text/css"> <!-- 後で --> </style> </head> <body> _<div class="header"> __<h1>タイトル</h1> __<p>このページでは・・・・</p> _</div> _<div class="section"> __<table summary="weekly schedule" border="1"> ___<thead> ____<tr> _____<td></td> _____<th abbr="0">0</th><th abbr="1">1</th><th abbr="2">2</th> _____<th abbr="3">3</th><th abbr="4">4</th><th abbr="5">5</th> _____<th abbr="6">6</th><th abbr="7">7</th><th abbr="8">8</th> _____<th abbr="9">9</th><th abbr="10">10</th><th abbr="11">11</th> _____<th abbr="12">12</th><th abbr="13">13</th><th abbr="14">14</th> _____<th abbr="15">15</th><th abbr="16">16</th><th abbr="17">17</th> _____<th abbr="18">18</th><th abbr="19">19</th><th abbr="20">20</th> _____<th abbr="21">21</th><th abbr="22">22</th><th abbr="23">23</th> ____</tr> ___</thead> ___<tbody> ____<tr> _____<th abbr="金曜日">7月26日(金)</th> _____<td></td><td></td><td></td><td></td><td></td><td></td> _____<td></td><td></td><td></td><td></td><td></td><td></td> _____<td class="ordered 8h">○</td> _____<td class="ordered 8h">○</td> _____<td class="ordered 8h">○</td> _____<td class="ordered 8h">○</td> _____<td class="ordered 8h">○</td> _____<td class="ordered 8h">○</td> _____<td class="ordered 8h">○</td> _____<td class="ordered 8h">○</td> _____<td></td><td></td><td></td><td></td> ____</tr> ____<tr> _____<th abbr="土曜日">7月27日(土)</th> _____<td></td><td></td><td></td><td></td><td></td><td></td> _____<td class="ordered 12h">○</td> _____<td class="ordered 12h">○</td> _____<td class="ordered 12h">○</td> _____<td class="ordered 12h">○</td> _____<td class="ordered 12h">○</td> _____<td class="ordered 12h">○</td> _____<td class="ordered 12h">○</td> _____<td class="ordered 12h">○</td> _____<td class="ordered 12h">○</td> _____<td class="ordered 12h">○</td> _____<td class="ordered 12h">○</td> _____<td class="ordered 12h">○</td> _____<td></td><td></td><td></td><td></td><td></td><td></td> ____</tr> ____<tr> _____<th abbr="日曜日">7月28日(日)</th> _____<td></td><td></td><td></td><td></td> _____<td class="ordered 18h">○</td> _____<td class="ordered 18h">○</td> _____<td class="ordered 18h">○</td> _____<td class="ordered 18h">○</td> _____<td class="ordered 18h">○</td> _____<td class="ordered 18h">○</td> _____<td class="ordered 18h">○</td> _____<td class="ordered 18h">○</td> _____<td class="ordered 18h">○</td> _____<td class="ordered 18h">○</td> _____<td class="ordered 18h">○</td> _____<td class="ordered 18h">○</td> _____<td class="ordered 18h">○</td> _____<td class="ordered 18h">○</td> _____<td class="ordered 18h">○</td> _____<td class="ordered 18h">○</td> _____<td class="ordered 18h">○</td> _____<td class="ordered 18h">○</td> _____<td></td><td></td> ____</tr> ____<tr> _____<th abbr="月曜日">7月29日(月)</th> _____<td></td><td></td><td></td><td></td><td></td><td></td> _____<td></td><td></td><td></td><td></td><td></td><td></td> _____<td></td><td></td><td></td><td></td><td></td><td></td> _____<td class="ordered 6h">○</td> _____<td class="ordered 6h">○</td> _____<td class="ordered 6h">○</td> _____<td class="ordered 6h">○</td> _____<td class="ordered 6h">○</td> _____<td class="ordered 6h">○</td> ____</tr> ___</tbody> __</table> _</div> _<div class="footer"> __<h2>文書情報</h2> __<dl class="documentHistry"> ___<dt id="FIRST-PUBLISHED">First Published</dt> ___<dd>2013-03-03</dd> __</dl> _</div> </body> </html>

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

HTML4.01であるものを、いまさらXHTMLにしなければならないのか不明です。 XHTMLは、他のアプリケーションとの連携などの目的がない場合、今後廃れる。どうせならXMLで作成して、XSLTでHTMLに直すとしない限り面倒くさいXHTMLにする必要はない。  いずれHTML5が主流になる状況で、他のアプリケーションとの整合を問わなければHTMLで良いでしょう。  いささか古い2008年の記事ですが・・  ⇒HTML5が持つ本当の意味 - @IT( http://www.atmarkit.co.jp/news/200801/25/html.html )  なお、表示差は、ブラウザの互換モードによる物じゃないですか?  HTML4.01strictで、きちんとDOCTYPE宣言が書かれていれば標準モードで動作するはずです。   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄さすがにtransitinalやframesetは使ってないでしょうが・・ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">  になります。DOCTYPEをこう記述して、CGIから出力されるHTMLを Another HTML Lint - Gateway( http://www.htmllint.net/html-lint/htmllint.html )  のDATA入力(右上ボタン)などでチェックすると早いです。 HTML4.01strictでしたら  tabelには、後方互換でborder="1",summary="" だけを記述 ・borderはtable,th,tdは別に扱われますから、ここに指定する ・cellspacing、 cellpaddingは使用できません。スタイルシートで指定します。 DOCTYPEの宣言はhtml4.01のままでは、ダメでしょうか?  だめです。XHTMLは、HTML以前にXMLですから できれば、なるべく最新の状態に変更したいと思っているのですが  ならHTML4.01strictでしょう。HTML5でも良いですが、まだまだlast-collだけど勧告じゃない。チョコチョコ変更もあるし、対応していないブラウザもある。 <table summary="weekly schedule" border="1">  <tbody>   <tr abbr="月曜日">月</th>    <td></td>    <td></td>    <td></td>    <td></td>    <td></td>    <td></td>    <td></td>    <td></td>    <td></td>    <td class="ordered" colspan="15">abcd</td>   </tr> ・・・・ が出力としては楽でしょうね。 <table summary="weekly schedule" border="1">  <tbody>   <tr abbr="月曜日">月</th>    <td></td>    <td></td>    <td></td>    <td></td>    <td></td>    <td></td>    <td></td>    <td></td>    <td></td>    <td class="ordered 15h">○</td>    <td class="ordered 15h">○</td>    <td class="ordered 15h">○</td> ・・・    <td class="ordered 15h">○</td>   </tr> のほうが、良いかも。 あとはスタイルシートで table[summary="weekly schedule"]{ border:2px solid gray; border-collapse:collapse; line-height:2em; position:relative; width:auto; } table[summary="weekly schedule"] th,table[summary="weekly schedule"] td{ border;solid 1px gray; width:4%; } table[summary="weekly schedule"] td{ border-width: 1pz 0; padding:0; text-align:center; } table[summary="weekly schedule"] td.ordered{ background-color:aqua; } 下のHTMLの場合は table[summary="weekly schedule"]{ border:2px solid gray; border-collapse:collapse; line-height:2em; position:relative; width:auto; } table[summary="weekly schedule"] th,table[summary="weekly schedule"] td{ border;solid 1px gray; width:4%; } table[summary="weekly schedule"] td{ border-width: 1pz 0; padding:0; overflow:hidden;/* 変更 */ text-indent:-10em;/* 追加 */ } table[summary="weekly schedule"] td.ordered{ background-color:aqua; } ★画像に書かれている数字[555]の意味が不明なため

jg1wjz
質問者

お礼

ORUKA1951様、ありがとうございます。 iframeを使用していたので(理由、あってますか?) 今まではhtml4.01のtransitinalでした。 でも今回、iframeをなくして1枚(!)のページで出力しようと思って手直し中です。 ※今までは本体のonloadでiframe内に情報を表示させていました。(環境によってonloadには泣かされっぱなしでした) サンプルまで有難うございます。 因みに「555」は予約の名称みたいなもんです。 今から試してみます。 で、追加で教えてください。 ●予約の表示ですが、 <td></td>のほうがcolspanより、いいのでしょうか? 1分単位なので1440個のTDになってしまいます。 最低2分(システムの条件)なので、その半分ですが。 全部埋まることもあるので、MAXで考えるとかなりの文字数になりますが、影響ないでしょうか。。。 weekly表示ですと、7日分×最大20部屋の表示が1ページになります。 ●回答NO4を踏まえさせていただき、 xhtml1.0のstrictにして、 BODY内はxml構文として記載していただいたものだけ訂正する。 これがいいのかな?  またはこのページだけhtml4.01 のstrictにする? 今はプログラムに組み込むためのプロトタイプ作成中で、 出来上がったらプログラムに組み込みます。 いつも、最終的にはcgi出力したページを全部 「Another HTML Lint」でチェックしています。 今はhtml4.01Transitionalです。 xhtmlにするか、html4.01のstrictにするか 今だ悩み中です。 どちらがハードル(手直し?)が高いでしょうか? 重ね重ね、よろしくお願いいたします。 ※今からサンプル版で試してみます。

関連するQ&A

  • テーブルの幅

    tableのwidth指定についての質問です。 同じレイアウトで複数のhtmlファイルを作るのですが、その中のテーブル及びセルの幅をwidthで固定してあるのにも関わらず、セル内のテキストの長さによって各ファイルごとのテーブルのセルの幅が、IEでの表示で変わってしまいます。 <table width="450" cellspacing="0" cellpadding="2" border="1"> <tr> <th bgcolor="#ffcccc" width="150">aaaaaaaaa</th> <th bgcolor="#ffcccc" width="286">\100,000</th> </tr> <tr> <td colspan="2">ここには商品説明が入ります。ああああああああああああああああああああああああああああああああああああ</td> </tr> </table> 上記のaaaaaaaaaの部分がファイルによって長さが違うのですが、それによってセルの幅が変わってしまいます。 IE6でプレビューすると変わりますが、firefoxでは変わりません。 <th>を<td>に変更すると、幅は固定され変わりません。 IEの場合、thでwidth指定が出来ないのでしょうか。 なぜ変わってしまうのでしょうか?どこかに記述の問題があれば教えていただければありがたく思います。

  • tableでcolspanを使うと次行以下のセルの幅が均等に?

    tableでcolspanを使うと、colspanで結合した行の次行以下のセルの幅が均等になってしまいます。 どうすれば、colspanで結合した行の次行以下のセルの幅が均等になるのを防げるでしょうか?IE6,IE7 意図的にスタイルシートは、使用しないでください。 例: <table width="300" border="1" cellspacing="1" cellpadding="5"> <tr> <td colspan="2" width="284" align="center"> タイトルセル </td> </tr> <tr align="left" valign="top"> <td width="100"> セル左 <td> <td width="171"> セル右 <td> </tr> <table> 上記の場合、本来ならば、左のセルの幅(100px)が右のセルの幅(171px)より狭いはずなのに、左のセルの幅と右のセルの幅が均等になっていしまいます。 下記コード部分を上記のコードから削除すると、本来の比率で左のセルと右のセルの幅が表示されます。 <tr> <td colspan="2" width="284" align="center"> タイトルセル </td> </tr> よろしくお願いします。

    • ベストアンサー
    • HTML
  • 【IE6】テーブルにcolspanが入ると幅指定がずれる?

    閲覧いただきありがとうございます。 <Html>にて、<table>を入れているのですが <colspan>すると幅指定がずれてしまいます。 タグ記述のミスなのか、仕様なのかはっきりと分からない為 質問させていただきます。 下記のようなテーブルを作っています。 【テーブル】 テーブル幅 500px 2行 5列:(各列100pxの5等分) 【列内容】 1行目 ├5列全て colspan 2行目 ├1列目:100px ├2-3列目:100+100=200px (colspan=2) ├4-5列目:100+100=200px (colspan=2) ここで、2-3列目に幅200pxに指定した <select>タグを入れると、意図しない幅になってしまいます。 意図している動きは 2-3列目の幅ぴったりに<select>が入ってほしいのですが 4-5列目の4列部分がえぐれてしまい、4-5列目が200pxではなく 100pxぐらいの描画になってしまいます。 そして<select>タグは2-3列目にぴったりと入らず、 後ろに100pxの空きがでてしまいます。 http://kikky.net/pc/css_bug020.html このサイトではIE6ではcolspanがあると幅指定がずれると なっていますが、同一の現象なのでしょうか? 示唆いただければ幸いです。 宜しくお願いします。 --------------記述html--------------- <html> <head> <title> ColSpanテスト </title> </head> <body> <table width="500" border="1" cellspacing="0" cellpadding="0" bordercolor="#000000" style="border-collapse: collapse;" > <colgroup> <col width="100" /> <col width="100" /> <col width="100" /> <col width="100" /> <col width="100" /> </colgroup> <!-- 1行目 --> <tr> <td colspan="5"> span5 </td> </tr> <!-- 2行目 --> <tr> <!-- 1列目 --> <td> </td> <!-- 2-3列目 --> <td nowrap colspan="2" > <select style="width:200px;" size="1" name="sl" id="sl"> <option value="99999">2列にしたい</option> </select> </td> <!-- 4-5列目 --> <td colspan="2" > 200pxなのに・・・ </td> </tr> </table> </body> </html>

  • テーブルレイアウト

    テーブルレイアウトで困っています。 <table width="100%" height="100%" border="1"> <tr> <td colspan="2" valign="top" height="100">全体の幅は100%</td> </tr> <tr> <td width="150" valign="top">左のセル<br>幅150</td> <td valign="top">右のセル<br>幅指定なし</td> </tr> </table> これだと問題なく表示されるのですが、 <table width="100%" height="100%" border="1"> <tr> <td colspan="2" valign="top" height="100">全体の幅は100% 少し長い文章を入れる</td> </tr> <tr> <td width="150" valign="top">左のセル<br>幅150</td> <td valign="top">右のセル<br>幅指定なし</td> </tr> </table> このように1列目のセルに長い文章を入れると、2列目の左のセルの幅が勝手に広がってしまいます。 何が原因で、対処法はないでしょうか? Netscape7.1ではこうならないんですが、IE6では勝手に崩れてしまいます。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • テーブルのレイアウトがおかしくなります・・・

    先ほども質問して教えていただいたのですが、少し対応できないことが出来てしまったので 再び質問いたします。 <table border="1" width="100%"> <tr> <td width="20" rowspan="2">1</td> <td width="30">&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td colspan="2">&nbsp;aaaaaaaaaaaaaaaaaaaaaa</td> </tr> </table> 1)先ほどtable-layout:fixedを教えてもらったのですが、一番左のセルの番号の桁数が増えた場合には幅を増やして表示したい (つまり最大の幅にしたい) 2)width=30の部分を書かないとcolspanのセルに影響を受けないのですが、width=30を書くととたんにcolspanのセルに影響されて びよ~んと幅が大きくなってしまいます。ずばりhtmlのバグでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • サイズ指定したテーブルを縦に並べるとセルがズレる

    色々と試しているんですが解決できないので教えてください。 CSSで全く同じようにサイズ指定しているテーブルを縦に並べた時、同じようにサイズ指定しているはずなのに、IEではセルの内容(テキストの長さ)によってセルの幅が変わってしまいます。具体的に言うと、ショッピングカートの商品ページのようなものを作ろうとしているのですが、以下のようなソースです。 .menu-table{ width:500px; padding:0px; border-collapse:collapse; } .menu-title{ margin:0px; padding:5px; border:1px solid #ff9900; } .menu-img{ width:110px; margin:0px; padding:5px; border:1px solid #ff9900; } .menu-style1{ width:70px; margin:0px; padding:5px; border:1px solid #ff9900; } .menu-style2{ width:300px; margin:0px; padding:5px; } .menu-style3{ margin:0px; padding:5px; } <table width="0" border="0" cellspacing="0" cellpadding="0" class="menu-table"> <tr> <td colspan="3" class="menu-title">商品名</td> </tr> <tr> <td rowspan="4" class="menu-img"><img src="item.jpg" width="100" height="100" /></td> <td class="menu-style1">説明1</td> <td class="menu-style2">あいうえお</td> </tr> <tr> <td class="menu-style1">説明2</td> <td class="menu-style2">かきくけこ</td> </tr> <tr> <td class="menu-style1">価格</td> <td class="menu-style2">\1,000¥</td> </tr> <tr> <td colspan="2" class="menu-style3">あいうえおかきくけこさしすせそたちつてとなにぬねの</td> </tr> </table> こういうテーブルを縦にいくつか並べた時、例えば2つ目のテーブルが「あいうえお」のところに「あいうえおかき」と入力すると、「あいうえお」と入力したテーブルに比べて「説明1」のセル幅が狭くなってしまいます。Firefoxでは綺麗に揃うんですが、どうしてもIEではずれます。ボーダーの幅のぶんも計算に入れて幅を指定し直してもずれるんです。説明が下手すぎてうんざりかもしれませんが、どなたか解決策が分かれば教えてください。

    • 締切済み
    • CSS
  • テーブルの位置

    最初からテーブルを一番上に持ってくるにはどうしたら良いですか?CSSで設定するのでしょうか? 【】で囲ってある部分を最初から上にしたいのです。入れ子のようにしてテーブルを挿入すると必ず真中になってしまいます。 <table width=\"800\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\" height=\"500\"> <tr bgcolor=\"#FFFF00\"> <td valigin=\"top\" valign=\"top\" colspan=\"4\" height=\"64\">  </tr> <tr> <td colspan=\"3\" height=\"2\">  </td> </tr> <tr> 【<td width=\"170\"> <table width=\"170\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\"> <tr> <td> </td> </tr> </table>】 </td> <td width=\"238\" height=\"352\"> </td> <td width=\"197\"> </td> </tr> <tr> <td colspan=\"3\"> </td> </tr> </table>

  • テーブルの位置

    最初からテーブルを一番上に持ってくるにはどうしたら良いですか?CSSで設定するのでしょうか? 【】で囲ってある部分を最初から上にしたいのです。入れ子のようにしてテーブルを挿入すると必ず真中になってしまいます。 <table width="800" border="1" cellspacing="0" cellpadding="0" height="500"> <tr bgcolor="#FFFF00"> <td valigin="top" valign="top" colspan="4" height="64">  </tr> <tr> <td colspan="3" height="2">  </td> </tr> <tr> 【<td width="170"> <table width="170" border="1" cellspacing="0" cellpadding="0"> <tr> <td> </td> </tr> </table>】 </td> <td width="238" height="352"> </td> <td width="197"> </td> </tr> <tr> <td colspan="3"> </td> </tr> </table>

    • ベストアンサー
    • HTML
  • テーブルのセルに画像をピッタリ表示するには

    よろしくお願いします。 テーブルの以下のタグ並びで、 <img src=>の部分の画像jpgを、枠にピッタリ表示したいのです。 以前作った他のhtmlファイルでは、画像のサイズに変化があっても、自動的に枠にピッタリ表示でき、 同じ通りタグを書いたはずなのですが、 なぜか?今回は、この画像が、 一行二列目の枠(これが大きくなってしまう) のその左端寄りに、幅よりも小さく浮いたように表示されてしまいます。(枠の右側に不要な余白ができてしまう) 枠や画像のサイズを固定しても同じです。 この画像の枠以外は、画像ではなくテキストです。 うまくいかないのはなぜなのでしょう? どこに間違いがあるのでしょうか、教えてください、お願いいたします。 <table width="85%"border="1" cellpadding="5" cellspacing="5" align="center"> <tr><td>一行一列目     </td> <td rowspan="3">1行二列目~ココの部分~<img src="" width="" height="" align="center" valign="top" alt=""> </td></tr> <tr><td>2行一列 </td></tr> <tr><td>3行一列 </td></tr> <tr><td>4行一列目 </td> <td>4行二列目 </td></tr> <tr><td colspan="2">5行一列           </td></tr> <tr><td colspan="2">6行一列           </td></tr></table>

    • ベストアンサー
    • HTML
  • テーブルの入れ子について

    このようにテーブルを入れ子にするのは不可能なのでしょうか? <table>  <tr>   <td>1</td>   <td>2</td>   <td>3</td>   <td>4</td>  </tr>  <tr>   <td colspan="4">     <table>      <tr>      <td>5</td>       <td>6</td>       <td>7</td>       <td>8</td>      </tr>     </table>   </td>  </tr> </table> cssなどでいろいろと設定しても、 「5・6・7・8」のセルが「1」のセルの幅にしかなりません。 colspanしているセル全体にテーブルを置きたいのですが・・・。 間違いを教えて下さい。 よろしくお願いします。

    • ベストアンサー
    • HTML

専門家に質問してみよう