
下記のhtmlでtheadとtbodyの枠が合わないのは何故でしょうか。
理由と修正個所の指摘をお願いします。
<html>
<head>
<meta http-equiv = "Content-Type" content = "text/html; charset=sjis">
<title>文書のタイトル</title>
<style type = "text/css">
#table01 { border:solid 5px; }
#table01HeadR { float:left; }
#table01Body { float:left; height:200px; overflow:auto; }
</style>
</head>
<body>
TABLE の見出しを固定したまま内容だけをスクロール対象にする」をスタイルシートで実現するサンプル<br>
<table id = "table01">
<thead>
<tr id = "table01HeadR"> <th>date</th> <th>schedule</th> </tr>
</thead>
<tbody id = "table01Body">
<tr> <td>2015/1/1</td> <td>今日は、運動会</td> </tr>
<tr> <td>2015/1/2</td> <td>今日は、修学旅行</td> </tr>
<tr> <td>2015/1/3</td> <td>今日は、卒業式</td> </tr>
<tr> <td>2015/1/4</td> <td>今日は、体育の日</td> </tr>
<tr> <td>2015/1/5</td> <td>今日は、葬式</td> </tr>
<tr> <td>2015/1/6</td> <td>今日は、結婚式</td> </tr>
<tr> <td>2015/1/7</td> <td>今日は、遠足の日</td> </tr>
<tr> <td>2015/1/8</td> <td>今日は、夏祭り</td> </tr>
<tr> <td>2015/1/9</td> <td>今日は、海の日</td> </tr>
<tr> <td>2015/1/10</td> <td>今日は、山の日</td> </tr>
<tr> <td>2015/1/11</td> <td>今日は、誕生日</td> </tr>
<tr> <td>2015/1/12</td> <td>今日は、予定が無い</td> </tr>
</tbody>
</table>
</body>
</html>

No.4
- 回答日時:
>styleは別としてscriptはどうしても必要なんでしょうか???
javascriptでお互いのセルの幅をみて、広い方に合わせています。
もとのご参考になさっているサイトのソースは無茶苦茶です。
scriptを書かないなら、幅を最初から決め打ちで値を指示してあげれば間違いありません。
ただ幅をしていすると改行したり余ったりするのでscriptで動的に調整しているわけです
有難う御座います。分かりました。こう言う制御が必要なんですね
最後に<col><col>はどう言う動作をするのでしょうか。このタグを外しても見た目は変わりないのですが。何度も申し訳ありませんが、宜しくお願いします。
No.3
- 回答日時:
>htmlのイメージがわきません。
htmlのソースをご提示願います。ちょっと雑ですがこんな感じ
<style>
#t1,#t2{ border-collapse:collapse;}
#t1 th,#t2 td{ border:1px solid #000000;}
#t2d {height:200px; overflow:auto;}
</style>
<script>
window.onload=function(){
var c1=document.getElementById("t1").getElementsByTagName("tr")[0].getElementsByTagName("th");
var c2=document.getElementById("t2").getElementsByTagName("tr")[0].getElementsByTagName("td");
for(var i=0;i<c1.length;i++){
var w1=c1[i].offsetWidth -2;
var w2=c2[i].offsetWidth -2;
var w=(w1>w2)?w1:w2;
c1[i].width=w;
c2[i].width=w;
}
document.getElementById("t2d").style.width=(document.getElementById("t1").offsetWidth+20).toString()+"px";
}
</script>
<table id = "t1">
<col><col>
<tbody>
<tr> <th>date</th> <th>schedule</th> </tr>
</tbody>
</table>
<div id="t2d">
<table id = "t2">
<col><col>
<tbody>
<tr> <td>2015/1/1</td> <td>今日は、運動会</td> </tr>
<tr> <td>2015/1/2</td> <td>今日は、修学旅行</td> </tr>
<tr> <td>2015/1/3</td> <td>今日は、卒業式</td> </tr>
<tr> <td>2015/1/4</td> <td>今日は、体育の日</td> </tr>
<tr> <td>2015/1/5</td> <td>今日は、葬式</td> </tr>
<tr> <td>2015/1/6</td> <td>今日は、結婚式</td> </tr>
<tr> <td>2015/1/7</td> <td>今日は、遠足の日</td> </tr>
<tr> <td>2015/1/8</td> <td>今日は、夏祭り</td> </tr>
<tr> <td>2015/1/9</td> <td>今日は、海の日</td> </tr>
<tr> <td>2015/1/10</td> <td>今日は、山の日</td> </tr>
<tr> <td>2015/1/11</td> <td>今日は、誕生日</td> </tr>
<tr> <td>2015/1/12</td> <td>今日は、予定が無い</td> </tr>
</tbody>
</table>
</div><style>
#t1,#t2{ border-collapse:collapse;}
#t1 th,#t2 td{ border:1px solid #000000;}
#t2d {height:200px; overflow:auto;}
</style>
<script>
window.onload=function(){
var c1=document.getElementById("t1").getElementsByTagName("tr")[0].getElementsByTagName("th");
var c2=document.getElementById("t2").getElementsByTagName("tr")[0].getElementsByTagName("td");
for(var i=0;i<c1.length;i++){
var w1=c1[i].offsetWidth -2;
var w2=c2[i].offsetWidth -2;
var w=(w1>w2)?w1:w2;
c1[i].width=w;
c2[i].width=w;
}
document.getElementById("t2d").style.width=(document.getElementById("t1").offsetWidth+20).toString()+"px";
}
</script>
<table id = "t1">
<col><col>
<tbody>
<tr> <th>date</th> <th>schedule</th> </tr>
</tbody>
</table>
<div id="t2d">
<table id = "t2">
<col><col>
<tbody>
<tr> <td>2015/1/1</td> <td>今日は、運動会</td> </tr>
<tr> <td>2015/1/2</td> <td>今日は、修学旅行</td> </tr>
<tr> <td>2015/1/3</td> <td>今日は、卒業式</td> </tr>
<tr> <td>2015/1/4</td> <td>今日は、体育の日</td> </tr>
<tr> <td>2015/1/5</td> <td>今日は、葬式</td> </tr>
<tr> <td>2015/1/6</td> <td>今日は、結婚式</td> </tr>
<tr> <td>2015/1/7</td> <td>今日は、遠足の日</td> </tr>
<tr> <td>2015/1/8</td> <td>今日は、夏祭り</td> </tr>
<tr> <td>2015/1/9</td> <td>今日は、海の日</td> </tr>
<tr> <td>2015/1/10</td> <td>今日は、山の日</td> </tr>
<tr> <td>2015/1/11</td> <td>今日は、誕生日</td> </tr>
<tr> <td>2015/1/12</td> <td>今日は、予定が無い</td> </tr>
</tbody>
</table>
</div>
styleは別としてscriptはどうしても必要なんでしょうか???
<style>
#t1,#t2{ border-collapse:collapse;}
#t1 th,#t2 td{ border:1px solid #000000;}
#t2d {height:200px; overflow:auto;}
</style>
<script>
window.onload=function(){
var c1=document.getElementById("t1").getElementsByTagName("tr")[0].getElementsByTagName("th");
var c2=document.getElementById("t2").getElementsByTagName("tr")[0].getElementsByTagName("td");
for(var i=0;i<c1.length;i++){
var w1=c1[i].offsetWidth -2;
var w2=c2[i].offsetWidth -2;
var w=(w1>w2)?w1:w2;
c1[i].width=w;
c2[i].width=w;
}
document.getElementById("t2d").style.width=(document.getElementById("t1").offsetWidth+20).toString()+"px";
}
</script>
No.1
- 回答日時:
なんのためのfloat?
theadはtrレベルでfloatして、tbodyはそれじたいでfloatしていれば
表記の通りにしかならないのでは?
(tbody自体のfloatがなんの意味があるかさっぱりですが・・・)
済みません。詳しい事は分かりませんが。単にテーブルをスクロールさせたかったので。
ネットで検索しましたら、下記が有りましたのでそれを参考にしました。
http://detail.chiebukuro.yahoo.co.jp/qa/question …
http://khurata.dtdns.net/QA/q1088973685/
済みません。yambejpさんが正解と思われるhtmlのソースをご提示願えないでしょうか。
宜しく、お願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- HTML・CSS 【CSS】:hasで可能? imgを含むtr要素を選択したい 1 2022/11/17 14:36
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- Perl PERL 1 2022/04/26 14:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
tableでcolspanを使うと次行以...
-
Dreamweaverで行間の調整
-
HTMLで作成した表の一部を非表...
-
テーブルのヘッダとボディの幅...
-
TRタグの余白をcssで設定するには
-
テーブルの行を折りたたみたい...
-
cssで、表示されるテキストによ...
-
テーブルの枠自体を折り曲げる
-
構文チェックサイトでチェック...
-
テーブルの表示がずれます
-
テーブルで作れるのでしょうか?
-
テーブルのセルが空の時
-
テーブル<TD>内に均等割付で表示
-
tdなどの閉じタグは省略しても...
-
htmlのtable内に画像
-
tableにtableをネストした場合
-
テーブルを挿入すると他のCSSと...
-
HTMLで文とテーブルの間が空く。
-
テーブルでセルの枠線を消す(CSS)
-
Web画面作成での表形式のスクロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブルの行を折りたたみたい...
-
TRタグの余白をcssで設定するには
-
tableにul,または,olを入れられ...
-
テーブルの任意の列を非表示に...
-
テーブルのヘッダとボディの幅...
-
中に<table></table>が使えるア...
-
cssで、表示されるテキストによ...
-
テーブルのセルに画像をピッタ...
-
ホームページ 表の上の余白を...
-
文字列が入っているtdを削除せ...
-
tableの要素(tr、td)に一...
-
テーブルの表示がずれます
-
tdなどの閉じタグは省略しても...
-
HTML <td></td>タグ セル内余...
-
EXCELからhtmlへの変換で罫線が...
-
HTMLのテーブルで桁をそろ...
-
html・cssで日付をキレイに揃え...
-
tableでcolspanを使うと次行以...
-
逆L字の表(table)組み
-
CSSだけで<table>の<td>や<tr>...
おすすめ情報
これは多分に、theadとtbodyでそれぞれのtableを用意をすると言う事でしょうか。これに該当するかは分かりませんが。これに該当する物が下記のページに有りましたが。ここでは、theadとtbodyの枠がずれると言う事でピクセルを数値で指定をしています。すこし、めんどうですが。こう言う方法で無いとずれると言う事でしょうか。
http://k-hiura.cocolog-nifty.com/blog/2013/07/ta …