Перейти к содержанию

@namespace

@namespace - это правила определяющие пространства имён XML, которые будут использованы в таблице стилей. Они применяются чтобы ограничить CSS селекторы только элементами принадлежащими конкретному пространству имён. Namespace'ы полезны, в основном, когда идёт взаимодействие с документами содержащими множество неймспейсов, такими как HTML5 со встроенным SVG, MathML или XML.

Синтаксис

@namespace url('http://www.w3.org/1999/xhtml');
@namespace svg url('http://www.w3.org/2000/svg');

/* This matches all XHTML <a> elements, as XHTML is the default unprefixed namespace */
a {
}

/* This matches all SVG <a> elements */
svg|a {
}

/* This matches both XHTML and SVG <a> elements */
*|a {
}

Описание

Любое @namespace правило обязано следовать всем @charset и @import правилам, а так же всем описаниям стилей в таблице стилей.

@namespace может быть использован для определения стандартного пространства имён для конкретной таблице стилей. Когда стандартное пространство имён определено, все селекторы (но не атрибуты селекторов) применяются только к элементам в этом неймспейсе.

Заметка

В XML, если префикс отличается от атрибута (Например, xlink:href), то аттрибут не будет иметь неймспейса. Другими словами, аттрибуты не могут наследовать пространство имён элемента в котором они находятся.

@namespace правила можно использовать для определения префиксов имён. Когда селектор имеет префикс, он будет выбирать элементы совпадающие по неймспейсу и именам или атрибутам.

В HTML5 существуют сторонние элементы которые автоматически ассоциируются с соответствующими пространствами имён. Это значит, что HTML элементы будут действовать так, как если бы они находились в пространстве имён (http://www.w3.org/1999/xhtml), также если они не имеют xmlns аттрибута где-либо в документе, то такие элементы как <svg> и <math> будут ассоциироваться с их стандартными пространствами имён (http://www.w3.org/2000/svg и http://www.w3.org/1998/Math/MathML).

Спецификация

Поддержка браузерами

  • Chrome 1.0+
  • Firefox 1.0
  • IE 9+
  • Opera 8.0+
  • Safari 3.0+

Ссылки