css 属性选择器带引号还是不带引号?

ilmyapht  于 2022-12-20  发布在  其他
关注(0)|答案(3)|浏览(248)

下面的选择器用哪种方式编写有关系吗?validates both ways和W3C规范似乎没有提到引号的问题。
备选办法1:

input[type=text]

备选方案二:

input[type='text']

我见过有引号和没有引号的选择器,这两种方式都适用于CSS或jQuery吗?
那么,使用引号仅仅是偏好的问题吗?语义的问题?CSS版本的问题?
我们有两个方法是因为 * 向后兼容 * 吗?如果是,哪种方法是最好的?
除了the accepted answer to this other SO question,我认为引号是最好的:

input[type='text']
9rbhqvlz

9rbhqvlz1#

我可以这样总结:

  • 对于某些字符序列(法律的标识符),不需要引号。
  • 对于所有其他字符序列(如任何以数字开头的字符),必须使用引号。
  • 如果你知道什么是法律的的CSS标识符,并且你已经知道了,你可以去掉引号。
  • 如果你知道你所拥有的不是一个标识符,你就必须加上引号。
  • 如果你不想去想它,想一直坚持下去,就用引号。

对于[type=text],如果愿意,可以去掉引号,因为text是法律的的CSS标识符。
我个人更喜欢一致性,不需要去想它,也不会有犯错误的机会,所以我总是把引号放进去。

2izufjch

2izufjch2#

根据CSS规范(版本2和3):
属性值必须是标识符或字符串。
字符串用双引号或单引号括起来,[type="text"],而标识符[type=text]的定义如下:
在CSS中,标识符(包括元素名、类和选择器中的ID)只能包含字符[a-zA-Z 0 -9]和ISO 10646字符U+00 A0及更高,加上连字符(-)和下划线(_);标识符不能以一个数字、两个连字符或连字符后跟一个数字开头。2标识符还可以包含转义字符和任何ISO 10646字符作为数字代码(见下一项)。3例如,标识符“B&W?”可以写成“B&W\?”或“B\26W\3F”。
简单地说,无论哪种方式都可以,这是一个偏好的问题。字符串的优点(即引用你的属性值)是一致性;每个值都可以表示为字符串,但不是所有的值都可以表示为标识符。2你可以通过this page来运行值,以检查你是否需要引号。

tjvv9vkg

tjvv9vkg3#

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

相关问题