web-dev-qa-db-ja.com

一重引用符と二重引用符( 'vs ")

HTMLを手書きするときは、常に一重引用符を使用していました。私は常に二重引用符を使用する多くのレンダリングされたHTMLを使用します。これにより、HTMLが手書きで作成されたか生成されたかを判断できます。これはいいアイデアですか?

2つの違いは何ですか?どちらも機能し、すべての最新のブラウザーでサポートされていることは知っていますが、実際には異なる状況で一方が他方より優れているという本当の違いはありますか?

234
ctrlShiftBryan

W3 org said

デフォルトでは、SGMLでは、すべての属性値を二重引用符(ASCII 10進数34)または単一引用符(ASCII 10進数39)で区切る必要があります。値が二重引用符で区切られている場合、属性値内に単一引用符を含めることができます。逆の場合も同様です。著者は、二重引用符(")および一重引用符(')を表すために数字参照を使用することもできます。二重引用符の場合、作成者は文字エンティティ参照"を使用することもできます。

だから...違いはないようだ。あなたのスタイルにのみ依存します。

379
Aito

ほとんどの人が想像するように、私は"を最上位層として使用し、'を2番目の層として使用します。例えば

<a href="#" onclick="alert('Clicked!');">Click Me!</a>

その例では、両方を使用する必要がありますが、避けられません。

62
NibblyPig

Web開発者向けの引用規則

短い答え

HTMLでは、一重引用符( ')と二重引用符( ")の使用は互換性があり、違いはありません。

ただし、一貫性が推奨されるため、構文規則を選択して定期的に使用する必要があります。

長い答え

Web開発は、多くの場合、多くのプログラミング言語で構成されています。 HTML、JS、CSS、PHP、ASP、RoR、Python、ectこのため、プログラミング言語ごとに多くの構文規則があります。多くの場合、ある言語からの習慣は、「適切な」と見なされない場合でも、他の言語へと続きます。引用規則もこのカテゴリに分類されます。

しかし、私はHTMLをPHPとともに使用する傾向があります。 PHPには、単一引用符と二重引用符の間にmajorの違いがあります。二重引用符付きのPHPでは、「文字列のテキスト内に変数を直接挿入できます」。 (scriptingok.com)そして、単一引用符を使用すると、「テキストはそのまま表示されます」。 (scriptingok.com)

PHPは二重引用符で囲まれた文字列の処理に時間がかかります。 PHPパーサーは、文字列全体を事前に読み取って内部の変数を検出し、連結する必要があるため、単一引用符で囲まれた文字列よりも処理に時間がかかります。 (scriptingok.com)

一重引用符はサーバー上で簡単です。 PHPは文字列全体を事前に読み取る必要がないため、サーバーはより高速で快適に動作できます。 (scriptingok.com)

考慮すべきその他のもの

  1. 文字列内の二重引用符の頻度。文字列内で一重引用符( ')を使用するよりも頻繁に文字列内で二重引用符( ")を使用する必要があることがわかりました。
  2. 一重引用符を作成する方が簡単です。これはかなり自明ですが、明確にするために、Shiftキーを押したままにする必要がある回数を増やしてください。

私のコンベンション

PHPを理解した上で、サーバー最適化のためにデフォルトで文字列を単一引用符として表すという規則を(私自身と他の会社のために)設定しました。属性内のJavaScriptなど、引用符が必要な場合、文字列内で二重引用符が使用されます。次に例を示します。

<button onClick='func("param");'>Press Me</button>

もちろん、PHPにいて、パーサーに文字列内のPHP変数を処理させたい場合は、意図的に二重引用符を使用する必要があります。 $a='Awesome'; $b = "Not $a";

ソース

PHPでの単一引用符と二重引用符。 (n.d.)。 http://www.scriptingok.com/tutorial/Single-quotes-vs-double-quotes-in-PHP から2014年11月26日取得

25
Dustin Poissant

すべて同じ場合は、Shiftキーを押したままにする必要がないため、おそらく単一引用符を使用する方が適切です。キーストロークが少ない== RSIの可能性が低くなります。

13
stko

HTMLでは、"を使用するか'を使用するかは問題ではないと思いますが、ドキュメント全体で一貫して使用する必要があります。

私自身の使用法では、attributes/htmlが"を使用することを好みますが、すべてのjavascriptは'を代わりに使用します。

これにより、私にとっては読みやすく、確認しやすくなります。私の使用よりもあなたの使用の方が理にかなっている場合、変更の必要はありません。しかし、私にとって、あなたのコードはfeel乱雑です。個人的なものがすべてです。

11
David Thomas

実際、最良の方法はGoogleが推奨する方法です。二重引用符: https://google.github.io/styleguide/htmlcssguide.xml?showone=HTML_Quotation_Marks#HTML_Quotation_Marks

https://google.github.io/styleguide/htmlcssguide.xml?showone=HTML_Validity#HTML_Validity Googleからの引用されたアドバイス:「有効なHTMLの使用は、技術に関する学習に役立つ測定可能なベースライン品質属性です要件と制約、そして適切なHTMLの使用を保証します。」

8
Stuart

私はたくさんが同意しないことを知っていますが、これは私がしていることであり、私は本当にそのようなコーディングスタイルを楽しんでいます。

例:

<form method=post action=#>
<fieldset>
<legend>Register here: </legend>
  <label for=account>Account: </label>
  <input id=account type=text name=account required><br>
  <label for=password>Password: </label>
  <input id=password type=password name=password required><br>
...

二重引用符は、属性値にスペースがある場合などにのみ使用されます。

<form class="val1 val2 val3" method=post action=#>
  ...
</form>
5
Randy Tang

HTMLに二重引用符を使用する

つまり.

<div class="colorFont"></div>

JavaScriptに単一引用符を使用する

つまり.

$('#container').addClass('colorFont');
$('<div class="colorFont2></div>');
4
Alan Dong

Bootstrapを使用する際に問題が発生しましたが、二重引用符を使用した場合と一重引用符を使用した場合とでは問題がありました(機能しませんでした)。 class = 'row-fluid'は、class = "row-fluid"が機能するのに対し、最後のスパンが右端にきちんと座っているのではなく、他のスパンよりも下に落ちる問題を引き起こしました。

2
MikeP

次の場合、「」の代わりに「」を使用します。

<input value="user"/> //Standard html
<input value="user's choice"/> //Need to use single quote
<input onclick="alert('hi')"/> //When giving string as parameter for javascript function

次の場合は、 "の代わりに 'を使用します。

<input value='"User"'/> //Need to use double quote
var html = "<input name='username'/>" //When assigning html content to a javascript variable
1
a1204773

Htmlに違いはありませんが、別のプログラミング言語でhtmlを動的に生成する場合は、ある方法が別の方法より簡単な場合があります。

たとえばJavaでは、二重引用符を使用して文字列の開始と終了を示すため、文字列内に二重引用符を含める場合は、バックスラッシュでエスケープする必要があります。

String s = "<a href=\"link\">a Link</a>"

単一引用符ではこのような問題は発生しないため、単一引用符を使用すると、Javaでコードが読みやすくなります。

String s = "<a href='link'>a Link</a>"

特に、多くの属性を持つhtml要素を記述する必要がある場合(注:通常、jhtmlなどのライブラリを使用してJavaでhtmlを記述しますが、そうすることは必ずしも実用的ではありません)

1
Paul Taylor

asp.netを書いている場合、値を区切るためにEvalステートメントで二重引用符と単一引用符を使用する必要があることがあります-これは主に、C#インラインコードが文字ではなくevalコンテナの文字列を使用していることを知っているためです個人的には、どちらか一方のみを標準として使用し、それらを混在させないようにします。

1
Mauro

私はここでは初心者ですが、最初の引用符内で二重引用符を使用する場合にのみ単一引用符を使用します。明確でない場合は、例を示します。

<p align="center" title='One quote mark at the beginning so now I can
"cite".'> ... </p>

お役に立てば幸いです。

0
Marcin C