单双引号('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)
其他事情要考虑
- string中双引号的频率。 我发现我需要在我的string中使用双引号(“)比我需要在string中使用单引号(')。为了减less字符转义所需的数量,我喜欢单引号分隔符。
- 做单引号比较容易。 这是相当自我解释,但澄清,为什么按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
我知道很多人不会同意,但这就是我所做的,我非常喜欢这样的编码风格:除非绝对必要,否则我实际上不使用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。