在HTML属性中使用单引号是正确的吗?

79

最近我看到很多这样的东西:

<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中使用单引号是有效的吗?正如我上面所强调的,这也是有问题的,因为你必须转义撇号。


我希望这种方式能够变得流行起来!因为双引号更受欢迎,所以在JavaScript中使用单引号成为了常见的风格,因为字符串中会有很多带有双引号的HTML。现在我已经在JavaScript中键入了如此多的单引号字符串,以至于每当我使用其他语言,比如Python、C#、C++时,我都会键入单引号并得到语法错误。 - gman
16个回答

1

单引号生成更清洁的页面,减少混乱。在HTML字符串中不应该转义它们,你可以选择使用哪种... 我通常偏好单引号,如果我需要在字符串中包含单引号(例如作为字符串内部的分隔符),我会使用双引号和单引号。


0

我知道这是一个老的帖子,但仍然非常相关。

如果你想要对生成的HTML中的引号进行控制,你可以使用PHP中的sprintf()函数(以及许多其他语言中类似的调用):

$html = sprintf('<a href="%s">%s</a>', $url, $text);

使用sprintf()函数可以轻松地从数据库或配置文件中检索格式字符串,或通过翻译机制进行修改。

它非常易读,并且允许在生成的HTML中使用双引号或单引号,几乎不需要任何更改和转义:

$html = sprintf("<a href='%s'>%s</a>", $url, $text);

0
为什么不省略按下 SHIFT 键呢?同样的效果,少按一个键。

哈!这是我见过的最通用的理由。 - Joseph Gabriel

0

单引号有什么问题吗?

您可以在 HTML 代码中随意使用单引号或双引号,只要在当前标签内保持相同的引用样式即可(许多浏览器甚至不会对此抱怨,验证只需要如果您以引号开头,则在同一属性内以相同方式结束)

支持任意引用样式的免费支持!!!(耶;D)


0

让我们彻底解决这个争论


  1. 双引号可以使用
  2. 单引号可以使用
  3. 没有引号也可以使用,只要您不使用以下任何字符:
    • 空格(显然)
    • "<"或">"(有意义)
    • 等号(不确定为什么,但可以使用)
    • 任何类型的引号:双引号、单引号、反引号(同样有意义)

有趣的是,即使在今天,一些人仍然坚持“仅使用双引号”的标准,这实际上从来不是一个标准,而只是一种惯例。此外,如果您的语言中有撇号作为自然元素(英语,任何人?),那么更方便,但在我看来,为此增加PHP字符串组合的复杂性是一个过高的代价。


属性值是通过等号(=)进行赋值的。如果将等号作为值的一部分,显然会造成混淆。 - undefined
@manngo 当然可以,但是只将第一个等号解释为分隔符,将后面的等号都视为值的一部分也不会有任何问题。 - undefined

-7

你应该完全避免使用引号。

在你的例子中,只有一个带引号的属性实际上需要引号。

<!-- 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>

如果你使用引号,没有硬性规定,但我通常看到的是单引号,必要时内部使用双引号。

使用双引号可能无法通过某些验证器。


"HTML 4.01" [标签: HTML]的程序相关内容翻译 - Eric

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接