Другие ответы указывают на проблему с помощью числового идентификатора. Они правильны в теории, но на практике все современные браузеры поддерживают числовые идентификаторы. Так, например, getElementById('88')
будет работать.
Проблема заключается не в HTML, а в CSS.CSS имеет понятие Идентификаторы CSS, что равно , а не, идентичное правилам для HTML-идентификаторов. Правило, использующее недопустимый идентификатор CSS в качестве идентификатора (#88
), является недопустимым и поэтому игнорируется. Это не, потому что это недопустимый HTML-код; это потому, что это недопустимый идентификатор CSS.
Таким образом, как правильно указал @Manoj Kumar, вы можете обойти эту проблему, избежав идентификатора в форме #\38\38
.
Этот же трюк может быть использован в случае имени класса, содержащего двоеточие. Вы можете сказать, что это неверно. Технически это может быть так, но он отлично работает в HTML. Проблема заключается в том, как избежать толстой кишки; в этом случае вы можете сделать это с помощью одной обратной косой черты, как в a\:b
.
Другой запутанная вещь о вашем примере, что вы используете content
свойство с селектором, который не является либо ::before
или ::after
псевдо-селектором. Это также «недействительно». Вы должны это исправить. Я бы никоим образом не полагался на это, работая над всеми браузерами. Однако он работает, как оказалось, хотя бы в Chrome (но не в FF, например).
Аналогичным образом недействителен синтаксис значения, которое вы передаете свойству content
. Правильные значения включают строки или синтаксис attr()
. Поэтому вы также должны это исправить. Это нестандартно. Он работает только случайно. Вместо этого вы должны использовать background-image
.
Посмотрите на это: [Допустимые значения атрибута id] (http://stackoverflow.com/questions/70579/what-are-valid-values-for-the-id-attribute-in-html) – ScottMcGready
Какую версию DOCTYPE вы используете? –