CSS - @namespace



@namespace 是一個用於指定要在 CSS 樣式表中使用的 XML 名稱空間的@規則

  • XML 名稱空間是透過@namespace規則建立的,並用於 CSS 樣式表。

  • 在具有多個名稱空間的文件中,例如與內聯 SVG 或 MathML 配合使用的 HTML,或混合的 XML 詞彙表,這些名稱空間可能會將選擇限制在該名稱空間內的特定專案。

  • 使用@namespace宏進行的名稱空間宣告必須出現在樣式表中其他 @規則和樣式宣告之前,並且必須遵守@charset@import規則。

  • 可以使用@namespace設定樣式表的預設名稱空間。使用預設名稱空間時,通用選擇器和型別選擇器(屬性選擇器除外)僅適用於該名稱空間內的專案。

  • 還可以使用@namespace規則定義名稱空間字首。當名稱空間字首新增到通用、型別或屬性選擇器時,只有當元素或屬性的名稱空間和名稱匹配時,選擇才會匹配。

  • 在 HTML 中,會自動為識別的外部元件提供名稱空間。因此,即使頁面沒有任何 xmlns 屬性的例項。

  • HTML 元件的行為就像它們位於 XHTML 名稱空間中一樣,並且 svg 和 math 元素將獲得其相應的名稱空間。

示例

以下示例演示了@namespace的使用。

<html>
<head>
<style>
    @namespace svg url('http://www.w3.org/2000/svg');
    body {
        font-family: Arial, sans-serif;
        background-color: #f0f0f0;
    }
    .html-link {
        color: green;
        text-decoration: underline;
        font-weight: bold;
    }
    svg|a {
        fill: navy;
        text-decoration: underline;
        font-weight: bold;
    }
</style>
</head>
<body>
<p><a href="#" class="html-link">This is a regular 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>
</body>
</html>
廣告
© . All rights reserved.