• ベストアンサー

<td></td> と、<td><BR></td>

<td></td> と、<td><BR></td> ホームページビルダーで作ったホムペを、KompoZerというHTMLエディタで開くと、 テーブルのなにも入っていないセルに<BR>タグが勝手に挿入されてしまいます。 <td></td> と、<td><br></td> は、 ブラウザ上ではどちらでもちゃんと表示されるのですが、 HTML文法的にはどちらが正しいのでしょうか? また、どちらも正しい場合、<br>がある・ないで、違いがあるのでしょうか? ※ホームページビルダー、KompoZerの善し悪しは無視してください。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

文法的にはどちらも正しいです。 ブラウザの種類やHTMLのモードによって、tdが空だと、見え方が違うケースがあります。 tableでborderを指定したときに、へこんで見えるかどうか。空でないとかならずへこんで見えます。

lcyfer
質問者

お礼

なるほど、なるほどです! 百聞は一見にしかず、画像を付けてくださったおかげで違いを簡単に理解することができました。 ありがとうございました。

その他の回答 (4)

  • naokita
  • ベストアンサー率57% (1008/1745)
回答No.5

tr,tdはtable内の各子要素。display:block;にすれば分かる。 本来は、セル内を空にしてはいけない。他のタグも同様に空にしてはいけない。 http://okwave.jp/qa/q489155.html にもあるように、妥協する場合には、 CSS もしくは、&nbsp; が良いのでは? 賛否両論でしょうけど。 br は改行だから無駄に改行するより良いかも。

lcyfer
質問者

お礼

ありがとうございました。 display:block; は使ったことがなかったので勉強になりました。

回答No.4

文法的にはどちらも正しいです。 論理的に正しいかどうかは意見が分かれると思います。 <td></td>と書かずに、何かを入れるのは、 テーブルのセル(表のマス目)に何も書かれていないと、枠線が表示されないという問題に対応するためです。

lcyfer
質問者

お礼

簡潔にお答えいただき、ありがとうございました。

  • yasu_0_0
  • ベストアンサー率50% (2/4)
回答No.3

<td>はテーブルの中にあるセルを意味します。文法的には<table>の中に<tr>が入り、<td>が入ります。 <table>   <tr><!--trは列を意味します。-->     <td>テキスト</td><td>テキスト</td><td>テキスト</td>   </tr><!--列終了--> </table> というふうになります。 table,tr,tdは全てブロック要素でブロック要素の中にはブロック要素とインライン要素が入れられます。<br>は改行の意味でインライン要素なので文法的には間違っていないです。<td></td>の内容が空の場合、IEだと枠線が表示されないようです。だから<br>もしくは空白&nbsp;をいれればいいんじゃないでしょうか? 気になるようであればW3CのHTMLの文法チェックサービスhttp://validator.w3.org/で検証してみてはいかがでしょうか?

lcyfer
質問者

お礼

ありがとうございました。 ホームページビルダーでは、空きセルの枠線を表示させようとすると、全角空白か&nbsp;を入れる必要がありましたが、 brでも枠線が表示されるんですね。

noname#122246
noname#122246
回答No.2

たぶんですが、<td></td>だと枠がきちんと表示されない(不完全)になるはずです。だからでは? 私はちなみに全角スペース文字を入れてます。たしか半角スペース文字でもうまくいかないはずです。やってみられるとわかるかも。 ところで<br/> と閉じタグにしてほしいとこですね、気分的には。

lcyfer
質問者

お礼

ありがとうございました。 ホームページビルダーに慣れてるせいか、終了タグ以外で“/”斜め棒を使う習慣が身についていません (^_^;)

関連するQ&A