tableタグを使って次のようなことをしたいと考えています。
・table要素の親はdiv要素
・div要素にはサイズ(width/height)が指定されており、overflow:hiddenとしてある。
・table要素にはサイズを指定しない
・td要素にはサイズを指定する →つまり、tableのサイズはtdのサイズで決定する
HTML/CSSは次の通りです。
-----------------------------------------------------
div { width: 300px; overflow: hidden; }
table { table-layout: fixed; }
td { width: 170px; }
<div>
<table><tr>
<td>a</td><td>b</td><td>c</td>
</tr></table>
</div>
-----------------------------------------------------
このコードを「DOCTYPE宣言を書かずに」IE8で開くと、想定通りの表示になりますが、
<!DOCTYPE html>と記述すると、tableの横幅が300pxに詰められてしまいます。
td要素のwidth指定が働かず、親のdiv要素のwidthに無理やり押し込められてしまうようです。
また、FirefoxではDOCTYPE宣言無しでも同様の問題が起きてしまいます。
table内の列数は固定ではないので、tableに対してwidth指定はしたくありません。
何か書き方が間違っているのでしょうか。
あるいは、標準準拠モードの仕様では、そもそもできないことをやろうとしているのでしょうか。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
標準モードでは、それが正しい処理ですね。
tableのwidth:プロパティのデフォルトはautoですから
ところでされたいことが、つかめないのですが、
tdがひとつしかないときは、tableの巾は?
tdが、二つのときは、tableの巾は? 170px×2 = 340px < 300px(div巾)
tdが、さらに大きいときは?
そもそも、なぜ oveflow:hiddenでなければならないか??、それじゃ内容が見えなくなりますけど・・
ありがとうございます。
tdが2つなら、170px * 2 でtableのwidthは340pxになってほしいです。
overflow:hiddenとしていますが、別途スクロールバーを配置するので、
それでスクロールして見えるようにします。
要は、Excelの「ウィンドウ枠を固定」のような、「ヘッダ列」と「ヘッダ行」を持つ表を作りたいのです。
これをするにはtableを2x2で4つ並べて、スクロールをJavaScriptで制御する必要があります。
これはoverflow:scrollでは実現できないので、overflow:hiddenを使っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
- 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 flex の各子要素を横幅 100% にしたい 1 2022/09/22 21:25
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルとテーブルの間隔について
-
HTML5で、テーブル内tdタグの高...
-
<th>タグを使っても太字にしな...
-
TABLEのセルの中の文字を行単位...
-
正規表現で「より前」と「より後」
-
CSSで特定のテーブルだけに...
-
同じ幅指定のつもりなのに、ブ...
-
tableを画面中央に配置する方法
-
フォームタグのプルタウンの隙...
-
【HTML】セル同士の間隔を指定...
-
textareaの外側の文字が下付き...
-
画面サイズを取得し、テーブル...
-
テーブルデータを折り返して表...
-
tableの位置がIEとその他ブラウ...
-
html5のテーブル内でdivのタブ...
-
<li>と<table>タグについて
-
HTMLでテーブルをfloatで中央配...
-
table 幅固定で、端までいった...
-
HTMLのテーブルをExcelにCopy&P...
-
table表を横に並べる際の間隔指定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TABLEのセルの中の文字を行単位...
-
テーブルとテーブルの間隔について
-
<th>タグを使っても太字にしな...
-
CSSで特定のテーブルだけに...
-
HTML5で、テーブル内tdタグの高...
-
HTML tableのセルにtextareaを...
-
テーブル内のセル間にスペース...
-
画面幅に合わせてテーブルのカ...
-
同じ幅指定のつもりなのに、ブ...
-
table表を横に並べる際の間隔指定
-
(HTML)Tableを任意の位置に置...
-
正規表現で「より前」と「より後」
-
CSS スタイルを子要素の子要素...
-
tableの位置がIEとその他ブラウ...
-
<fieldset>タグについて
-
<table>のclass指定が継承されない
-
html5のテーブル内でdivのタブ...
-
HTMLのテーブルをExcelにCopy&P...
-
テーブルデータを折り返して表...
-
tableのcellpadding="0" cellsp...
おすすめ情報