手动编写HTML时,我总是使用单引号。我使用许多渲染的HTML,这些渲染的HTML总是使用双引号。这使我可以确定HTML是手工编写的还是生成的。这是一个好主意吗?
两者有什么区别?我知道它们都可以工作,并且得到所有现代浏览器的支持,但是在不同情况下,一个实际上比另一个更好吗?
手动编写HTML时,我总是使用单引号。我使用许多渲染的HTML,这些渲染的HTML总是使用双引号。这使我可以确定HTML是手工编写的还是生成的。这是一个好主意吗?
两者有什么区别?我知道它们都可以工作,并且得到所有现代浏览器的支持,但是在不同情况下,一个实际上比另一个更好吗?
Answers:
W3组织说:
默认情况下,SGML要求使用双引号(ASCII十进制34)或单引号(ASCII十进制39)来分隔所有属性值。当值由双引号分隔时,可以将单引号包括在属性值中,反之亦然。作者还可以使用数字字符引用来表示双引号(
"
)和单引号('
)。对于双引号,作者还可以使用字符实体引用"
。
所以...似乎没什么不同。只取决于你的风格。
'
或"
),则gzip输出为809字节。混合它们会将输出推高到829字节。这可能与您无关,但这并不意味着它与所有人都无关。
我用 "
'
正如我想象的大多数人一样,用作顶层和第二层。例如
<a href="#" onclick="alert('Clicked!');">Click Me!</a>
在该示例中,必须同时使用两者,这是不可避免的。
data-*
属性时。根据您的应用程序,以及如何使用data-*
属性,您可能需要使用'
“内Ş "
S”。有时我们将它们用于Google Analytics(分析)事件跟踪:<a href="..." data-track="Homepage Banner|Clicked|Dick's Sporting Goods">click me</a>
var x = "<a href='" + url + "'>click me</a>";
在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中的单引号和双引号。(nd)。取自2014年11月26日,网址为http://www.scriptingok.com/tutorial/Single-quotes-vs-double-quotes-in-PHP
document.querySelector("[name^='myname']")
在document.querySelector('[name^="myname"]')
完美运行时根本无法使用。
如果都一样,也许最好使用单引号,因为它不需要按住Shift键。更少的击键==减少RSI的机会。
在HTML中,无论您使用"
还是'
,我都不认为这很重要,但是在整个文档中应始终使用它。
我自己的用法更喜欢attribute / html使用"
,而所有javascript都使用'
。
对我来说,这使阅读和检查变得更加容易。如果您的使用对您来说比我的意义更大,则无需进行任何更改。但是,对我来说,您的代码会感到混乱。这是个人的一切。
"
,但是其他时候我在PHP代码中编写代码,在这些代码中我更喜欢echo
使用use "
来进行解析。如果使用,则此回显内的任何html属性都更具可读性'
。当然,它不是一致的,但是没有所有反斜杠就容易得多。
实际上,最好的方法就是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。”
"
结束'
!
我知道很多人不会同意,但这是我的工作,而且我真的很喜欢这种编码风格:实际上,除非绝对必要,否则我不会在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>
在以下情况下使用“代替”
<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
var html = '<input name="username" />';
并与其他html保持一致:)
它与html没什么区别,但是如果您使用另一种编程语言动态生成html,则一种方法可能比另一种方法容易。
例如,在Java中,双引号用于指示String的开头和结尾,因此,如果要在String中包含双引号,则必须使用反斜杠对其进行转义。
String s = "<a href=\"link\">a Link</a>"
单引号没有这种问题,因此使用单引号可以使Java中的代码更具可读性。
String s = "<a href='link'>a Link</a>"
特别是如果您必须编写具有很多属性的html元素。(请注意,我通常使用jhtml之类的库来用Java编写html,但这样做并不总是很实际)。
在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,则此处列出的所有标签都应包含在内。
(使用双引号。)无论您倾向于频繁使用哪种格式,一致性都是很重要的。
双引号用于字符串(即“这是一个字符串”),单引号用于字符(即“ a”,“ b”或“ c”)。根据编程语言和上下文的不同,您可以避免对字符使用双引号,而对字符串不使用单引号。
HTML并不关心您使用哪个。但是,如果要在PHP脚本中编写HTML,则应坚持使用双引号,因为您需要将其转义(即\“ whatever \”),以免混淆自己和PHP。