Исключение, возникающее при попытке выбрать идентификатор CSS, содержащий "|"

Идентификаторы моих элементов управления построены с помощью символов |, но при попытке выбрать элемент управления в блоке с помощью «Найти» он попадает в исключение и не может найти элемент.

Имеет ли | особое значение в CSS?

w3schools.com/cssref/css_selectors.php
DarkBee 12.04.2024 07:47

Где ваш код? Возможно, у вас есть id = "foo|bar" и в атрибуте HTML ID указан недопустимый символ. Проверьте w3.org/TR/html4/types.html 6,2 балла.

Justinas 12.04.2024 07:51

В старой спецификации я видел In CSS, identifiers (including element names, classes, and IDs in selectors) can contain only the characters [a-zA-Z0-9] and ISO 10646 characters U+00A1 and higher, plus the hyphen (-) and the underscore (_).

qrsngky 12.04.2024 07:53

Кажется, это разрешено в HTML5, но просто не может содержать пробелов.

DarkBee 12.04.2024 08:09

Это действительный идентификатор HTML5, но если вы попробуете document.querySelector("#foo|bar"), вы получите исключение, например Uncaught DOMException: Failed to execute 'querySelector' on 'Document': '#foo|bar' is not a valid selector.

qrsngky 12.04.2024 08:11

Ну да, потому что | используется в CSS для других целей, как видно из связанного URL.

DarkBee 12.04.2024 08:15

Спрашивающий спрашивает, | имеет какое-то значение в CSS, и я не знаю, что это такое (я просмотрел ссылку @DarkBee). Может кто-нибудь объяснить?

A Haworth 12.04.2024 09:45

@AHaworth — в данном случае символ «вертикальной черты» является разделителем пространства имен. Таким образом, селектор foo|bar означает элемент «bar» в пространстве имен, связанном с префиксом «foo». Связь префикса с пространством имен осуществляется с помощью правила @namespace at. При стилизации HTML-документов в этом нет особой необходимости, но это полезная функция для стилизации XML-документов. Подробности см. в разделе CSS-полные имена.

Alohci 13.04.2024 03:54
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
1
9
68
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Да, вертикальная трубка имеет особое значение в CSS. Вам нужно экранировать его внутри селектора идентификатора или класса.

#foo|bar {
  color: blue;
}

#bar\|foo {
  color: red;
}
<div id = "foo|bar">I am not blue</div>
<div id = "bar|foo">I am red</div>

Другие вопросы по теме