【HTML】なぜ改行してはいけないのか?


(例:※全角大文字で表記しています)<IMG SRC=”HOGEHOGE.JPG” ALT=”ほげほげ”> 
という1文があったとします。この場合、<と>の間は改行(¥N)しないものというのが通例のようですが、「なぜ、改行していはいけない」のか、規約規定など根拠を示して紹介しているページを探してください。

よろしくお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/12/10 17:32:48
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:van-dine No.1

回答回数108ベストアンサー獲得回数11

ポイント30pt

http://www.asahi-net.or.jp/~wq6k-yn/kaigyo.html

上のリンク先にも書いてあるように、タグ内で空白を入れられるところ("~"内を除く)なら改行してもOKです。

<a href="http://q.hatena.ne.jp" title="人力検索はてな">人力検索はてな</a>
<
 a
 href="http://q.hatena.ne.jp"
 title="人力検索はてな"
>
人力検索はてな
<
 /a
>

どちらの書き方も認められます。

<a href="http://q.hatena.
ne.jp" title="人力検索はてな">人力検索はてな</a>
<a href="http://q.hatena.ne.jp" tit
le="人力検索はてな">人力検索はてな</a>

こんな書き方は認められません。

ただ、古いブラウザの中には、

人力検索
はてな<br>
<img src="photo1.jpg">
<img src="photo2.jpg">

と書くと、「人力検索」と「はてな」の間や

2つの画像の中にスペースが入ってしまうバグがあるものが存在します。

対策として、一行で書くか、下のものは規則を応用して

<img src="photo1.jpg"
><img src="photo2.jpg">

という書き方ができるのですが、今のブラウザだけを対象にするなら気にしない方がいいでしょう。

画面におさまりやすく、構造がわかりやすく、読みやすいコードを心がけましょう。

読みにくいコードは更新の意欲をそぐ原因になりかねません。

一例をあげます。

<table>
  <tr>
    <th>
      お店
    </th>
    <th>
      電話番号
    </th>
  </tr>
  <tr>
    <td>
      ピザ屋
    </td>
    <td>
      3333-xxxx
    </td>
  </tr>
  <tr>
    <td>
      おそば屋
    </td>
    <td>
      5555-xxxx
    </td>
  </tr>
</table>
id:makoohira No.2

回答回数136ベストアンサー獲得回数4

ポイント29pt

すみません、参照リンクは、先ほどのよりこちらのが参考になると思います。

http://www.atmarkit.co.jp/fxml/rensai/xmlwomanabou10/learning-xm...

追記なので、こちらはポイントは不要です。

id:makoohira No.3

回答回数136ベストアンサー獲得回数4

ポイント1pt

あえて理屈を付けるなら、「htmlはxmlをベースにした言語なので、できるだけxmlの記述法に従ったほうが美しい」

という考えからだと思われます。xmlでは、タグの中で改行を挟むと、読み取れなくなります。

しかし、htmlの場合は、

<img
  src="...やったら長いファイル名..."
  alt="...やったら長い代替テキスト..."
  title="...やったら長い内容解説..."
  onclick="...javascriptの処理..."
  onmouseover="...javascriptの処理..."
  onmouseout="...javascriptの処理..."
  width=""
  height=""
/>

などと書いても、読みやすい、美しいと思えば、それでいいのです。

xmlについてはこちら

http://ja.wikipedia.org/wiki/Extensible_Markup_Language

id:frkw2004 No.4

回答回数194ベストアンサー獲得回数21

ポイント30pt

「htmlはxmlをベースにした」というのは誤解を招く書き方ですね。歴史的にhtmlのほうが古いのですから。


タグとは、ブラウザに対する命令と思ってもいいでしょう。命令ですので、ブラウザが理解できる書き方にしないといけません。

ブラウザがどのようにタグを理解するか、というのはw3cに基づきます。

http://www.asahi-net.or.jp/~SD5A-UCD/rec-html401j/cover.html

タグの中身が分かるように、単語の中で改行はしてはいけないし、リンク先アドレスなどひとつの意味に当たるようなものの中では改行はできません(したらブラウザが理解できず、へんな表示になるでしょう)。

id:naleringar

まとめ返信にて失礼いたします。

回答者さんみなさんの内容、リンク先など頑張って読んでみて、

1・「(要素の切れ目で)改行してはいけない」という決まりはない(改行してもよい)

2・構造がわかりやすく、読みやすいコードを心がけるべき

3・ただし、ケースによって「読み取れない場合もある」

という理解をしました。

今回、「改行を含まないでほしい環境」で利用したいHTMLについて、改行入りソースを作成される方に根拠をお知らせできればと思ったのですが、「そういう環境だから入れないでね」にてお願いするしかないようですね。

みなさま、ありがとうございます。

2008/12/10 17:31:01
  • id:idetky
    > 「なぜ、改行していはいけない」

    通例ですから、別に改行していいんですよ?
    なぜ改行「しないのか」という質問なら、それはコードが読みにくいからです。
  • id:practicalscheme
    回答2,3に対するコメントです。

    > xmlでは、タグの中で改行を挟むと、読み取れなくなります。

    そんなことはありません。タグの中 ('<' と '>' の間) についてはvan-dineさんの回答のように、空白が許される箇所なら改行も許されます。
    makoohiraさんの上げておられるリンクは、要素の中身(開きタグと閉じタグの間)の改行についての話です。
  • id:van-dine
    解答3ですが、HTMLのベースはSGMLです。

    http://ja.wikipedia.org/wiki/Standard_Generalized_Markup_Language
  • id:makoohira
    すみません、いろいろ誤解してたみたいです。
    不勉強で、お手間おかけしました...。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません