From 34e45a7a29bd23d5465ce34e287858788aa2f183 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Sun, 20 Feb 2022 18:15:53 +0900 Subject: 2022/02/18 時点の英語版に同期 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- files/ja/web/css/@namespace/index.md | 105 +++++++++++++++++------------------ 1 file changed, 52 insertions(+), 53 deletions(-) (limited to 'files/ja/web/css/@namespace') diff --git a/files/ja/web/css/@namespace/index.md b/files/ja/web/css/@namespace/index.md index 3ea4617676..61a3382c8f 100644 --- a/files/ja/web/css/@namespace/index.md +++ b/files/ja/web/css/@namespace/index.md @@ -2,77 +2,76 @@ title: '@namespace' slug: Web/CSS/@namespace tags: - - '@-規則' + - アットルール - CSS - CSS 名前空間 - - Layout - - Reference - - Web - - ウェブ - レイアウト + - リファレンス + - ウェブ +browser-compat: css.at-rules.namespace translation_of: Web/CSS/@namespace --- -
{{CSSRef}}
+{{CSSRef}} -

@namespace は、CSS スタイルシート で使用する XML 名前空間を定義する @-規則です。定義済みの名前空間は、全称要素型属性の各セレクターで、その名前空間内の要素だけを選択するために使用することができます。 @namespace 規則は通常、複数の名前空間を含む文書 (インラインで SVG や MathML を含む HTML5 文書や、複数のボキャブラリが混在する XML 文書など) を扱う際に役立ちます。

+**`@namespace`** は[アットルール](/ja/docs/Web/CSS/At-rule)で、 +[CSS](/ja/docs/Glossary/CSS) [スタイルシート](/ja/docs/Web/API/StyleSheet) で使用する [XML 名前空間](/ja/docs/Namespaces)を定義します。 -
@namespace url(http://www.w3.org/1999/xhtml);
-@namespace svg url(http://www.w3.org/2000/svg);
+## 構文
 
-/* XHTML は既定で接頭辞のない名前空間であるため、これは XHTML のすべての <a> 要素を選択します。 */
-a {}
+```css
+/* 既定の名前空間 */
+@namespace url(XML-namespace-URL);
+@namespace "XML-namespace-URL";
 
-/* これはすべての SVG <a> 要素を選択します。 */
-svg|a {}
+/* 接頭辞つきの名前空間 */
+@namespace prefix url(XML-namespace-URL);
+@namespace prefix "XML-namespace-URL";
+```
 
-/* This matches both XHTML and SVG <a> elements */
-*|a {}
+## 解説 -

@namespace 規則は、スタイルシート内ですべての @charset および @import 規則より後、また他の @-規則やスタイル宣言より前に配置しなければなりません。

+定義された名前空間は、[全称](/ja/docs/Web/CSS/Universal_selectors)、[型](/ja/docs/Web/CSS/Type_selectors)、[属性](/ja/docs/Web/CSS/Attribute_selectors)[セレクター](/ja/docs/Learn/CSS/Building_blocks/Selectors)において、選択する要素をその名前空間に制限するために使用することができます。 `@namespace` ルールは一般に、複数の名前空間を含む文書を扱う場合—例えば、HTML5 でインラインの SVG や MathML を併用する場合や、複数の語彙が混在する XML などでのみ役立ちます。 -

@namespace は、スタイルシートの既定の名前空間を定義できます。既定の名前空間を定義するとすべての全称セレクターや要素型セレクター (属性セレクターは除く。後述の注記を参照) は、既定の名前空間内の要素にのみ適用されます。

+`@namespace` ルールは、スタイルシート内ですべての {{cssxref("@charset")}} および [@import]{{cssxref("@import")}} ルールより後、また他のアットルールや[スタイル宣言](/ja/docs/Web/API/CSSStyleDeclaration)より前に配置しなければなりません。 -

また、 @namespace 規則で名前空間の接頭辞を定義できます。全称セレクター、要素型セレクター、属性セレクターに名前空間の接頭辞を付加すると、これらのセレクターは名前空間および要素または属性に一致する場合のみ一致します。

+`@namespace` は、スタイルシートの**既定の名前空間**が定義できます。既定の名前空間を定義するとすべての全称セレクターや要素型セレクター(属性セレクターは除く。後述のメモを参照)は、既定の名前空間内の要素にのみ適用されます。 -

HTML5 では、既知の外来要素へ自動的に名前空間が割り当てられます。すなわち、 HTML 要素は文書内に xmlns 属性が存在しなくても XHTML 名前空間 (http://www.w3.org/1999/xhtml) に含まれているかのように動作します。また <svg> および <math> 要素は、適切な名前空間 (http://www.w3.org/2000/svg および http://www.w3.org/1998/Math/MathML) が割り当てられます。

+また、 `@namespace` ルールで**名前空間の接頭辞**が定義できます。全称セレクター、要素型セレクター、属性セレクターに名前空間の接頭辞を付加すると、これらのセレクターは名前空間*および*要素または属性に一致する場合のみ一致します。 -
-

メモ: XML では、属性に直接接頭辞を定義しない限り (: xlink:href)、属性は名前空間を持ちません。言い換えると、属性は所属する要素から名前空間を継承しません。この動作に合わせるため、 CSS の既定の名前空間は属性セレクターに適用しません。

-
+[HTML5](/ja/docs/Glossary/HTML5) では、既知の[外来要素](https://html.spec.whatwg.org/#foreign-elements)へ自動的に名前空間が割り当てられます。すなわち、 HTML 要素は文書内に `xmlns` 属性が存在しなくても XHTML 名前空間 (`http://www.w3.org/1999/xhtml`) に含まれているかのように動作します。また [\](/ja/docs/Web/SVG/Element/svg) および [\](/ja/docs/Web/MathML/Element/math) 要素は、適切な名前空間(`http://www.w3.org/2000/svg` および `http://www.w3.org/1998/Math/MathML`)が割り当てられます。 -

構文

+> **Note:** XML では、属性に直接接頭辞を定義しない限り(*例*: `xlink:href`)、属性は名前空間を持ちません。言い換えると、属性は所属する要素から名前空間を継承しません。この動作に合わせるため、 CSS の既定の名前空間は属性セレクターに適用しません。 -
/* 既定の名前空間 */
-@namespace url(XML-namespace-URL);
-@namespace "XML-namespace-URL";
+## 形式文法
 
-/* 接頭辞つき名前空間 */
-@namespace prefix url(XML-namespace-URL);
-@namespace prefix "XML-namespace-URL";
+{{csssyntax}} -

形式文法

+## 例 -{{csssyntax}} +### 既定かつ定義済みの名前空間の指定 + +```css +@namespace url(http://www.w3.org/1999/xhtml); +@namespace svg url(http://www.w3.org/2000/svg); + +/* XHTML は既定で接頭辞のない名前空間であるため、これは XHTML のすべての 要素を選択します */ +a {} + +/* これはすべての SVG 要素を選択します */ +svg|a {} + +/* XHTML と SVG の両方の 要素に一致します */ +*|a {} +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 -

仕様書

- - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('CSS3 Namespaces', '#declaration', '@namespace')}}{{Spec2('CSS3 Namespaces')}}初回定義
- -

ブラウザーの対応

- -

{{Compat("css.at-rules.namespace")}}

+- [名前空間の集中講座](/ja/docs/Web/SVG/Namespaces_Crash_Course) -- cgit v1.2.3-54-g00ecf