CSS 2.1 определяет идентификаторы как
В CSS идентификаторы могут содержать только символы [a-zA-Z0-9] и ISO 10646 символов U + 00A0 и выше, плюс дефис (-) и нижнее подчеркивание (_); они не могут начинаться с цифры, двух дефисов или дефис, затем цифра. Идентификаторы также могут содержать экранированные символов и любого символа ISO 10646 в виде числового кода.
Следовательно, --
должен быть недопустимым идентификатором, и поэтому #--
не должен выбирать элемент с id="--"
:
body { color: black }
#-- { color: red }
<p id="--">I should be black.</p>