Селектор CSS с периодом в ID
Спецификация HTML позволяет использовать периоды (.) в id:
<img id="some.id" />
Однако использование правила выбора идентификатора CSS не будет правильно соответствовать:
#some.id { color: #f00; }
Спецификация CSS для ID Selectors не упоминает этот случай. Поэтому я предполагаю, что он использует комбинацию имени тега и селектор классов? Например, правило CSS для a.className
применимо ко всем тэгам привязки (<a>
) с именем класса className
, например <a class="className"></a>
.
Возможно ли иметь внешнее правило CSS файла, которое ссылается на элемент HTML по его идентификатору, имеющему период в нем?
Я не ожидаю, потому что спецификация CSS указывает, что CSS identifier" не включает период как действительный символ. Так это фундаментальное несоответствие между спецификациями HTML и CSS? Является ли моя единственная альтернатива использованию другого типа выбора CSS? Может ли кто-нибудь умнее, чем я подтверждаю или отрицаю это?
(Я бы удалил период из атрибута id HTML, чтобы упростить вещи, но это системный идентификатор, поэтому у меня нет возможности изменить его в этом случае.)
Ответы
Ответ 1
Классический. Сразу после прохождения всех спецификаций, которые пишут вопрос, я прочитал его еще и обнаружил, что есть escape-символ. Я никогда не нуждался в этом раньше, но спецификация CSS позволяет обратную косую черту (\) экранировать, как и большинство языков. Что вы знаете?
Итак, в моем примере следующее правило будет соответствовать:
#some\.id { color: #f00; }
Ответ 2
Вы также можете использовать img [id = some.id]]
Дополнительная информация здесь: http://www.w3.org/TR/selectors/#attribute-selectors