次のコードブロックに違いはありますか?
<iframe src="http://example.com" width=100%></iframe>
<iframe src=http://example.com width="100%"></iframe>
私は両方を試しましたが、両方ともうまくいくようですが、注意が必要なことがある場合に備えて質問しています。
を除いて実質的な違いはありません
それ以外の場合、引用符が実際に必要になるのは、属性値にスペース、改行、ASCII 引用符 (")、ASCII アポストロフィ (')、グレイブ アクセント (`)、等号 (=)、小なり記号 (<) または大なり記号 (>) これでうまくいきますがstyle = width:20em
(多少あいまいに見えるかもしれませんが)、そうでstyle = width: 20em
はありません – スペースがあるため、 と書く必要がありますstyle = "width: 20em"
。
多くの人は、簡単にするために、常にすべての属性値を引用符で囲みます。他の人は、引用符がコードを少し乱雑にするので、可能な限り引用符を省略していると考えています。
これとはまったくsrc="www.example.com"
関係なく、相対的な URL 参照を意味し、人々が期待する意味ではありません。あなたはおそらく意味しsrc="http://www.example.com"
た。
いいえ、どちらも同じです。
HTML 5では、属性に関する引用符はオプションです。(値にスペースまたは特殊文字が含まれていない場合)
しかし、引用符で囲む方が良い方法だと思います。
引用符で囲まれていない属性値の構文
属性名、その後に 0 個以上の空白文字、単一の U+003D EQUALS SIGN 文字、0 個以上の空白文字が続き、その後に属性値が続きます。これは、上記の属性値の要件に加えて、リテラル スペース文字、U+0022 クォーテーション マーク文字 (")、U+0027 アポストロフィ文字 (')、U+003D 等号記号 (=)、U+003C LESS-THAN SIGN 文字 (<)、 U+003E GREATER-THAN SIGN 文字 (>)、または U+0060 GRAVE ACCENT 文字 (`)。空の文字列であってはなりません。
これは Google からのものです - ベスト プラクティス - 「ペイロード サイズを最小化する」 https://developers.google.com/speed/docs/best-practices/payload (私の強調)
コンテンツが適切に圧縮されるようにするには、次のことを行います: ... HTML タグ属性に一貫した引用符を使用します。つまり、常に一重引用符、常に二重引用符を使用するか、可能であれば引用符をまったく使用しません。
HTMLマークアップの真の妥当性がすべてです。これは、W3C(WWWコンソーシアム)が機能するためのものです。HTMLで機能するものはたくさんありますが、Webブラウザーでより注意深く認識されるようにするには、それらを検証する必要があります。<html>
開始と終了のタグとタグを省略することもできますが</html>
、これはまったくお勧めできません。誰もそれを行わず、「不正なコード」と見なされます。
したがって、引用符で囲む方が有効です。