CSS и инструкции по обработке

У меня есть HTML-документ, который содержит инструкции по обработке и должен быть оформлен с использованием CSS. Я не нашел способа обратиться к инструкциям по обработке из CSS. Это возможно?

<div>
  Hello World
  <?pi1 ?>
  Test
  <?pi2 ?>
</div>

2 ответа

Решение

Нет. Браузеры будут воспринимать их как фиктивные комментарии, поэтому в DOM они будут узлами комментариев. Селекторы CSS совпадают с узлами элемента, поэтому инструкции по обработке не могут быть ссылочными

Другой ответ верен, указывая на то, что анализ HTML никогда не будет генерировать узлы инструкций обработки. Это описано (по состоянию на апрель 2023 г.) HTML LS §13.2.5.6 . Однако такие узлы по-прежнему можно создавать и вставлять в дерево DOM динамически во время выполнения, используя createProcessingInstructionи appendChildили insertBefore. Они даже появятся в.innerHTMLродительских узлов, даже если они не будут проходить без потерь при анализе HTML. Они по-прежнему полностью поддерживаются в XML DOM.

Тем не менее, узлы инструкций обработки, такие как узлы комментариев, не будут участвовать в стилизации, даже если они вставлены динамически. Таким образом, не существует селекторов CSS, которые могли бы их выбрать, даже вquerySelectorAll. Однако узлы инструкций обработки могут выбираться с помощью выражений XPath , что поддерживается и createExpression:

Неприятное осложнение: по состоянию на апрель 2023 г.evaluateне работает на узлах в основных браузерах (Firefox ESR 102 и Chromium 111). Или, скорее,DocumentFragmentнельзя использовать в качестве узла контекста, хотя его можно выбрать с помощью таких запросов, как..или/. Попытки создадутDOMException. Отрегулируйте соответствующим образом.

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