vue a标签_vue实战开发009:伪元素中如何引用字体图标

前面我们有说到如何使用Font Awesome字体图标: vue实战开发008:引入Font Awesome字体图标,在我们使用vue时通常不会把数据写死,而是定义一个数据列表,再通过遍历来获取相应的数据,这里我们模仿2345影视写了点内容,下面的版权声明我都是直接定义的数据列表再遍历展示的。

2070bcf4ffc58961c30fc7f0db475294.png

我们可以看到在 上海市互联网违法和不良信息举报中心前面有个Window的图标(我随意放的),这是个字体图标,正常情况下我们使用Font Awesome字体图标可以直接在a标签中嵌套一个即可。

44e9184062ba6f2df1f6915b3fb3518a.png

但是我们现在的a标签是通过vue进行列表遍历生成的,内容和个数随数据动态生成的,在代码中我们没法查看到对应的a标签并添加我们的字体图标,如图中所示:

5c237fbdb99638331f85319240f2efab.png

这时我我们就要用到伪元素了,动态添加我们想要的内容,比如说留言板这行,后面的“|”就是后期通过伪元素添加的,我在a标签后面动态添加了一个“|”,但是这样添加的之后我们可以发现,最后一个数据后面也出现了一个“|”所以这里我们要再添加一个样式,把最后一个元素后面的伪元素隐藏起来。

.affirming a::after{

content:"|" /*伪元素添加"|"*/

}

.affirming a:last-child::after{

display: none; /*隐藏最后一个伪元素*/

}

f26378a8911a6a72e45ce65cec1551f1.png

同样的道理,现在我们要为最后一个元素添加字体图标,我们同样要用到伪元素来操作,通过伪元素我动态给a标签添加到元素中去,一开始我想着直接在最后一个元素中添加或许可以实现,但是发现前台没法显示该元素,因为伪元素就是以标签的形式添加的,而我这添加的是个标签,中间的“fa fa-windows“已经被双引号给隔断了,并不是一个整体,所以连内容都无法显示。

eb1fb9733a19104b023c056c2288e14f.png

这里我们可以以字体编码的形式来添加字体图标,在伪元素中定义字体类型和对应的字体编码就可以把对应的字体图标给添加进元素中了:Font Awesome 官方图标字体的代码列表,大家可以根据这个来查找自己想要的字体图标,找到对应的图标,后面括号中的代码就是字体编码,如第一个 icon-glass (),我们只要提取f000,然后加上“”放入content中即:content:"f000" ;

45d4db7c24fecd89daa438573e3e0497.png

这样我们就可以通过伪元素的形式来添加字体图标了,当然如果你觉得麻烦也可以直接在HTML中来添加,这样我们就要用到判断了,我们提前在a标签中写好一个i标签,当它到最后一个元素的时候才显示,这里我用v-if来判断,当index等于列表最后一个元素时显示该字体图标,这个比伪元素简单点,不用再去找对应的字体编码。

b11ff952b3742824b65bc73f7d14c549.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
通过Vue的`:style`指令,我们可以动态地改变伪元素的样式。通过动态绑定`style`属性,我们可以声明一个CSS变量(例如`--bgColor`),并将变量的值赋给伪元素的背景颜色。例如,在HTML,我们可以使用以下代码: ```html <div ref="chart-circle" class="chart-circle" :style="{ '--bgColor': color }"></div> ``` 在CSS,我们可以使用`var()`函数来读取`--bgColor`变量,并将其作为伪元素的背景颜色。例如: ```CSS .chart-circle { width: 80px; height: 80px; position: relative; &::before { content: ""; position: absolute; top: 0; left: 0; width: 6px; height: 6px; border-radius: 50%; background-color: var(--bgColor); } } ``` 这样,当`color`变量的值发生变化时,伪元素的背景颜色也会相应地改变。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [vue动态设置css样式,设置class以及::before伪元素背景图片](https://blog.csdn.net/qq_40315971/article/details/116303139)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [vue动态设置::before伪元素样式背景颜色](https://blog.csdn.net/cczz66/article/details/122987795)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值