SVG 分支(switch)

举报
福州司马懿 发表于 2021/11/19 02:50:31 2021/11/19
【摘要】 <switch>简介 <switch>的典型用法是用于显示不同的文字,但不可以用它来显示不同的图形。 MDN开发文档 https://developer.mozilla....

<switch>简介

<switch>的典型用法是用于显示不同的文字,但不可以用它来显示不同的图形。

MDN开发文档 https://developer.mozilla.org/en-US/docs/Web/SVG/Element/switch

The <switch> SVG element evaluates the requiredFeatures, requiredExtensions and systemLanguage attributes on its direct child elements in order, and then processes and renders the first child for which these attributes evaluate to true. All others will be bypassed and therefore not rendered. If the child element is a container element such as a <g>, then the entire subtree is either processed/rendered or bypassed/not rendered.

Note that the values of properties display and visibility have no effect on switch element processing. In particular, setting display to none on a child of a switch element has no effect on true/false testing associated with switch element processing.

SVG的元素 <switch> 标签,会对它的直接子元素上的属性requiredFeatures, requiredExtensions 和 systemLanguage 按顺序地进行求值,直到结果为真。所有其它的元素都会被绕开,因此它们不会被表达。如果子元素是一个容器元素,比如<g>,整个子树要么被处理和表达,幺妹就会被绕过并且不表达。

注意,display 和 visibility 属性并不会影响分支元素的执行。特别的,在分支的子元素上设置disply为none,对处理相关联的真/假测试没有任何影响。

例子

This example demonstrates showing different text content depending on the browser’s language settings. The switch element will display the first of its child elements whose systemLanguage attribute matches the user’s language, or the element with no systemLanguage attribute if none of them matches.

下面的例子论证了根据浏览器的语音设置来显示不同的文本内容。switch分支将会显示它的子元素中第一个系统语言属性符合用户语言的元素,或者如果没有元素符合,那么将会显示没有系统语言属性的分支。

例一:某一分支符合

<svg xmlns="http://www.w3.org/2000/svg">
    <switch>
        <g systemLanguage="en-UK">
            <text x="10" y="20">UK English</text>
        </g>
        <g systemLanguage="en">
            <text x="10" y="20">English</text>
        </g>
        <g systemLanguage="es">
            <text x="10" y="20">Spanish</text>
        </g>
        <g systemLanguage="zh">
            <text x="10" y="20">中文</text>
        </g>
        <g>
            <text x="10" y="20">Default</text>
        </g>
    </switch> 
</svg>     
  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

Result:
中文

例二:所有分支均不符合

<svg xmlns="http://www.w3.org/2000/svg" >
   <switch>
      <text x="10" y="20" systemLanguage="ar">مرحبا</text>
      <text x="10" y="20" systemLanguage="de,nl">Hallo!</text>
      <text x="10" y="20" systemLanguage="en">Hello!</text>
      <text x="10" y="20" systemLanguage="en-us">Howdy!</text>
      <text x="10" y="20" systemLanguage="en-gb">Wotcha!</text>
      <text x="10" y="20" systemLanguage="en-au">G'day!</text>
      <text x="10" y="20" systemLanguage="es">Hola!</text>
      <text x="10" y="20" systemLanguage="fr">Bonjour!</text>
      <text x="10" y="20" systemLanguage="ja">こんにちは</text>
      <text x="10" y="20"></text>
   </switch>
</svg>
  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

Result:

文章来源: blog.csdn.net,作者:福州-司马懿,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/chy555chy/article/details/53364684

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。