在手写HTML时,我总是使用单引号。我使用了很多渲染的HTML,它们总是使用双引号。这使我能够确定HTML是手工编写的还是生成的。这是个好主意吗?

这两者之间有什么区别?我知道它们都可以工作,而且所有现代浏览器都支持它们,但在不同的情况下,其中一种真的比另一种更好吗?


当前回答

这对html没有区别,但如果你用另一种编程语言动态生成html,那么一种方法可能比另一种更容易。

例如,在Java中,双引号用来表示字符串的开始和结束,所以如果你想在字符串中包含双引号,你必须用反斜杠来转义它。

String s = "<a href=\"link\">a Link</a>"

单引号就不存在这样的问题,因此使用单引号可以使Java中的代码更具可读性。

String s = "<a href='link'>a Link</a>"

特别是当您必须编写具有许多属性的html元素时。(注意,我通常使用jhtml这样的库在Java中编写html,但这样做并不总是实际的)

其他回答

用"而不是'当:

<input value="user"/> //Standard html
<input value="user's choice"/> //Need to use single quote
<input onclick="alert('hi')"/> //When giving string as parameter for javascript function

在以下情况下用'代替":

<input value='"User"'/> //Need to use double quote
var html = "<input name='username'/>" //When assigning html content to a javascript variable

在PHP中,使用双引号会导致性能略有下降,因为变量名要计算,所以在实际中,我在编写代码时总是使用单引号:

echo "This will print you the value of $this_variable!";
echo 'This will literally say $this_variable with no evaluation.';

所以你可以这样写;

echo 'This will show ' . $this_variable . '!';

我相信Javascript也有类似的功能,所以在性能上有非常小的改进,如果这对你来说很重要的话。


此外,如果你一直查看HTML规范2.0,这里列出的所有标签;

W3 HTML DTD参考

(使用doublequotes。)无论你更经常使用哪一种,一致性都很重要。

HTML使用双引号

i.e.

<div class="colorFont"></div>

JavaScript中使用单引号

i.e.

$('#container').addClass('colorFont');
$('<div class="colorFont2></div>');

如果你正在编写asp.net,那么偶尔你必须在Eval语句中使用双引号,在值分隔中使用单引号——这主要是为了让c#内联代码知道它在Eval容器中使用的是字符串而不是字符。就我个人而言,我只使用其中一种作为标准,而不是混合使用,这样看起来很乱。

如果都是一样的,也许使用单引号更好,因为它不需要按住shift键。按键次数越少=重复劳损的几率越小。