«Лучший» способ, когда оба способа проверки - PullRequest
1 голос
/ 29 января 2012

Имеет ли значение, каким образом написан следующий селектор?Он проверяет оба способа , а спецификация W3 кажется тихой в вопросе кавычек.

input[type=text]

Или

input[type='text']

I 'Мы видели, как это работает в обоих направлениях, но просто интересно, всегда ли это работает в обоих направлениях для CSS или jQuery?

Так что использование кавычек - просто вопрос предпочтений?Семантика?Версия CSS?

У нас есть два метода из-за обратной совместимости ?Если да, то какой путь лучше всего продвинуться вперед?

Несмотря на принятый ответ на этот другой ТАК вопрос , я думаю это ...

input[type='text']

Ответы [ 3 ]

4 голосов
/ 29 января 2012

Я бы суммировал это следующим образом:

  • Для некоторых последовательностей символов (допустимых идентификаторов) вам не нужны кавычки.
  • Для всех других последовательностей символов(как и все, что начинается с числа), вы должны использовать кавычки.
  • Если вы ЗНАЕТЕ, что составляет допустимый идентификатор CSS , и это то, что у вас есть, вы можете опустить кавычки.
  • Если вы ЗНАЕТЕ, что то, что у вас есть, не является идентификатором, вы должны поставить в кавычки.
  • Если вы не хотите думать об этом и хотите делать это постоянно, используйте кавычки.

Для [type=text] вы можете опустить кавычкиесли вы хотите, потому что text является допустимым идентификатором CSS.

Я лично предпочитаю последовательность и не нужно думать об этом, и меньше шансов на ошибку, поэтому я всегда помещаю в кавычки.

3 голосов
/ 29 января 2012

Согласно спецификации CSS (версии 2 и 3 ):

Значения атрибута должны быть идентификаторами или строками.

Строки имеют двойные или одинарные кавычки [type="text"], а идентификаторы [type=text] определяются следующим образом:

В CSS идентификаторы (включая имена элементов, классы и идентификаторы в селекторах) могут содержать только символы [a-zA-Z0-9] и символы ISO 10646 U + 00A0 и выше, плюс дефис (-) и подчеркивание (_); они не могут начинаться с цифры, двух дефисов или дефиса с последующей цифрой. Идентификаторы также могут содержать экранированные символы и любые символы ISO 10646 в виде числового кода (см. Следующий пункт). Например, идентификатор "B & W?" может быть написано как "B \ & W \?" или "B \ 26 W \ 3F".

Проще говоря, любой путь идет, и это вопрос предпочтений. Преимущество строк (то есть в кавычках значений вашего атрибута) заключается в согласованности; каждое значение может быть представлено в виде строки, но не все может быть представлено в виде идентификатора. Вы можете запустить значения через на этой странице , чтобы проверить, действительно ли вам нужны кавычки.

1 голос
/ 29 января 2012

Я бы использовал input[type='text'], двигаясь вперед.

...