最近我看到了很多这样的事情:
<a href='http://widget-site-example.com/example.html'>
<img src='http://widget-site-example.com/ross.jpg' alt='Ross's Widget' />
</a>
在HTML中使用单引号是否有效?正如我在上面强调的那样,它也存在问题,因为你必须逃避撇号。
答案 0 :(得分:51)
使用单引号(HTML 4.01, section 3.2.2)当然有效。我没有注意到这种趋势,但也许有一些框架可以为您访问过的网站提供支持,这些网站恰好使用单引号引用。
答案 1 :(得分:45)
当使用使用双引号字符串文字的编程语言动态生成HTML时,我发现使用单引号很方便。
e.g。
String.Format("<a href='{0}'>{1}</a>", Url, Desc)
答案 2 :(得分:12)
使用PHP生成HTML时,可以更容易地执行以下操作:
$html = "<img src='$url' />";
将字符串与带有字符串的变量连接起来,因为PHP用双引号字符串解析变量。
答案 3 :(得分:4)
有人可以在PHP中使用它来避免转义“如果他们使用双引号字符串来解析其中的变量,或者避免使用字符串连接运算符。
示例:
echo "<input type='text' value='$data'/>";
而不是
echo "<input type=\"text\" value=\"$data\" />";
或
echo '<input type="text" value="' . $data . '" />';
现在我总是坚持使用HTML的双引号和Javascript的单引号。
答案 4 :(得分:3)
当您想要嵌入双引号时,它会更容易。
答案 5 :(得分:3)
在ASP.NET中,如果在属性中使用data-binding expressions,则使用单引号会更容易:
<asp:TextBox runat="server" Text='<%# Bind("Name") %>' />
答案 6 :(得分:2)
单引号在(X)HTML中完全合法。另一方面,使用反斜杠来逃避它们不是。 <img src='http://widget-site-example.com/ross.jpg' alt='Ross\'s Widget' />
是带有替代文字“Ross”的图片,以及空s
和Widget
/ Widget'
属性。在HTML中转义撇号的正确方法是'
。
答案 7 :(得分:2)
在PHP中,echo采用多个参数。所以,如果想要省略连接运算符,他们可以做类似的事情并且仍然使用双引号:
echo '<input type="text" value="', $data, '" />';
答案 8 :(得分:1)
单引号生成一个更简洁的页面。你不应该在HTML字符串中转义它们,你可以选择使用它...我的偏好通常是单引号,如果我需要在字符串中包含单引号(例如作为字符串中字符串的分隔符),我使用双引号作为一个&amp;单身为另一个。
答案 9 :(得分:1)
如果您希望html有效html4或xhtml,则single-quotes或double-quotes都适用于属性。可以在此处验证HTML4:https://validator.w3.org/
如果您是supporting only modern browsers(ie10及更高版本),那么您可以使用html5语法,该语法允许使用单引号,双引号和无引号(只要没有特殊内容)属性'值中的字符)。可以在此处验证HTML5:https://validator.w3.org/nu
答案 10 :(得分:0)
针对单引号的内容是什么?
你可以在你的html代码中使用单/双引号而没有任何问题,只要你在当前标签内保持相同的引用风格(许多浏览器都不会抱怨这个,并且验证只是想要,如果你从引用开始,以同样的方式结束,在相同的适当内容中)
免费支持随机引用样式! (耶; D)
答案 11 :(得分:0)
我知道这是一个老线程,但仍然非常相关。
如果要控制生成的HTML中的引号,可以使用PHP中的sprintf()函数(以及许多其他语言中提供的类似调用):
$html = sprintf('<a href="%s">%s</a>', $url, $text);
使用sprintf()可以通过从数据库或配置文件中检索格式字符串,或通过转换机制轻松修改格式字符串。
它非常易读,并且在生成的HTML中允许使用双引号或单引号,几乎没有任何更改,也不会有任何转义:
$html = sprintf("<a href='%s'>%s</a>", $url, $text);
答案 12 :(得分:0)
为什么不保存按 SHIFT 键。相同的milage少一次击键。
答案 13 :(得分:0)
您可能希望使用单引号的另一种情况:在数据属性中存储JSON数据:
<tr data-info='{"test":true}'></tr>
JSON对象键必须是双引号,因此属性本身不能。
答案 14 :(得分:0)
有趣的是,即使在今天,有些人仍然坚持“仅双引号”标准,这从来都不是真正的标准,而是一种惯例。此外,如果您的语言将撇号作为自然元素(英语,有人吗?),那就更方便了,但在我看来,增加 PHP 字符串组合的复杂性的代价太高了。
答案 15 :(得分:-4)
在您的示例中,只有一个带引号的属性实际上需要引用。
<!-- 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>
如果您使用引号,则没有严格的规则,但我已经看到最常见的单引号,如有必要,内部会有双引号。
使用双引号不会传递一些验证器。