为HTML属性使用单引号是否正确?
-
04-07-2019 - |
题
最近我看到了很多这样的事情:
<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节)。我没有注意到这种趋势,但也许有一些框架可以为您访问过的网站提供支持,这些网站恰好使用单引号引用。
其他提示
当使用使用双引号字符串文字的编程语言动态生成HTML时,我发现使用单引号很方便。
e.g。
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") %>' />
单引号在(X)HTML中完全合法。另一方面,使用反斜杠来逃避它们不是。 <img src='http://widget-site-example.com/ross.jpg' alt='Ross\'s Widget' />
是带有alt文本<!>“Ross \ <!>”;以及空s
和Widget
/ Widget'
属性的图像。在HTML中转义撇号的正确方法是'
。
在PHP中,echo采用多个参数。所以,如果想要省略连接运算符,他们可以做类似的事情并且仍然使用双引号:
echo '<input type="text" value="', $data, '" />';
单引号生成一个更简洁的页面。你不应该在HTML字符串中转义它们,你可以选择使用它...我的偏好通常是单引号,如果我需要在字符串中包含单引号(例如作为字符串中字符串的分隔符),我用一个<!>放大器的双引号;单身为另一个。
如果您想要 html 有效的 html4 或 xhtml 然后单引号或双引号将适用于属性。可以在此处验证HTML4: https://validator.w3.org/
如果您仅支持现代浏览器( ie10 及更高版本的问题然后您可以使用 html5 语法,允许使用单引号,双引号和无引号(只要属性值中没有特殊字符) 。 HTML5可在此处验证: https://validator.w3.org/nu
针对单引号的内容是什么?
你可以在你的html代码中使用单/双引号而没有任何问题,只要你在当前标签内保持相同的引用风格(许多浏览器都不会抱怨这个,并且验证只是想要,如果你从引用开始,以同样的方式结束,在相同的适当内容中)
免费支持随机引用样式! (耶; D)
我知道这是一个老线程,但仍然非常相关。
如果要控制生成的HTML中的引号,可以使用 sprintf() PHP中的函数(以及许多其他语言中的类似调用):
$html = sprintf('<a href="%s">%s</a>', $url, $text);
使用sprintf()可以通过从数据库或配置文件中检索格式字符串,或通过转换机制轻松修改格式字符串。
它非常易读,并且在生成的HTML中允许使用双引号或单引号,几乎没有任何更改,也不会有任何转义:
$html = sprintf("<a href='%s'>%s</a>", $url, $text);
为什么不保存按 SHIFT 键。相同的milage少一次击键。
您可能希望使用单引号的另一种情况:在数据属性中存储JSON数据:
<tr data-info='{"test":true}'></tr>
JSON对象键必须是双引号,因此属性本身不能。
你应该完全避免引用。
在您的示例中,只有一个带引号的属性实际上需要引用。
<!-- 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>
如果您使用引号,则没有严格的规则,但我最常见的是单引号,必要时在内部使用双引号。
使用双引号不会传递一些验证器。