当前位置: 首页 > news >正文

Vue 中的 Class 与 Style 绑定详解2

绑定内联样式

绑定对象

:style 支持绑定 JavaScript 对象值,对应 HTML 元素的 style 属性:

 // 数据const activeColor = ref('red')const fontSize = ref(30)<div :style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>

解释:对象的键是 CSS 属性名,值是对应的属性值。注意数值类型的 CSS 属性(如字体大小)需要显式添加单位。

尽管推荐使用 camelCase 命名方式(如 fontSize),但 :style 也支持 kebab-cased 形式的 CSS 属性名(对应 CSS 中的实际名称):

 <div :style="{ 'font-size': fontSize + 'px' }"></div>

直接绑定一个样式对象通常是更好的做法,可以使模板更简洁:

 // 数据const styleObject = reactive({color: 'red',fontSize: '30px'})<div :style="styleObject"></div>

解释:将样式集中到一个对象中管理,使代码结构更清晰,尤其是在样式较多的情况下。

同样地,如果样式对象需要复杂逻辑,也可以使用返回样式对象的计算属性。

:style 指令也可以和常规的 style 属性共存:

 <h1 style="color: red" :style="'font-size: 1em'">hello</h1>

解释:渲染时会将两者合并:

 <h1 style="color: red; font-size: 1em;">hello</h1>

绑定数组

我们还可以给 :style 绑定一个包含多个样式对象的数组,这些对象会被合并后应用到同一元素上:

 <div :style="[baseStyles, overridingStyles]"></div>

解释:数组中的样式对象会按顺序合并,如果有重复的属性,后面的对象会覆盖前面的。

自动前缀

当在 :style 中使用需要浏览器特殊前缀的 CSS 属性时,Vue 会自动为它们添加相应的前缀。Vue 会在运行时检查浏览器是否支持该属性,如果不支持,会尝试添加各个浏览器的特殊前缀(如 -webkit--moz- 等),直到找到浏览器支持的形式。

样式多值

你可以为一个样式属性提供多个(不同前缀的)值:

 <div :style="{ display: ['-webkit-box', '-ms-flexbox', 'flex'] }"></div>

解释:Vue 会渲染浏览器支持的最后一个值。在这个例子中,现代浏览器会渲染为 display: flex,而较旧的浏览器会使用它们支持的前缀版本。

http://www.dtcms.com/a/325932.html

相关文章:

  • js数组reduce高阶应用
  • Linux入门DAY21
  • 硬件学习笔记--76 开关电源隔离型拓扑结构介绍
  • 九联科技基于海思 Hi2131 芯片的4G Cat.1模组在智能水表领域的应用优势
  • 押注AI大模型交付业务,亚信科技构建战略支点
  • 【02】卧安科技——卧安科技 嵌入式软件工程师-校招笔试 ,题目记录及解析
  • Vue3 学习教程,从入门到精通,Vue 3 选项式 API 语法知识点与案例详解(33)
  • 爬虫与数据分析相结合案例总结
  • 远程服务器下载百度云里文件
  • golang包管理工具中 GOPATH 与 Go Modules 的区别总结
  • JSON Schema
  • LabVIEW模糊逻辑控制车辆停靠
  • 在docker上部署fastapi的相关操作
  • day072-代码检查工具-Sonar与maven私服-Nexus
  • 深度学习-卷积神经网络-VGG
  • Maven 报错:Blocked mirror for repositories【完美解决】
  • 文旅元宇宙:科技重塑数字消费新文明
  • Azimutt:一款免费开源的多功能数据库工具
  • USB 设备百科
  • 解决:Error updating changes: detected dubious ownership in repository at
  • 爬虫和数据分析相结合的案例
  • Nami Cloud 提供高性能云服务,加速 Walrus 的应用普及
  • K8s集群+Rancher Server:部署DolphinScheduler 3.2.2集群
  • etf期权剩余0天还能交易吗?
  • Facebook广告投放进阶:ABO精测与CBO放量的协同增长策略
  • Android13 Framework隐藏某些App
  • 【深度学习基础】贝叶斯理论
  • Next.js API 路由:构建后端端点
  • 数据结构3线性表——单链表(C)
  • Flutter - 应用启动/路由管理