最近、私はこれをたくさん見ています:
<a href='http://widget-site-example.com/example.html'>
<img src='http://widget-site-example.com/ross.jpg' alt='Ross's Widget' />
</a>
HTMLで一重引用符を使用することは有効ですか? 上で強調したように、アポストロフィをエスケープする必要があるため、問題もあります。
最近、私はこれをたくさん見ています:
<a href='http://widget-site-example.com/example.html'>
<img src='http://widget-site-example.com/ross.jpg' alt='Ross's Widget' />
</a>
HTMLで一重引用符を使用することは有効ですか? 上で強調したように、アポストロフィをエスケープする必要があるため、問題もあります。
一重引用符を使用することは確かに有効です ( HTML 4.01、セクション 3.2.2 )。私はそのような傾向に気づいていませんが、おそらく、アクセスした Web サイトを強化するフレームワークが、たまたま単一引用符を使用して引用されている可能性があります。
二重引用符文字列リテラルを使用するプログラミング言語を使用して HTML を動的に生成する場合、単一引用符を使用すると便利です。
例えば
String.Format("<a href='{0}'>{1}</a>", Url, Desc)
PHP を使用して HTML を生成する場合は、次のようにする方が簡単です。
$html = "<img src='$url' />";
PHP は二重引用符で囲まれた文字列内の変数を解析するため、文字列と変数を文字列と連結するよりも。
二重引用符で囲まれた文字列を使用してその中の変数を解析している場合、または文字列連結演算子の使用を避けるために、誰かが PHP でそれを使用して " のエスケープを避けることができます。
例:
echo "<input type='text' value='$data'/>";
それ以外の
echo "<input type=\"text\" value=\"$data\" />";
また
echo '<input type="text" value="' . $data . '" />';
最近では、HTML には二重引用符、Javascript には一重引用符を常に使用しています。
ASP.NETでは、属性でデータバインディング式を使用している場合は、一重引用符を使用する方が簡単です。
<asp:TextBox runat="server" Text='<%# Bind("Name") %>' />
二重引用符を埋め込みたい場合は簡単です。
PHPでは、echoは複数のパラメーターを取ります。したがって、連結演算子を省略したい場合は、次のようなことを実行しても、二重引用符を使用できます。
echo '<input type="text" value="', $data, '" />';
(X)HTML では、単一引用符は完全に合法です。一方、バックスラッシュを使用してそれらをエスケープすることはできません。は、代替テキスト「Ross\」と空および/属性を持つ画像です。HTML でアポストロフィをエスケープする正しい方法は、.<img src='http://widget-site-example.com/ross.jpg' alt='Ross\'s Widget' />
s
Widget
Widget'
'
一重引用符は、すっきりとしたページを生成します。HTML文字列でそれらをエスケープするべきではなく、どちらを使用するかはあなたの選択です...私の好みは通常は一重引用符であり、文字列に一重引用符を含める必要がある場合(たとえば、文字列内の文字列の区切り文字として)、一方には二重引用符を使用し、もう一方には一重引用符を使用します。
htmlを有効なhtml4またはxhtmlにしたい場合は、属性に対して単一引用符または二重引用符の両方が機能します。HTML4 はここで検証できます: https://validator.w3.org/
最新のブラウザー( ie10以降)のみをサポートしている場合は、単一引用符、二重引用符、および引用符なし (属性の値に特殊文字がない限り) を許可するhtml5構文を使用できます。HTML5 はここで検証できます: https://validator.w3.org/nu
これが古いスレッドであることは知っていますが、それでも非常に関連性があります。
生成された HTML で引用符を制御したい場合は、PHP でsprintf()関数を使用できます (および他の多くの言語で利用可能な同様の呼び出し)。
$html = sprintf('<a href="%s">%s</a>', $url, $text);
sprintf() を使用すると、データベースまたは構成ファイルから取得するか、変換メカニズムを介してフォーマット文字列を簡単に変更できます。
これは非常に読みやすく、生成された HTML で二重引用符または単一引用符のいずれかを使用できます。ほとんど変更せず、エスケープすることもありません。
$html = sprintf("<a href='%s'>%s</a>", $url, $text);
一重引用符に反対するものは何ですか?
現在のタグ内で同じ引用スタイルを維持している限り、HTMLコード全体に問題なく一重/二重引用符を付けることができます(多くのブラウザはこれについても文句を言わず、バリデーションはあなたが引用、同じで終わる、同じ妥当性内)
ランダムな引用スタイルへの無料サポート!!! (イェーイ;D)
あなたの例では、実際に引用符が必要な引用属性は1つだけでした。
<!-- best form -->
<a href=http://widget-site-example.com/example.html>
<img src=http://widget-site-example.com/ross.jpg alt='Ross's Widget' />
</a>
引用符を使用する場合、厳格なルールはありませんが、必要に応じて内側に二重引用符を付けた、最も一般的な一重引用符を見てきました。
二重引用符を使用すると、一部のバリデータが渡されません。