Я хочу создать внешний графический интерфейс, который работает на общем фрагменте HTML, который поставляется с соответствующим CSS.Чтобы включить некоторые функции графического интерфейса, мне нужно было бы создать некоторые «мета» HTML-элементы, которые будут содержать части контента и связывать их с данными.
Пример:
<div id="root">
<foo:meta data-source="document:1111" data-xref="...">
sometext
<p class="quote">...</p>
</foo:meta>
<p class="other">...</p>
</div>
Этот HTML-код генерируется автоматически, начиная с уже существующего HTML-кода, связанного с CSS:
<div id="root">
sometext
<p class="quote">...</p>
<p class="other">...</p>
</div>
#root>p {
color:green;
}
#root>p+p {
color:red;
}
Проблема заключается в том, когдадобавив элемент <foo:meta>
, это ломает селекторы дочерних и родственных элементов CSS.Я ищу способ CSS-селекторов продолжать работать при инкапсуляции контента таким образом.Мы попробовали стиль foo\:meta{display:contents}
, но, хотя он работает с точки зрения сокрытия мета-элемента от средства визуализации ящика, он не скрывает его от сопоставителя селектора.Мы не создаем HTML / CSS для обработки, поэтому писать их определенным образом перед обработкой не вариант.Они приходят как есть, обычные HTML-документы со связанным CSS.
Есть ли способ достичь того, что мы ищем, используя HTML / CSS?
Иными словами, мы ищем способ динамически инкапсулировать части содержимого в невизуальные элементы, не нарушая дочерние и родственные селекторы CSS.Элементы должны быть доступны только для обхода DOM, например document.getElementsByTagName('foo:meta')