• 締切済み

「""」と「’」の違いは何でしょうか?

とあるサイトのソースを見ると <div id="header"> となってる場合と <div id='navibox'> となってる場合がありました。 全てダブルコーテーション「""」でくくるべきだと思っていたのですが 「’」でもいいのでしょうか? 「""」と「’」の違いは何でしょうか?

みんなの回答

  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.3

属性値の書き方ですが、以下の三つすべてが同じ意味になります。 <div id=hoge> <div id='hoge'> <div id="hoge"> 一般に情報処理の世界では、 単引用符(U+0027)と二重引用符(U+0022)に別の意味を持たせる場合が多々ありますが、 HTML では両者を同じものとして扱っているようです。 調べてみると HTML の前身である SGML からしてそうでした。 更に言うと、アクサングラーブ(U+0060)をも引用符として認める実装があった様で、 現在の仕様にもその配慮があるようです。 http://www.w3.org/TR/html5/syntax.html#attributes-0 ↑ 祝! HTML5 正式勧告化 さて、なぜこの様な仕様になっているのかですが、 * 引用を表す表現が、米国式は二重引用符で英国式は単引用符で囲むから、両者に配慮した * 英文や仏文で多用される「アポストロフィ」や「ダブルクォート」をエスケープ無しに使いたいから あたりではないかと推測しているのですが、真相はわかりません。

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

仕様上で疑義があったらまず仕様書を確認する癖をつけましょう。 【引用】____________ここから ★ デフォルトでは、SGML規定はすべての属性値を二重引用符(ASCII十進34)または単引用符(ASCII十進39)のどちらかを用いて 囲うよう求めている。  二重引用符で属性値が囲われる場合は単引用符がこの属性値の一部を成し得るし、逆の囲い方も可能である。 属性値として引用符を表すことについて、著者は数値文字参照を用いることもできる。二重引用符は"で、単引用符は'である。二重引用符については文字実体参照 &quot;を用いることもできる。  属性の値を引用符で囲わなくてよいケースもある。属性値が、アルファベット(a-z and A-Z)、数字(0-9)、ハイフン(ASCII十進45)、ピリオド(ASCII十進46)、アンダースコア(ASCII十進95)、及びコロン(ASCII十進58)のみを含む場合である。本仕様は、引用符が省略可能な場合であっても省略しないことを推奨する。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[On SGML and HTML (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/intro/sgmltut.html#h-3.2.2 )]より ★XHTMLでは、すべての属性値は""で囲まなければなりません。 ★XHTMLでは、要素名、属性名とも小文字でなければなりません。

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.1

どちらでも問題ありません。 ダブルクォーテーションの中ではシングルクォーテーションが使用できますし、 シングルクォーテーションの中ではダブルクォーテーションが使用できます。 ただ、HTMLにおいては属性の中にそれらを使用する用途があまりありませんので 必要性を感じませんが、JavaScriptなどと連携する場合などでは使用します。 たとえば 「OK」ボタンをクリックでJavaScriptの「alert」に引数「文字列」を渡す場合は 以下のどちらのコードでも動作致します。 <input type=button value="OK" onclick="alert('文字列')"> <input type=button value="OK" onclick='alert("文字列")'>