
<table>の<th><td>の幅がセルの内容によって変わらないように
table{table-layout:fixed;}を使っていたのですが、
別の問題を解決するために調べていたところ、
セルの中に何もない状態でも、
table{table-layout:fixed;}の有無で<th><td>の幅が異なるようです。
添付画像のように、table{table-layout:fixed;}を消したら幅が狭くなりました。
このように幅が異なるのはどのような理由からでしょうか?
また、table{table-layout:fixed;}なしで
table{table-layout:fixed;}がある場合と同じ幅にするには、どうしたら良いでしょうか?
試したtest2.htmは次の通りです。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>てすと</title>
<link rel="stylesheet" href="test2.css">
</head>
<body>
<h1>テスト(table{table-layout:fixed;}あり)</h1>
<table>
<colgroup>
<col span="1" class="left1">
<col span="1" class="left2">
<col span="1" class="left3">
<col span="10" class="left4">
</colgroup>
<thead>
<tr>
<th></th><th></th><th></th><th></th>
<th></th><th></th><th></th><th></th>
<th></th><th></th><th></th><th></th>
<th></th>
</tr>
</thead>
<tr>
<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>
</tr>
<tr>
<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>
</tr>
</table>
</body>
</html>
test2.cssは次の通りです。
@charset "UTF-8";
h1{height:50px;}
table{table-layout:fixed;}
table,tr{width:1300px;}
th,td{border:solid 5px black;text-align:center;height:100px;}
th{background-color:red;}
tr:nth-child(2n+1){background-color:blue;}
tr:nth-child(2n+0){background-color:white;}
.left1{width:330px;}
.left2{width:70px;}
.left3{width:250px;}
.left4{width:65px;}
よろしくお願いします。

A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
ちなみに、以前
テーブルをスクロールさせるときのスクロールの位置 - HTML 解決済 | 教えて!goo( https://oshiete.goo.ne.jp/qa/7105490.html )
でも挑戦したのですが・・・
<table>の<thead>をposition:fixed;にすると<td>の幅がリセットされる - Webデザイン・CSS | 教えて!goo( https://oshiete.goo.ne.jp/qa/9273531.html )
のほうが良いですね。
回答ありがとうございます。
Javascriptを使わずに<thead>を固定する方法について、
Webで検索するなどして勉強しているのですが、
私のソースのどこをどのように変えたら良いのか試行錯誤中で、
なかなか理解できず、
最初から作り直す必要があるのかなと思っています。
No.1
- 回答日時:
<table>の<thead>をposition:fixed;にすると<td>の幅がリセットされる - Webデザイン・CSS | 教えて!goo(
https://oshiete.goo.ne.jp/qa/9273531.html )のように、スタイルシート側ではtableを使わないのが常道です。
特にIEが面倒になるのでね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
中に<table></table>が使えるア...
-
テーブルの行を折りたたみたい...
-
tableコーディング 幅ピッタリ...
-
tableにul,または,olを入れられ...
-
テーブルの行の高さを指定する...
-
firefoxでフラットなボーダーを...
-
テーブルのヘッダとボディの幅...
-
テーブルタグをcssでデザインし...
-
テーブルの任意の列を非表示に...
-
トーナメント表の製作
-
テーブル結合 縦横両方するには?
-
テーブルタグの中にdivを含めて...
-
html5のテーブル内でdivのタブ...
-
ウィンドウのサイズを変えても...
-
<th>タグを使っても太字にしな...
-
htmlのボタンを左寄席にしたい
-
TABLEのセルの中の文字を行単位...
-
テーブル内のセル間にスペース...
-
テーブルでスクロールを同期したい
-
テーブルとテーブルの間隔について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブルの行を折りたたみたい...
-
テーブルの任意の列を非表示に...
-
テーブルのセルに画像をピッタ...
-
TRタグの余白をcssで設定するには
-
中に<table></table>が使えるア...
-
cssで、表示されるテキストによ...
-
テーブルのヘッダとボディの幅...
-
tableにul,または,olを入れられ...
-
ホームページ 表の上の余白を...
-
文字列が入っているtdを削除せ...
-
tableの要素(tr、td)に一...
-
テーブルの表示がずれます
-
テーブルタグのセルの幅の一部...
-
EXCELからhtmlへの変換で罫線が...
-
逆L字の表(table)組み
-
値が0なら非表示にしたい
-
CSSだけで<table>の<td>や<tr>...
-
テーブルの外側の線を消す
-
HTMLで文とテーブルの間が空く。
-
表(テーブル)内の文字サイズ...
おすすめ情報
test2.cssの
table{table-layout:fixed;}を
table{table-layout:fixed;border-collapse:collapse;}にして、
th,td{border:solid 5px black;text-align:center;height:100px;}を
th,td{border:solid 0px black;text-align:center;height:100px;}にしたら、
table-layout:fixed; の有無で<th><td>の幅が同じになりました。