アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

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

※ホームページビルダー、KompoZerの善し悪しは無視してください。

A 回答 (5件)

文法的にはどちらも正しいです。


ブラウザの種類やHTMLのモードによって、tdが空だと、見え方が違うケースがあります。
tableでborderを指定したときに、へこんで見えるかどうか。空でないとかならずへこんで見えます。
「<td></td> と、<td><BR>」の回答画像1
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/10/17 05:31

tr,tdはtable内の各子要素。

display:block;にすれば分かる。
本来は、セル内を空にしてはいけない。他のタグも同様に空にしてはいけない。

http://oshiete.goo.ne.jp/qa/489155.html
にもあるように、妥協する場合には、
CSS もしくは、 が良いのでは? 賛否両論でしょうけど。

br は改行だから無駄に改行するより良いかも。
    • good
    • 0
この回答へのお礼

ありがとうございました。

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

お礼日時:2010/10/17 07:10

文法的にはどちらも正しいです。



論理的に正しいかどうかは意見が分かれると思います。


<td></td>と書かずに、何かを入れるのは、
テーブルのセル(表のマス目)に何も書かれていないと、枠線が表示されないという問題に対応するためです。
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/10/17 05:39

<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/で検証してみてはいかがでしょうか?
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/10/17 05:38

たぶんですが、<td></td>だと枠がきちんと表示されない(不完全)になるはずです。

だからでは?

私はちなみに全角スペース文字を入れてます。たしか半角スペース文字でもうまくいかないはずです。やってみられるとわかるかも。

ところで<br/> と閉じタグにしてほしいとこですね、気分的には。
    • good
    • 0
この回答へのお礼

ありがとうございました。

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

お礼日時:2010/10/17 05:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!