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

<a href='http://widget-site-example.com/example.html'>
    <img src='http://widget-site-example.com/ross.jpg' alt='Ross&#39;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 \ <!>”;以及空sWidget / Widget'属性的图像。在HTML中转义撇号的正确方法是&#39;

在PHP中,echo采用多个参数。所以,如果想要省略连接运算符,他们可以做类似的事情并且仍然使用双引号:

echo '<input type="text" value="', $data, '" />';

单引号生成一个更简洁的页面。你不应该在HTML字符串中转义它们,你可以选择使用它...我的偏好通常是单引号,如果我需要在字符串中包含单引号(例如作为字符串中字符串的分隔符),我用一个<!>放大器的双引号;单身为另一个。

如果您想要有效的 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&#39;s Widget' />
</a>

如果您使用引号,则没有严格的规则,但我最常见的是单引号,必要时在内部使用双引号。

使用双引号不会传递一些验证器。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top