Что можно делать с namespace'ами?

Беру пример с mdn - он работает:

@namespace svg url("http://www.w3.org/2000/svg");

a {
  color: red;
}

svg|a {
  fill: green;
}
<p>
  <a href="#">This is an ordinary HTML link</a>
</p>

<svg width="250px" viewBox="0 0 250 20" xmlns="http://www.w3.org/2000/svg">
  <a href="#">
    <text x="0" y="15">This is a link created in SVG</text>
  </a>
</svg>

Причём работает даже если из него выкинуть xmlns:

@namespace svg url("http://www.w3.org/2000/svg");

a {
  color: red;
}

svg|a {
  fill: green;
}
<p>
  <a href="#">This is an ordinary HTML link</a>
</p>

<svg width="250px" viewBox="0 0 250 20">
  <a href="#">
    <text x="0" y="15">This is a link created in SVG</text>
  </a>
</svg>

Пытаюсь поместить тот же селектор svg|a в document.querySelectorAll - ошибка, хотя *|* он понимает:

Uncaught SyntaxError: Failed to execute 'querySelectorAll' on 'Document': 'svg|a' is not a valid selector.

console.log(document.querySelectorAll("*|*").length)
console.log(document.querySelectorAll("svg|a").length)
@namespace svg url("http://www.w3.org/2000/svg");

a {
  color: red;
}

svg|a {
  fill: green;
}
<p>
  <a href="#">This is an ordinary HTML link</a>
</p>

<svg width="250px" viewBox="0 0 250 20" xmlns="http://www.w3.org/2000/svg">
  <a href="#">
    <text x="0" y="15">This is a link created in SVG</text>
  </a>
</svg>

Пытаюсь создать свой namespace - не работает даже css, даже если xmlns тегу прописать:

@namespace smth url("http://example.com/smth");

smth|qqq {
  color: red;
}
<p>
  <smth:qqq>Smth</smth:qqq>
</p>

<p>
  <smth:qqq xmlns="http://example.com/smth">Smth</smth:qqq>
</p>

Пытаюсь создать селектор через devtools хрома - он пишет smth:qqq, что, естественно, не работает (и вообще селектор исчезает при потере фокуса полем ввода селектора):

скриншот devtools

Как будто namespace'ы вообще нельзя использовать ни для чего кроме стилей для svg? Или я что-то не так делаю? Или они нормально работают только в xhtml, но не в html?

Смотрю в 64-битных Google Chrome 142.0.7444.176 и Firefox 145.0.2 на Win11.


Ответы (0 шт):