質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Q&A

解決済

2回答

1183閲覧

【HTML】テーブルの幅を変更しようとしても、変更されない

kazu0630

総合スコア26

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

0グッド

0クリップ

投稿2021/10/14 10:12

編集2021/10/14 11:15

お世話になっております。

HTMLの学習をしております。

テーブルを<tr>タグで作成し、列幅をCSSで調整しようとしましたが、幅が広がりませんでした。

CSSの読み込みができていることは確認ができているので、文法上の間違いだと考えておりますが、数時間原因調査をしてもわかりませんでした。

どなたか、原因・解決策をご教示願えませんでしょうか。
※例では、CSSのwidthプロパティの値を極端な値をあえて設定しています。
※横スクロールしてでも、列幅を固定したいと考えております。

HTML

1<link rel="stylesheet" href="~/css/test.css"> 2 3 4 5<table border="1"> 6 <tr> 7 <th class="test">test1</th> 8 <th class="test">test2</th> 9 <th class="test">test3</th> 10 <th class="test">test4</th> 11 <th class="test">test5</th> 12 <th class="test">test6</th> 13 <th class="test">test7</th> 14 <th class="test">test8</th> 15 <th class="test">test9</th> 16 <th class="test">test10</th> 17 18 </tr> 19</table>

CSS

1.test { 2 table-layout:fixed; 3 width:1000000px; 4 background-color:yellow; 5}

実行結果

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

table-layoutプロパティはtable要素に付けるんじゃないですかね。
それはともかく
今はsurface_0さんのおっしゃるように親要素のtableの幅に収まるよう調整されているので、test10までのセルが画面いっぱいになっているのではないでしょうか。
10個のセルを合わせても画面幅より小さくなるようなwidthを指定すれば、設定が効いているのがわかると思います。
また、試しにtable { width: 200%; }のように設定すれば、親要素が大きくなって画面からはみ出て横スクロールバーが出るようになると思います。

投稿2021/10/14 10:56

itagagaki

総合スコア8402

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kazu0630

2021/10/14 11:18

ご回答いただき、ありがとうございます。 ご回答いただいた内容で、すべてが解決致しました。 「親要素」のtable幅に収まるように調整されるというところがポイントでした。
guest

0

文法は間違っていませんのでご安心を。

一応width自体は効いています。
但しth要素はdisplay: table-cellが適用されるので、
widthを指定しても親要素のtableの幅に収まるように調整されます。

試しに要素を減らして幅を調整してみると変動するのが確認できると思います。

投稿2021/10/14 10:41

surface_0

総合スコア497

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

surface_0

2021/10/14 11:02

itagagakiさんがおっしゃっている > table-layoutプロパティはtable要素に付けるんじゃないですかね。 というのは確かにそうです。 見落としていました。失礼しました。
kazu0630

2021/10/14 11:13

ご回答いただき、ありがとうございます。 教えていただいたことで、うまく行かない理由が分かりました。 「table-layout:fixed;」とwidthを指定すれば、幅を指定できるかという記事をいくらか見ていたのですが、「table-layout:fixed;」を指定しても、「display: table-cell」の設定の方が有効になるんですかね・・? 追加の質問になって申し訳ありませんが、横スクロールしてでも、列幅を固定して表示させたい場合、どのようにすれば良いでしょうか。 displayプロパティをいじればうまくいきそうだと思い、いろいろと試してみましたが、うまくいきませんでした・・。
kazu0630

2021/10/14 11:19

surface_0さんとitagagakiさんのご回答頂いた内容で、解決致しました。 初歩的なことにも関わらず、ご回答いただき、ありがとうございました。
surface_0

2021/10/14 11:21

> 追加の質問になって申し訳ありませんが、横スクロールしてでも、列幅を固定して表示させたい場合、どのようにすれば良いでしょうか。 以下のようにthの内側に幅を固定できる要素を入れてやれば強引に幅を確保することができます。 <th class="test"><div class="th-inner">test1</div></th> .th-inner { width: 500px; }
kazu0630

2021/10/14 11:25

ご回答いただき、ありがとうございます。 参考にさせていただき、理解を深めます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問