• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:タグ内での改行について)

タグ内での改行について

このQ&Aのポイント
  • テーブルタグを使用して画像を配置する際、改行が見栄えに影響する場合があります。
  • 改行をなくすことで、画像と罫線の間にできる隙間をなくすことができます。
  • ブラウザによっても表示が異なる場合があるため、ブラウザの種類にも注意が必要です。

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

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.3

>古い書き方だから改行による崩れもおきる、ということなのでしょうか??  正確に言うと「IEの互換モードでは」と言う事です。IEは以前、他のブラウザを追い落とすために、独自仕様でユーザーの囲い込みをしてきました。そのために、IEでないと表示できないページがたくさん増えました。HTML4.01(1999)以降「Webページはより複雑化し、限られた環境にしか適応しなくなり、相互運用性問題に悩まされることとなり、障害を持つ人々にアクセス障壁が設けられてしまう。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/present/styles.html#h-14.1 )」の反省から、ウェブ標準が浸透して、やっと最近になってIEもウェブ標準に従うことになりました。  ところが、過去のIEの仕様に合わせたページもたくさん残っていますから、それらを表示するために互換モードがあります。そのためです。IEだけの問題で、他のブラウザではそのようなことは置きません。  HTMLでは、『本仕様は、・・・【中略】・・・スペース文字類については、レンダリングその他の挙動を示すことはない。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/text.html#h-9.1 )』  と明記されています。よって<img src="" width="" height="" alt="">(改行)(水平タブ)</td>の(改行)(水平タブ)は無視されなければならないのです。!!  いずれにしても検証には他のウェブ標準なfirefoxなどの他のブラウザを使用するのが良いです。firefoxとfirebugで、何処がどう影響しているかはすぐ分かるはず。 ★tableを使ってはいけない・・ 「単に文書内容を整形する目的だけで表を用いるべきでない。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/tables.html#h-11.1 )」 「ページレイアウトの目的で表を用いる。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/present/styles.html#h-14.1 )」  これは、最も重要な基本です。

その他の回答 (2)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

tableに画像を入れることはあまりないですよ。tableをデザインのために使用するのはダメですから・・・ ちゃんと仕様どおりに書いて <table border="1">   <tbody><!-- tbodyは必須だよ -->     <tr>       <td>         <img src="./images/abc2.jpg" width="200" height="200" alt="" style="margin:0;">       </td>     </tr>   </tbody> </table> としてみましたが、--タブは  に置換してある。 <table border="1">   <tbody>     <tr>       <td><img src="./images/abc2.jpg" width="200" height="200" alt="" style="margin:0;"></td>     </tr>   </tbody> </table> と比較して差はありません。firefox,Opera,Chrome,safari,IE  唯一、差が出るのはIEが互換モードで動作しているときですね。   いまどき、互換モードでページを作成することはないですから、ちょっと気がつきませんでした。  ⇒DOCTYPEスイッチ-HTMLの基本( http://www.htmq.com/htmlkihon/302.shtml ) ※教科書的な説明で「改行は影響しない」と聞いていたので・・・。  そりゃそうでしょう。教科書には標準モードでしか説明しないはず。 ★ただし標準モードだと、わずかに隙間が開くはずです。  画像をデザイン目的で配置するなら、それはやめてスタイルシートできちんと配置しましょう。  また、必要があってtableにしても _<table border="1" class="test" summary="てすと"><!-- html4.01ならsummaryは必須 --> __<tbody> ___<tr> ____<td> _____<img src="./images/abc2.jpg" width="200" height="200" alt="" style="margin:0;"> ____</td> ___</tr> __</tbody> _</table> ※タブは_に置換してあるので戻す。 スタイルシートで table.test{ border-collapse:collapse; border:none; table.test tr td{ border:1 solid 1px; } きちんと指定すれば、余白はないはずです。どのブラウザも全く同じになるはず!!もちろん標準モードであること。

1029to
質問者

お礼

丁寧にタグまで書いていただきありがとうございます。 実は必要があって高校の教科書の問題を解いているのですが、 HTMLのバージョンがかなり古いものを使っているようで、ORUKAさんが必須と書いておられた <tbody>やimgタグの中の<style="margin:0;">も出てこないのです。 (教科書ではtableをまさにデザインのために使っていました汗) 現在はこんな書き方はもうされていないのでしょうが、教科書内から回答しなくてはいけないため困っていました・・・。 再び質問で申し訳ないのですが、古い書き方だから改行による崩れもおきる、ということなのでしょうか??

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

多くのブラウザで改行はブランクとして表示されます ただし複数の改行をいれてもブランクは一つです

1029to
質問者

お礼

早速のご回答ありがとうございます。 すみません・・・再び質問なのですが、先ほどの例ですとたとえば <tr> <td><img src="a.jpg"></td> </tr> <tr> の<tr>前後の改行のように、改行が影響しない(ブランクとして表示されない)場合もありますよね。 そのあたりがよくわからないのですが・・・ お時間ありましたら教えて下さい。

関連するQ&A