- ベストアンサー
<td></td> と、<td><BR></td>
<td></td> と、<td><BR></td> ホームページビルダーで作ったホムペを、KompoZerというHTMLエディタで開くと、 テーブルのなにも入っていないセルに<BR>タグが勝手に挿入されてしまいます。 <td></td> と、<td><br></td> は、 ブラウザ上ではどちらでもちゃんと表示されるのですが、 HTML文法的にはどちらが正しいのでしょうか? また、どちらも正しい場合、<br>がある・ないで、違いがあるのでしょうか? ※ホームページビルダー、KompoZerの善し悪しは無視してください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (4)
- naokita
- ベストアンサー率57% (1008/1745)
tr,tdはtable内の各子要素。display:block;にすれば分かる。 本来は、セル内を空にしてはいけない。他のタグも同様に空にしてはいけない。 http://okwave.jp/qa/q489155.html にもあるように、妥協する場合には、 CSS もしくは、 が良いのでは? 賛否両論でしょうけど。 br は改行だから無駄に改行するより良いかも。
お礼
ありがとうございました。 display:block; は使ったことがなかったので勉強になりました。
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
文法的にはどちらも正しいです。 論理的に正しいかどうかは意見が分かれると思います。 <td></td>と書かずに、何かを入れるのは、 テーブルのセル(表のマス目)に何も書かれていないと、枠線が表示されないという問題に対応するためです。
お礼
簡潔にお答えいただき、ありがとうございました。
- yasu_0_0
- ベストアンサー率50% (2/4)
<td>はテーブルの中にあるセルを意味します。文法的には<table>の中に<tr>が入り、<td>が入ります。 <table> <tr><!--trは列を意味します。--> <td>テキスト</td><td>テキスト</td><td>テキスト</td> </tr><!--列終了--> </table> というふうになります。 table,tr,tdは全てブロック要素でブロック要素の中にはブロック要素とインライン要素が入れられます。<br>は改行の意味でインライン要素なので文法的には間違っていないです。<td></td>の内容が空の場合、IEだと枠線が表示されないようです。だから<br>もしくは空白 をいれればいいんじゃないでしょうか? 気になるようであればW3CのHTMLの文法チェックサービスhttp://validator.w3.org/で検証してみてはいかがでしょうか?
お礼
ありがとうございました。 ホームページビルダーでは、空きセルの枠線を表示させようとすると、全角空白か を入れる必要がありましたが、 brでも枠線が表示されるんですね。
たぶんですが、<td></td>だと枠がきちんと表示されない(不完全)になるはずです。だからでは? 私はちなみに全角スペース文字を入れてます。たしか半角スペース文字でもうまくいかないはずです。やってみられるとわかるかも。 ところで<br/> と閉じタグにしてほしいとこですね、気分的には。
お礼
ありがとうございました。 ホームページビルダーに慣れてるせいか、終了タグ以外で“/”斜め棒を使う習慣が身についていません (^_^;)
お礼
なるほど、なるほどです! 百聞は一見にしかず、画像を付けてくださったおかげで違いを簡単に理解することができました。 ありがとうございました。