在手工编写HTML时,我总是使用单引号。我使用大量渲染的HTML,它总是使用双引号。这允许我确定HTML是手写还是生成。这是个好主意吗?
两者有什么区别?我知道他们都工作并得到所有现代浏览器的支持,但是在不同的情况下,哪一个实际上比另一个更好?
答案 0 :(得分:379)
w3组织said:
默认情况下,SGML要求使用双引号(ASCII十进制34)或单引号(ASCII十进制39)分隔所有属性值。当值由双引号分隔时,单引号可以包含在属性值中,反之亦然。作者也可以使用数字字符引用来表示双引号(
"
)和单引号('
)。对于双引号,作者也可以使用字符实体引用"
。
所以......似乎没什么区别。只取决于你的风格。
答案 1 :(得分:62)
我使用"
作为顶层,'
作为第二层,我想大多数人都这样做。例如
<a href="#" onclick="alert('Clicked!');">Click Me!</a>
在那个例子中,你必须使用两者,这是不可避免的。
答案 2 :(得分:25)
在HTML中,单引号(')和双引号(“)的使用是可以互换的,没有区别。
但建议使用一致性,因此我们必须选择语法约定并定期使用它。
Web开发通常由许多编程语言组成。 HTML,JS,CSS,PHP,ASP,RoR,Python等。因此,我们为不同的编程语言提供了许多语法约定。通常来自一种语言的习惯将跟随我们使用其他语言,即使它不被认为是“正确的”即评论惯例。引用约定也适用于我。
但我倾向于将HTML与PHP结合使用。在PHP中,单引号和双引号之间存在主要差异。在带双引号的PHP中,“您可以直接在字符串的文本中插入变量”。 (scriptingok.com)当使用单引号时“文本显示为原样”。 (scriptingok.com)
PHP需要更长的时间来处理双引号字符串。由于PHP解析器必须提前读取整个字符串以检测其中的任何变量并将其连接起来 - 因此处理时间比单个引用字符串要长。 (scriptingok.com)
服务器上的单引号更容易。由于PHP不需要提前读取整个字符串,因此服务器可以更快,更快乐地工作。 (scriptingok.com)
需要考虑的其他事项
通过对PHP的这种理解,我已经设置了约定(对我自己和我公司的其余部分),默认情况下,字符串将被表示为单引号,用于服务器优化。如果需要引号(如属性中的JavaScript),则在字符串中使用双引号,例如:
<button onClick='func("param");'>Press Me</button>
当然,如果我们使用PHP并希望解析器处理字符串中的PHP变量,我们应该故意使用双引号。 $a='Awesome'; $b = "Not $a";
单引号与PHP中的双引号。 (不详)。 2014年11月26日检索自http://www.scriptingok.com/tutorial/Single-quotes-vs-double-quotes-in-PHP
答案 3 :(得分:13)
如果它完全相同,也许使用单引号更好,因为它不需要按住shift键。击键次数减少= RSI的几率降低。
答案 4 :(得分:11)
在HTML格式中,我认为您使用"
还是'
并不重要,但在整个文档中应始终如一地使用它。
我自己的用法更喜欢使用"
属性/ html,而所有javascript都使用'
。
这使我更容易阅读和检查。如果您的使用对我来说比我的更有意义,则无需进行更改。但是,对我来说,你的代码会感觉凌乱。这是个人的全部。
答案 5 :(得分:8)
实际上,最好的方式是Google推荐的方式。双引号: https://google.github.io/styleguide/htmlcssguide.xml?showone=HTML_Quotation_Marks#HTML_Quotation_Marks
参见https://google.github.io/styleguide/htmlcssguide.xml?showone=HTML_Validity#HTML_Validity 来自Google的引用建议:“使用有效的HTML是一个可衡量的基线质量属性,有助于了解技术要求和约束,并确保正确使用HTML。”
答案 6 :(得分:5)
我知道 LOTS 的人不会同意,但这就是我所做的,我真的很喜欢这样的编码风格:我实际上不会在HTML中使用任何引用,除非这是绝对必要的。
示例:
<form method=post action=#>
<fieldset>
<legend>Register here: </legend>
<label for=account>Account: </label>
<input id=account type=text name=account required><br>
<label for=password>Password: </label>
<input id=password type=password name=password required><br>
...
仅当属性值中有空格或其他内容时才使用双引号:
<form class="val1 val2 val3" method=post action=#>
...
</form>
答案 7 :(得分:4)
使用HTML的双引号
即
<div class="colorFont"></div>
使用JavaScript的单引号
即
$('#container').addClass('colorFont');
$('<div class="colorFont2></div>');
答案 8 :(得分:2)
我使用Bootstrap遇到了一个问题,使用双引号确实比使用单引号(这不起作用)。 class ='row-fluid'给了我一些问题,导致最后一个跨度低于其他跨度,而不是坐在最右边的旁边,而class =“row-fluid”工作。
答案 9 :(得分:1)
如果您正在编写asp.net,那么偶尔您必须在Eval语句中使用双引号并使用单引号来分隔值 - 这主要是因为C#内联代码在eval容器中使用字符串而不是字符。就我个人而言,我只使用其中一个作为标准,而不是混合它们,它看起来一团糟。
答案 10 :(得分:1)
使用&#34;而不是&#39;当:
<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
使用&#39;而不是&#34;当:
<input value='"User"'/> //Need to use double quote
var html = "<input name='username'/>" //When assigning html content to a javascript variable
答案 11 :(得分:1)
它对html没有区别,但是如果你用另一种编程语言动态生成html,那么一种方式可能比另一种方式更容易。
例如在 Java 中,双引号用于表示String的开头和结尾,因此如果要在String中包含双引号,则必须使用反斜杠转义它。 / p>
String s = "<a href=\"link\">a Link</a>"
单引号不存在这样的问题,因此使用单引号可以使Java中的代码更易读。
String s = "<a href='link'>a Link</a>"
特别是如果你必须编写具有许多属性的html元素。(注意我通常使用诸如jhtml之类的库来用Java编写html,但这并不总是可行的)
答案 12 :(得分:0)
我是新手,但我只在第一个使用双引号时使用单引号。如果我不清楚我告诉你例子:
<p align="center" title='One quote mark at the beginning so now I can
"cite".'> ... </p>
我希望我能帮忙。
答案 13 :(得分:0)
这里有很多很有见地的回复!足以让任何人做出明确的个人决定。
我只想指出一件对我来说一直很重要的事情。
请保留一点!
双引号适用于具有多个单相的字符串,例如 "one two"
而不是 'one'
或 'two'
的单引号。这可以追溯到 C 和 C++。
(reference here 或自行在线搜索)。
这就是真正的区别。
有了这个原则(这个不同),解析成为可能,例如 "{{'a','b'},{'x','y'}}
或 "/[^\r\n]*[\r\n]"
(需要与空间无关,因为它是表达性的)或更著名的 HTML 特定的 title = "Hello HTML!"
或style = "font-family:arial; color:#FF0000;"
有趣的是,即使是单个字符(例如数字)或单相字符串,HTML(来自 XML 本身)由于表达特性通常也采用双引号。
正如 NibblyPig 所指出的那样:
"
作为顶层,'
作为第二层,因为 "'a string here'"
是有效的,并且符合 W3 标准(适用于网络)并且很可能永远不会改变。
为了保持一致性,明智地使用双引号,但只能根据偏好完全正确。
答案 14 :(得分:-5)
在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,这里列出的所有标签;
(使用双引号。)无论您倾向于多频繁使用,一致性都很重要。
答案 15 :(得分:-9)
双引号用于字符串(即“this is a string”),单引号用于字符(即'a','b'或'c')。根据编程语言和上下文,您可以使用双引号作为字符,但不能使用单引号作为字符串。
HTML并不关心您使用的是哪一个。但是,如果你在PHP脚本中编写HTML,你应该使用双引号,因为你需要转义它们(即,“无论什么”),以避免让自己和PHP混淆。