两种方式验证时的“最佳”方式

时间:2012-01-29 00:16:36

标签: jquery css jquery-selectors css-selectors

以下选择器的编写方式是否重要?关于引号问题validates both waysW3 spec seems silent

input[type=text]

或者

input[type='text']

我已经看到它在两个方面都有效,但只是想知道它总是对CSS或jQuery都有效吗?

使用引号只是一个偏好问题?语义? CSS版本?

由于向后兼容性,我们有两种方法吗?如果是这样,哪种方式最好呢?

尽管the accepted answer to this other SO question,我正在考虑这个......

input[type='text']

3 个答案:

答案 0 :(得分:4)

我总结一下:

  • 对于某些字符序列(合法标识符),您不需要引号。
  • 对于所有其他字符序列(例如以数字开头的任何字符),您必须使用引号。
  • 如果你知道什么是legal CSS identifier,那就是你所拥有的,你可以不用引号。
  • 如果你知道你拥有的不是标识符,你必须加上引号。
  • 如果您不想考虑它并希望始终如一地使用它,请使用引号。

对于[type=text],如果您愿意,可以不使用引号,因为text是合法的CSS标识符。

我个人更喜欢一致性而不必考虑它而不是错误的机会所以我总是把它放在引号中。

答案 1 :(得分:3)

根据CSS规范(版本23):

  

属性值必须是标识符或字符串。

字符串是双引号或单引号[type="text"],而标识符[type=text]是以这种方式定义的:

  

在CSS中,标识符(包括选择器中的元素名称,类和ID)只能包含字符[a-zA-Z0-9]和ISO 10646字符U + 00A0及更高,加上连字符( - )和下划线(_);它们不能以数字,两个连字符或连字符后跟数字开头。标识符还可以包含转义字符和任何ISO 10646字符作为数字代码(请参阅下一项)。例如,标识符“B& W?”可以写成“B \& W \?”或“B \ 26 W \ 3F”。

简而言之,无论哪种方式都是如此,这是一个偏好问题。字符串的优点(即引用属性值)是为了保持一致性;每个值都可以表示为字符串,但并非所有值都可以表示为标识符。您可以通过this page运行值来检查您是否需要报价。

答案 2 :(得分:1)

我会继续使用input[type='text']