亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

svg標簽中的text標簽文本如何處理溢出?

svg標簽中的text標簽文本如何處理溢出?

慕容708150 2018-09-02 13:02:05
先上圖說話吧上圖為現狀,下圖為希望結果核心代碼如下(寫的不好,大家別見怪)    <svg :width="panelObj.panelWidth" :height="panelObj.panelHeight" >       <!-- …… -->       <!-- 繪制節點 -->       <g v-for="(node,i) in nodes" :key="i">         <!-- 節點標題 -->         <rect :x="node.x+30" :y="node.y+5" width="20" height="20" :fill="`url(#titleIcon)`"/>          <text :x="node.x+50" :y="node.y+flow.lineHeight">{{node.title}}</text>         <!-- 節點列表 -->         <g v-for="(list,i) in node.textList" :key="i">           <rect :x="node.x+5" :y="node.y+(i+1)*flow.lineHeight+6" width="20" :height="flow.lineHeight-2" :fill="`url(#${list.dataType})`" />           <text :x="node.x+28" :y="node.y+(i+2)*flow.lineHeight">{{list.label }}</text>         </g>       </g>     </svg>試過用CSS處理文本溢出的方式,但是沒起效;試過用字符數截取的方法,但是英文字符的大小差異較大,參數難以統一。試了很久,也沒能解決這問題,希望路過的老司機帶下。
查看完整描述

1 回答

?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

解決之法,foreignObject,使用方式如下:

    <svg :width="panelObj.panelWidth" :height="panelObj.panelHeight" >
      <!-- …… -->
      <!-- 繪制節點 -->
      <g v-for="(node,i) in nodes" :key="i">
        <foreignObject width="node.width" height="node.height" x="node.x" y="node.y">
          <!-- 節點標題 -->
          <p><img :src="node.titleImgSrc" />{{node.title}}</p>
          <!-- 節點列表 -->
          <p v-for="(list,i) in node.textList" :key="i"><img :src="list.dataType" />{{list.label}}</p>
        </foreignObject>  
      </g>
    </svg>


查看完整回答
反對 回復 2018-09-02
  • 1 回答
  • 0 關注
  • 2758 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號