头歌(Educoder)——Vue基础——Vue3 Class 与 Style 绑定

目录

第1关:类与样式绑定

任务描述

相关知识

绑定 HTML class

绑定对象

绑定数组

在组件上使用

绑定内联样式

绑定对象

绑定数组

自动前缀

样式多值

编程要求

测试说明

代码文件


第1关:类与样式绑定

任务描述

本关任务:完成新浪导航栏绑定内联样式。

相关知识

为了完成本关任务,你需要掌握: 1.绑定 HTML class, 2.绑定内联样式。

绑定 HTML class
绑定对象

我们可以给 :class (v-bind:class 的缩写) 传递一个对象来动态切换 class:

 
  1. <div :class="{ active: isActive }"></div>

如下实例:

 
  1. <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
  2. <style>.ace6f8a6f-97ff-4ca2-886d-1a8008f10b5f .active { width: 150px; height: 150px; content:url('https://data.educoder.nethttps://data.educoder.net/api/attachments/4329753?type=image/png'&t=a09Pb2hwUG1qb3NGSVlMMGxMWVQzano4YVFyWFF2Ylg4aUZVYk9mZzdJdz0=);</style>
  3. <body>
  4. <div id="app">
  5. <div :class="{ 'active': isActive }"></div>
  6. </div>
  7. </body>
  8. <script>
  9. const { createApp } = Vue
  10. const a=createApp({
  11. data() {
  12. return {
  13. isActive: true,
  14. }
  15. },
  16. }
  17. );
  18. a.mount('#app');
  19. </script>

显示效果为:

上面的语法表示 active 是否存在取决于数据属性 isActive 的真假值,若为真,图片成功显示,假则不显示。

你可以在对象中写多个字段来操作多个 class。此外,:class 指令也可以和一般的 class attribute 共存。举例来说,下面这样的状态:

 
  1. data() {
  2. return {
  3. isActive: true,
  4. hasError: false
  5. }
  6. }

配合以下模板:

 
  1. <div
  2. class="static"
  3. :class="{ active: isActive, 'text-danger': hasError }"
  4. ></div>

渲染的结果会是:

 
  1. <div class="static active"></div>

完整代码如下:

 
  1. <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
  2. <style>.ace6f8a6f-97ff-4ca2-886d-1a8008f10b5f .static { width: 150px; height: 150px; }.ace6f8a6f-97ff-4ca2-886d-1a8008f10b5f .active{ content:url('https://data.educoder.nethttps://data.educoder.net/api/attachments/4329753?type=image/png'&t=a09Pb2hwUG1qb3NGSVlMMGxMWVQzano4YVFyWFF2Ylg4aUZVYk9mZzdJdz0=); }.ace6f8a6f-97ff-4ca2-886d-1a8008f10b5f .text-danger{ content:url('https://data.educoder.nethttps://data.educoder.net/api/attachments/4329890?type=image/png'&t=ZzNpTHpQSm55a1hjSnpvY2x0cGEwYUM2NlNrcEM4cE9NQVZPUUp6SnltND0=); </style>
  3. <body>
  4. <div id="app">
  5. <div class="static" :class="{ active: isActive, 'text-danger': hasError }"></div>
  6. </div>
  7. </body>
  8. <script>
  9. const { createApp } = Vue
  10. const a=createApp({
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小柒_02

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值