新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论SVG, GML, X3D, VRML, VML, XAML, AVALON, Batik等基于XML的图形技术,以及有关GIS的应用。
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - 高级XML应用『 SVG/GML/VRML/X3D/XAML 』 → Text-svg元素详解 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 8850 个阅读者浏览上一篇主题  刷新本主题   平板显示贴子 浏览下一篇主题
     * 贴子主题: Text-svg元素详解 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     wanghai00 帅哥哟,离线,有人找我吗?魔羯座2000-12-31
      
      
      威望:4
      等级:大四(总算啃完XML规范了)
      文章:108
      积分:1085
      门派:XML.ORG.CN
      注册:2005/10/1

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给wanghai00发送一个短消息 把wanghai00加入好友 查看wanghai00的个人资料 搜索wanghai00在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 点击这里发送电邮给wanghai00  访问wanghai00的主页 引用回复这个贴子 回复这个贴子 查看wanghai00的博客楼主
    发贴心情 Text-svg元素详解

    本文为Scalable Vector Graphics (SVG) 1.1 Specification中text部分,学习笔记。

    http://www.w3.org/TR/SVG11/text.html#TextElement

    1.The 'text' element

    主要属性有:x,y,dx,dy,rotate,textLength,lengthAdjust

    x,y表示文本的横纵坐标。

    dx,dy表示移动的横纵坐标。

    rotate表示旋转的度数。

    Example text01 :
    <?xml version="1.0" standalone="no"?>
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
      "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    <svg width="10cm" height="3cm" viewBox="0 0 1000 300"
         xmlns="http://www.w3.org/2000/svg" version="1.1">
      <desc>Example text01 - 'Hello, out there' in blue</desc>
      <text x="250" y="150"
            font-family="Verdana" font-size="55" fill="blue" >
        Hello, out there
      </text>
      <!-- Show outline of canvas using 'rect' element -->
      <rect x="1" y="1" width="998" height="298"
            fill="none" stroke="blue" stroke-width="2" />
    </svg>


    效果展示:http://www.w3.org/TR/SVG11/images/text/text01.svg

    2.tspan元素

    Within a 'text' element, text and font properties and the current text position can be adjusted with absolute or relative coordinate values by including a 'tspan' element.

    主要属性有:x,y,dx,dy,rotate,textLength,lengthAdjust

    属性解释同上。

    Example tspan01

    <?xml version="1.0" standalone="no"?>
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
      "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    <svg width="10cm" height="3cm" viewBox="0 0 1000 300"
         xmlns="http://www.w3.org/2000/svg" version="1.1">
      <desc>Example tspan01 - using tspan to change visual           attributes</desc>
      <g font-family="Verdana" font-size="45" >
        <text x="200" y="150" fill="blue" >
          You are
            <tspan font-weight="bold" fill="red" >not</tspan>
          a banana.
        </text>
      </g>
      <!-- Show outline of canvas using 'rect' element -->
      <rect x="1" y="1" width="998" height="298"
            fill="none" stroke="blue" stroke-width="2" />
    </svg>

    效果展示:http://www.w3.org/TR/SVG11/images/text/tspan01.svg

    Example tspan02

    <?xml version="1.0" standalone="no"?>
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
      "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    <svg width="10cm" height="3cm" viewBox="0 0 1000 300"
         xmlns="http://www.w3.org/2000/svg" version="1.1">
      <desc>Example tspan02 - using tspan's dx and dy attributes
            for incremental positioning adjustments</desc>
      <g font-family="Verdana" font-size="45" >
        <text x="200" y="150" fill="blue" >
          But you
            <tspan dx="2em" dy="-50" font-weight="bold" fill="red" >
              are
            </tspan>
            <tspan dy="100">
               a peach!
            </tspan>
        </text>
      </g>
      <!-- Show outline of canvas using 'rect' element -->
      <rect x="1" y="1" width="998" height="298"
            fill="none" stroke="blue" stroke-width="2" />
    </svg>

    效果展示:http://www.w3.org/TR/SVG11/images/text/tspan02.svg

    3.tref元素

    The textual content for a 'text' can be either character data directly embedded within the 'text' element or the character data content of a referenced element, where the referencing is specified with a 'tref' element

    文本内容可以用text元素直接包含进来,或者用tref元素引用进来。

    主要属性有:x,y,dx,dy,rotate,textLength,lengthAdjust,xlink:href

    xlink:href属性指定引用的url。其他属性同上。

    Example tref01

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
      "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    <svg width="10cm" height="3cm" viewBox="0 0 1000 300"
         xmlns="http://www.w3.org/2000/svg" version="1.1"
         xmlns:xlink="http://www.w3.org/1999/xlink">
      <defs>
        <text id="ReferencedText">
          Referenced character data
        </text>
      </defs>
      <desc>Example tref01 - inline vs reference text content</desc>
      <text x="100" y="100" font-size="45" fill="blue" >
        Inline character data
      </text>
      <text x="100" y="200" font-size="45" fill="red" >
        <tref xlink:href="#ReferencedText"/>
      </text>
      <!-- Show outline of canvas using 'rect' element -->
      <rect x="1" y="1" width="998" height="298"
            fill="none" stroke="blue" stroke-width="2" />
    </svg>


    <?xml version="1.0" standalone="no"?>
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
      "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    <svg width="10cm" height="3cm" viewBox="0 0 1000 300"
         xmlns="http://www.w3.org/2000/svg" version="1.1"
         xmlns:xlink="http://www.w3.org/1999/xlink">
      <defs>
        <text id="ReferencedText">
          Referenced character data
        </text>
      </defs>
      <desc>Example tref01 - inline vs reference text content</desc>
      <text x="100" y="100" font-size="45" fill="blue" >
        Inline character data
      </text>
      <text x="100" y="200" font-size="45" fill="red" >
        <tref xlink:href="#ReferencedText"/>
      </text>
      <!-- Show outline of canvas using 'rect' element -->
      <rect x="1" y="1" width="998" height="298"
            fill="none" stroke="blue" stroke-width="2" />
    </svg>

    <?xml version="1.0" standalone="no"?>
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
      "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    <svg width="10cm" height="3cm" viewBox="0 0 1000 300"
         xmlns="http://www.w3.org/2000/svg" version="1.1"
         xmlns:xlink="http://www.w3.org/1999/xlink">
      <defs>
        <text id="ReferencedText">
          Referenced character data
        </text>
      </defs>
      <desc>Example tref01 - inline vs reference text content</desc>
      <text x="100" y="100" font-size="45" fill="blue" >
        Inline character data
      </text>
      <text x="100" y="200" font-size="45" fill="red" >
        <tref xlink:href="#ReferencedText"/>
      </text>
      <!-- Show outline of canvas using 'rect' element -->
      <rect x="1" y="1" width="998" height="298"
            fill="none" stroke="blue" stroke-width="2" />
    </svg>

    效果展示:http://www.w3.org/TR/SVG11/images/text/tref01.svg

    4.Text layout

           'writing-mode'      lr-tb | rl-tb | tb-rl | lr | rl | tb | inherit
    本属性仅仅用于text元素,在 'tspan', 'tref', 'altGlyph' 和 'textPath'自元素中将忽略。
    当文字竖排时,可以用'glyph-orientation-vertical' 属性来具体设置
             'glyph-orientation-vertical'     auto | <angle> | inherit
    当文字横排时,可以用'glyph-orientation-horizontal' 属性来具体设置
             'glyph-orientation-horizontal'     <angle> | inherit
    以上两属性的angle只能是90的倍数
          
           'direction'    ltr | rtl | inherit
    direction属性设置文本的排列方式。
    要使direction属性生效,'unicode-bidi' 属性的值必须为'embed' 或者 'bidi-override'.
            'unicode-bidi'   normal | embed | bidi-override | inherit
    unicode-bidi属性设置文本的双向方式。
    Example layout01

    <?xml version="1.0" standalone="no"?>
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"   "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    <svg width="10cm" height="5cm" viewBox="0 0 1000 500"     xmlns="http://www.w3.org/2000/svg" version="1.1"     xmlns:xlink="http://www.w3.org/1999/xlink">
    <defs>    
         <text id="myText">This is a test!</text>
    </defs>
    <desc>Example tref01 - inline vs reference text content</desc>
      <text font-size="60" fill="blue" font-family="Verdana">
         <tref xlink:href="#myText" x="20" y="50"/>
      </text>
        <!-- 文字水平排列时,利用          glyph-orientation-horizontal属性来设置文layout -->
       <text font-size="60" fill="blue" font-family="Verdana">
            <tref xlink:href="#myText" x="20" y="130"            glyph-orientation-horizontal="180"/>
      </text>
        <!-- 当unicode-bidi属性值为embed或bidi-override时,       利用direction来设置文字layout -->
        <text font-size="60" fill="blue" font-family="Verdana">
           <tref xlink:href="#myText" x="20" y="210"            direction="rtl" unicode-bidi="bidi-override"/>
      </text>
      <!-- 利用writing-mode属性设置文字layout -->
      <text x="800" y="20" writing-mode="tb" font-size="60"         fill="blue" font-family="Verdana">
         This is a test!
      </text>
    <!-- 文字竖直排列时,       利用glyph-orientation-vertical属性来设置文字layout -->      <text x="900" y="20"  font-size="60" fill="blue"         font-family="Verdana"        writing-mode="tb" glyph-orientation-vertical="270">
         This is a test!
      </text>
      <!-- Show outline of canvas using 'rect' element -->
      <rect x="1" y="1" width="998" height="498"        fill="none" stroke="blue" stroke-width="2" />
    </svg>
    自己保存成.svg观看效果。文中有中文注释,所以可能要保存utf-8格式,方可正常显示。

    5.Alignment properties

            'text-anchor'   start | middle | end | inherit

    text-anchor设置文本的排列属性。

    6.Font selection properties

           'font-family'    

           'font-style'    normal | italic | oblique | inherit

           'font-variant'    normal | small-caps | inherit

           'font-weight'    normal | bold | bolder | lighter | 100 | 200 | 300| 400 | 500 | 600 | 700 | 800|  
                                          900 | inherit

           'font-stretch'     normal | wider | narrower |ultra-condensed | extra-condensed |condensed |
                                      semi-condensed |semi-expanded | expanded |extra-expanded | ultra-expanded |
                                      inherit

           'font-size'      <absolute-size> | <relative-size> |<length> | <percentage> | inherit

    7.Spacing properties
           'kerning'   auto | <length> | inherit

            'letter-spacing'    normal | <length> | inherit

            'word-spacing'      normal | <length> | inherit

    8.Text decoration

            'text-decoration'   none | [ underline || overline || line-through || blink ] | inherit

    Example textdecoration01

    <?xml version="1.0" standalone="no"?>
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
      "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    <svg width="12cm" height="4cm" viewBox="0 0 1200 400"
         xmlns="http://www.w3.org/2000/svg" version="1.1">
      <desc>Example textdecoration01 - behavior of 'text-decoration'         property</desc>
      <rect x="1" y="1" width="1198" height="398"         fill="none" stroke="blue" stroke-width="2" />
      <g font-size="60" fill="blue" stroke="red" stroke-width="1" >
        <text x="100" y="75">Normal text</text>
        <text x="100" y="165" text-decoration="line-through" >        Text with line-through    </text>
        <text x="100" y="255" text-decoration="underline" >        Underlined text    </text>
        <text x="100" y="345" text-decoration="underline" >
          <tspan>One </tspan>
          <tspan fill="yellow" stroke="purple" >word </tspan>
          <tspan fill="yellow" stroke="black" >has </tspan>
          <tspan fill="yellow" stroke="darkgreen"              text-decoration="underline" >different </tspan>
          <tspan fill="yellow" stroke="blue" >underlining</tspan>
        </text>
      </g>
    </svg>

    效果展示:http://www.w3.org/TR/SVG11/images/text/textdecoration01.svg

    9.text on path

    主要属性有:startOffset,textLength,lengthAdjust,method,spacing
    startOffset设置文字开始的位置。startOffset = "<length>"
    method设置文字与路径的位置关系。method = "align | stretch"  align为默认值。
    spacing设置文字与路径的空间。spacing = "auto | exact"    exact为默认值。
    xlink:href设置绑定的路径。

    Example toap01

    <?xml version="1.0" standalone="no"?>
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
      "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    <svg width="12cm" height="3.6cm" viewBox="0 0 1000 300"      version="1.1" xmlns=http://www.w3.org/2000/svg      xmlns:xlink="http://www.w3.org/1999/xlink">
      <defs>
        <path id="MyPath"
              d="M 100 200
                 C 200 100 300   0 400 100
                 C 500 200 600 300 700 200
                 C 800 100 900 100 900 100" />
      </defs>
      <desc>Example toap02 - tspan within textPath</desc>
      <use xlink:href="#MyPath" fill="none" stroke="red"  />
      <text font-family="Verdana" font-size="42.5" fill="blue" >
        <textPath xlink:href="#MyPath">
          We go
          <tspan dy="-30" fill="red" >
            up
          </tspan>
          <tspan dy="30">
            ,
          </tspan>
          then we go down, then up again
        </textPath>
      </text>
      <!-- Show outline of canvas using 'rect' element -->
      <rect x="1" y="1" width="998" height="298"
            fill="none" stroke="blue" stroke-width="2" />
    </svg>

    效果展示:http://www.w3.org/TR/SVG11/images/text/toap02.svg

    10.White space handling

             xml:space    default|preserve


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    交流提高呀!

    svg技术交流: 
    http://greaterthanme.blog.hexun.com/list.aspx?
    tag=svg
    svg技术交流群:24785607
    svg文件共享邮箱:svgcn@126.com  
    password:svg.net.cn

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/9/30 8:05:00
     
     GoogleAdSense魔羯座2000-12-31
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 点击这里发送电邮给Google AdSense  访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/3 20:59:52

    本主题贴数1,分页: [1]

     *树形目录 (最近20个回帖) 顶端 
    主题:  Text-svg元素详解(12512字) - wanghai00,2006年9月30日

    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    7,109.375ms