前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >22 内联样式的绑定

22 内联样式的绑定

作者头像
LIYI
发布2020-02-13 11:58:44
7440
发布2020-02-13 11:58:44
举报
文章被收录于专栏:艺述论专栏

一般语法

内联样式的绑定,与class绑定一样,vue同样做了基于对象绑定与数组绑定的优化。

例如,一般基于表达式内联样式这样声明:

代码语言:javascript
复制
<!-- 一般语法 -->
<div v-bind:style="`color: ${activeColor}; font-size: ${fontSize}px;`">{{message}}</div>

对象绑定

基于模板字符串,代码还不算太混乱。如果使用使用对象绑定的语法:

代码语言:javascript
复制
<!-- 对象语法 -->
<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }">{{message}}</div>

反而不是特别直接了。因为对象的键名不能有连字符,所以在内联style对象绑定的语法里,特意使用驼峰式(camelCase)变量全名法,替换了短横线分隔式(kebab-case),这使得样式名不直观了。

还有一种写法,直接用短横线分隔式,将style名称加个引号使用:

代码语言:javascript
复制
<div v-bind:style="{ color: activeColor, 'font-size': fontSize + 'px' }">{{message}}</div>

对于中间没有连字符的,如color,不用加单引号。

以上三种写法,渲染效果是一样的:

数组绑定

还有一种是数组绑定的方式:

代码语言:javascript
复制
<!-- 数组语法 -->
<div v-bind:style="[baseStyles,baseStyles2]">{{message}}</div>
...
data: ()=>({
    baseStyles:{
      'font-size': '40px',
      color:'blue'
    },
    baseStyles2:{
      'line-height': '20px',
      'background-color':'gray'
    }
  }),

样式数组绑定的含义与class数组绑定的含义不大一样。此处是将多个样式对象,拼合合并成一个样式对象。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 艺述论 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一般语法
  • 对象绑定
  • 数组绑定
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档