为HTML属性使用单引号是否正确?

Ros*_*oss 65 html syntax coding-style apostrophe

最近我看到了很多这样的事情:

<a href='http://widget-site-example.com/example.html'>
    <img src='http://widget-site-example.com/ross.jpg' alt='Ross&#39;s Widget' />
</a>
Run Code Online (Sandbox Code Playgroud)

在HTML中使用单引号是否有效?正如我在上面强调的那样,它也存在问题,因为你必须逃避撇号.

Gre*_*ill 52

使用单引号肯定是有效的(HTML 4.01,第3.2.2节).我没有注意到这样的趋势,但也许有一些框架可以为您访问过的网站提供支持,这些网站恰好使用单引号引用.

  • HTML,而不是XHTML (2认同)

Ady*_*Ady 45

当使用使用双引号字符串文字的编程语言动态生成HTML时,我发现使用单引号很方便.

例如

String.Format("<a href='{0}'>{1}</a>", Url, Desc)
Run Code Online (Sandbox Code Playgroud)

  • 极端丑陋的3个完美例子:) (22认同)
  • 什么?你不喜欢String.Format("<a href="&ControlChars.Quote&"{0}"&ControlChars.Quote&"> {1} </a>",Url,Desc)??? = P (7认同)
  • 或String.Format("<a href=\"{0}\"> {1} </a>",Url,Desc) (5认同)
  • 这是如何在您的站点中创建 XSS 漏洞的一个很好的例子 (3认同)

Dea*_*her 12

使用PHP生成HTML时,可以更容易地执行以下操作:

$html = "<img src='$url' />";
Run Code Online (Sandbox Code Playgroud)

而不是将字符串与带有字符串的变量连接起来,因为PHP在双引号字符串中解析变量.

  • @KevinLaity,在PHP中使用单引号会将$ url打印为$ url,而不是变量内容:http://php.net/manual/en/language.types.string.php (16认同)
  • 实际上你也可以在php中反转它:$ html ='<img rel="nofollow noreferrer" src ="$ url"/>'; (4认同)

bry*_*ryc 5

您可能想要使用单引号的另一种情况:在数据属性中存储 JSON 数据:

<tr data-info='{"test":true}'></tr>
Run Code Online (Sandbox Code Playgroud)

JSON 对象键必须用双引号括起来,因此属性本身不能。