<switch>

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

<switch> SVG 元素按顺序评估其直接子元素上的所有 requiredFeaturesrequiredExtensionssystemLanguage 属性,然后渲染这些属性计算为 true 的第一个子元素。

其他直接子元素将被跳过,因此不会被渲染。如果子元素是容器元素(如 <g>),则其子树也会被处理/渲染或被跳过/不渲染。

注意: displayvisibility 属性对 <switch> 元素处理没有影响。特别是,将子元素的 display:none 设置为 true/false 测试对 <switch> 处理没有影响。

使用语境

分类容器元素
允许内容可包含任意数量、任意顺序的下列元素
动画元素
描述性元素
形状元素
<a><foreignObject><g><image><svg><switch><text><use>

属性

此元素仅包含全局属性。

DOM 接口

此元素实现 SVGSwitchElement 接口。

SVG <switch> 示例

此示例演示了根据浏览器的语言设置显示不同文本内容。switch 元素将显示其第一个 systemLanguage 属性与用户语言匹配的子元素,或者在没有 systemLanguage 属性的子元素都不匹配时显示没有 systemLanguage 属性的回退元素。

HTML

html
<svg viewBox="0 -20 100 50">
  <switch>
    <text systemLanguage="ar">مرحبا</text>
    <text systemLanguage="de,nl">Hallo!</text>
    <text systemLanguage="en-us">Howdy!</text>
    <text systemLanguage="en-gb">Wotcha!</text>
    <text systemLanguage="en-au">G'day!</text>
    <text systemLanguage="en">Hello!</text>
    <text systemLanguage="es">Hola!</text>
    <text systemLanguage="fr">Bonjour!</text>
    <text systemLanguage="ja">こんにちは</text>
    <text systemLanguage="ru">Привет!</text>
    <text>☺</text>
  </switch>
</svg>

结果

规范

规范
Scalable Vector Graphics (SVG) 2
# SwitchElement

浏览器兼容性