vue中使用use引入的svg怎么添加title

项目框架:

vue2

使用场景:

我们项目中的svg文件比较多,每个都copy里面的svg代码的话,会造成需要写很多个vue文件,于是乎当时采用了use的方式引入了svg文件

代码如下(当然中间省去了其他步骤,use方式引入svg不是本篇重点)

<template>
  <svg :class="svgClass" aria-hidden="true">
    <use :xlink:href="iconName"/>
  </svg>
</template>
遇到的问题

每个icon好像默认使用了文件名称作为title,也就是悬浮上去提示的文字。所以需要添加title

svg直接添加title是无效的,必须使用svg自己的title标签,直接添加到use的外面也是无效的,如下示例

<!-- 无效代码1 -->
<template>
  <svg :class="svgClass" aria-hidden="true" :title="title">
    <use :xlink:href="iconName"/>
  </svg>
</template>

<!-- 无效代码2 -->
<template>
  <svg :class="svgClass" aria-hidden="true">
    <use :xlink:href="iconName" :title="title"/>
  </svg>
</template>

<!-- 无效代码3 -->
<template>
  <svg :class="svgClass" aria-hidden="true">
    <title v-if="title">{{ title }}</title>
    <use :xlink:href="iconName"/>
  </svg>
</template>
最后的实现

需要加在use的里面

<template>
  <svg :class="svgClass" aria-hidden="true">
    <use :xlink:href="iconName">
      <title v-if="title">{{ title }}</title>
    </use>
  </svg>
</template>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值