blue-phoenix
@blue-phoenix

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

tableで表が生成されない

html、cssでコーディングをしている者です。
以下のように表を作りたいのですが枠が表示されません。

<table>
<tr>
<th>60fps</th>
<th>オープンフィールド</th>
<th>4K画質</th>
</tr>
</table>

この記述はbody内に、間違いを減らそうとシンプルにtdやtheadも消しています。
この最低限簡略化したものでもできないのはどうしてでしょうか?
ちなみに書いているエディターはVScodeです。
御教授お願いします。

1

2Answer

<table border="1">

にしてみてはいかがでしょうか?指定しない場合幅が0だった気がします。

2Like

Comments

  1. @blue-phoenix

    Questioner

    うおおお、できたあああ!
    なるほど、borderも書かないと太さとかも関わるんですね!
    これは盲点でした・・・動画とかもこういうのを教えてくれないので。
    とにかく助かりました、どうもあにがとございました!!!

  2. border 属性 は HTML5 では(ということは10年以上前から)非推奨であり、新しいサイトでは使わないほうがいいです。

  3. borderを推奨してるように見えるのであれば申し訳ないです。
    そういう意図ではなく、cssでコーディングしてらっしゃるようですから、おそらく簡略化していない状態ではテーブルの枠は見えてるはずです。それを踏まえて下記の質問に答えたつもりです。

    この最低限簡略化したものでもできないのはどうしてでしょうか?

    枠が0だからではないですか、と。

  4. 「簡略化したものでもできない」ということは簡略化する前もできていないような? ともかく、推奨する意図がないことは承知しました。


    完全に蛇足ですが、 <table> に何も属性を書かなかったときの挙動について興味本位で調べました。 HTML 4.01 では、枠の表示スタイルを決める frame 属性 のデフォルト値が "void" つまり枠線非表示になっている。 border 属性 に非0の数値を指定すると、枠線がその幅になると共に frame="border" (4辺に枠線を表示)が暗黙にセットされる。とのことでした。

    <table> と書くと枠線が表示されないのは(少なくとも仕様上は)昔からのようです。私の回答で「モダンなブラウザでは」と書いたのは間違いだったので、訂正しました。

    現行の HTML Standard では、 border 属性に非負整数値を指定すると CSS の border-{top,bottom,left,right}-width プロパティにそれを指定したものと解釈されるようですframe 属性の挙動については何の説明もありません。今の Chrome だと <table frame="border"> だけで幅1pxの枠線が表示されますが、後方互換的な挙動で当てにはできないなと思いました。以上蛇足でした。

モダンなブラウザでは(昔からでした)テーブルの枠線はデフォルトで表示しないようになっているからです。枠線を表示するなら CSS で指定してください。やり方は以下のページを見ると分かりやすいと思います。

1Like

Comments

  1. @blue-phoenix

    Questioner

    こういった一覧サイトもあるんですね、参考にしておきます。どうもでした!
    質問は終わりにします!!

Your answer might help someone💌