单双引号('vs')

手写HTML时,我一直使用单引号。 我使用了大量的HTML,它总是使用双引号。 这使我可以确定HTML是手写还是生成。 这是一个好主意吗?

两者有什么区别? 我知道他们都工作,并支持所有的现代浏览器,但是有一个真正的区别,其中一个在不同情况下实际上比另一个更好?

w3 org 说 :

默认情况下,SGML要求使用双引号(ASCII小数点34)或单引号(ASCII小数点39)来定界所有属性值。 当值由双引号分隔时,单引号可以包含在属性值中,反之亦然。 作者也可以使用数字字符引用来表示双引号( " )和单引号( ' )。 对于双引号,作者还可以使用字符实体引用"

所以……似乎没有什么区别。 只取决于你的风格。

我使用"作为顶级和'作为第二级,正如我想象的大多数人所做的那样

 <a href="#" onclick="alert('Clicked!');">Click Me!</a> 

在这个例子中,你必须使用两个,这是不可避免的。

为Web开发人员引用约定

简答题

在HTML中,使用单引号(')和双引号(“)是可以互换的,没有什么区别。

但是build议一致性,所以我们必须select一个语法约定并定期使用。

长的答案

Web开发通常由许多编程语言组成。 HTML,JS,CSS,PHP,ASP,RoR,Python等。 正因为如此,我们对不同的编程语言有很多的语法约定。 通常来自一种语言的习惯会跟随我们到其他语言,即使它不被认为是“正确的”,即评论惯例。 引用惯例也属于这一类对我来说。

但是我倾向于使用HTML与PHP紧密结合。 在PHP中,单引号和双引号之间有一个主要区别。 在PHP中用双引号“你可以直接在string文本中插入variables”。 (scriptingok.com)而当使用单引号时,“文本显示为”。 (scriptingok.com)

PHP需要更长的时间来处理双引号string 。 由于PHPparsing器必须预先读取整个string以检测内部的任何variables,并将其连接起来,所以处理所需的时间比单个引用的string要长。 (scriptingok.com)

单引号在服务器上更容易 。 由于PHP不需要预先读取整个string,所以服务器可以更快,更快乐地工作。 (scriptingok.com)

其他事情要考虑

  1. string中双引号的频率。 我发现我需要在我的string中使用双引号(“)比我需要在string中使用单引号(')。为了减less字符转义所需的数量,我喜欢单引号分隔符。
  2. 做单引号比较容易。 这是相当自我解释,但澄清,为什么按SHIFT键更多的时间,然后你必须。

我的约定

有了PHP的这种理解,我已经设置了约定(对于我自己和公司的其他人),默认情况下string将被表示为单引号用于服务器优化。 如果需要引号(如属性中的JavaScript),则在该string中使用双引号,例如:

<button onClick='func("param");'>Press Me</button>

当然,如果我们在PHP中,并希望parsing器处理string中的PHPvariables,我们应该有意使用双引号。 $a='Awesome'; $b = "Not $a";

来源

PHP中的单引号与双引号。 (ND)。 检索2014年11月26日,从http://www.scriptingok.com/tutorial/Single-quotes-vs-double-quotes-in-PHP

如果完全相同,也许使用单引号更好,因为它不需要按住shift键。 更less的按键== RSI的机会更less。

在HTML中我不相信这是否使用"' ,但它应该在整个文档中一致使用。

我自己的用法喜欢属性/ HTML使用" ,而所有的JavaScript使用" ,而不是。

这让我读起来更容易一些。 如果你的使用比你更有意义,那就不需要改变了。 但是,对于我来说,你的代码会感到混乱。 这是个人的一切。

其实最好的办法就是Google的build议。 双引号: 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的build议:“使用有效的HTML是可衡量的基准质量属性,有助于了解技术要求和约束条件,并确保正确的HTML使用“。;

我知道很多人不会同意,但这就是我所做的,我非常喜欢这样的编码风格:除非绝对必要,否则我实际上不使用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> 

我有一个使用Bootstrap的问题,使用双引号对使用单引号(这不起作用)很重要。 class ='row-fluid'给了我导致最后一个跨度低于其他跨度的问题,而不是坐在最右边,而class =“row-fluid”起作用。

对HTML使用双引号

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

对JavaScript使用单引号

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

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

在下列情况下使用“而不是”:

 <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 

我在这里是新手,但是我只在第一个内部使用双引号时使用单引号。 如果我不清楚我显示你的例子:

 <p align="center" title='One quote mark at the beginning so now I can "cite".'> ... </p> 

我希望我帮助。

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

 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的function是类似的,所以如果这对你来说很重要的话,那么性能的改善是非常小的。


另外,如果你仔细观察HTML规范2.0,所有在这里列出的标签;

W3 HTML DTD参考

(使用双引号。)无论您经常使用哪种方法,一致性都很重要。

双引号用于string(即“这是一个string”),单引号用于字符(即“a”,“b”或“c”)。 根据编程语言和上下文,您可以避免使用双引号而不是单引号。

HTML不关心你使用哪一个。 但是,如果您要在PHP脚本中编写HTML,则应该使用双引号,因为您需要将其转义(即\“whatever \”)以避免混淆自己和PHP。