vue中样式动态绑定写法

绑定样式:

class样式

写法:class="xxx"xXX可以是字符串、对象、数组。
字符串写法适用于:类名不确定,要动态获取。
对象写法适用于:要绑定多个样式,个数不确定,名字也不确定。
数组写法适用于:要绑定多个样式,个数确定,名字也确定,但不确定用不用。

style样式

:style="{fontSize: xxx}“其中xxx是动态值。
:style=”[a,b]"其中a、b是样式对象。

vue中,动态绑定样式——动态绑定style写法 & 动态class写法

1、动态绑定style写法

注意:

  • 凡是有-的style属性名都要变成驼峰式,比如font-size要变成fontSize
  • 除了绑定值,其他的属性名的值要用引号括起来,比如backgroundColor:'#00a2ff’而不是 backgroundColor:#00a2ff

1.1、对象

<div :style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>

<div :style="{color:(index == 1 ? conFontColor:'#000')}"></div>

1.2、数组

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

<div :style="[{color:(index == 1 ? conFontColor:'#000')},{fontSize:'18px'}]"></div>

1.3、三元运算符

<div :style="{color:(index == 1 ? conFontColor:'#000')}"></div>

<div :style="[{color:(index == 1 ? conFontColor:'#000')},{fontSize:'18px'}]"></div>

<div :style="item.layerName === activeLayerName?'font-weight:700' : 'font-weight:400'"></div>

<!-- 写法一 -->
<div :style="[{float: id === '12' ? 'left:'right}]"></div>

<!-- 写法二 -->
<div :style="float: nameList.length === 20 ? 'height:64px' : 'height:32px' "></div>

<!-- 写法三 -->
<div :style="{border:( nameId ===item.id ?'2px solid #4C78FF': 'red')}"></div>

1.4、绑定data对象

<div :style="styleObject"></div>

<script>
    data() {
        return{
          styleObject: {
            color: 'red',
            fontSize: '14px'
          }  
        }
    }
</scrip>

2、动态class写法

2.1、对象方法

<!-- isActive —— true/false -->
<div :class="{ 'active': isActive  }">{{name}}</div> 

2.2、判断是否绑定一个active

<div :class="{'active' : isActive == -2}"  >{{name}}</div>

<div :class="{'active' : isActive == item.nameId}"  >{{item.name}}</div>

2.3、绑定并判断多个
2.3.1、第一种:用逗号隔开

<div :class="{ 'active': isActive, 'user': isUser }"></div>

2.3.2、放在data里面

<div :class="classObject">{{name}}</div>

<script>
data() {
  return {
    classObject:{ active: true, user:false }
  }
}
</script>

2.3.3、使用computed属性

<div :class="classObject">{{name}}</div>

<script>
data() {
  return {
    isActive: true,
    isUser: false
  }
},
computed: {
  classObject: function () {
    return {
      active: this.isActive,
      user:this.isUser
    }
  }
}
</script>

2.4、数组方法

2.4.1、单纯数组

<div :class="[isActive,isUser]">{{name}}</div>

<script>
data() {
  return{
    isActive:'active',
    isUser:'user'
 }
}
</script>

2.4.2、数组与三元运算符结合判断选择需要的class

  • 注意:三元运算符后面的“:”两边的class需要加上单引号,否则不能正确渲染

:class=“[isActive?‘active’:’’]”
或者
:class=“[isActive1?‘active’:’’]”
或者
:class=“[isActiveindex?‘active’:’’]”
或者
:class=“[isActive==index?‘active’:‘otherActiveClass’]”

2.4.3、数组对象结合动态判断

//前面这个active在对象里面可以不加单引号,后面这个sort要加单引号
:class=“[{ active: isActive }, ‘sort’]”
或者
:class=“[{ active: isActive1 }, ‘sort’]”
或者
:class=“[{ active: isActiveindex }, ‘sort’]”

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3,可以使用多种方式来动态样式。 1. 对象形式: ```html <div :style="{ color: '#333', fontSize: '14px' }"></div> ``` 2. 数组形式: ```html <div :style="[baseStyles, overridingStyles"></div> ``` 其,baseStyles和overridingStyles是在data选项义的对象。 3. 三目运算符形式: ```html <div :style="{background:index===0 ? '#FFFFFF' : '#000000'}"></div> ``` 4. 计算属性: ```html <div :style="setIconStyle"></div> ``` 在computed选项义一个计算属性setIconStyle,并返回样式字符串。 5. 通过条件样式: ```html <div :style="setIconStyle(index)"></div> ``` 同样在computed选项义方法setIconStyle,并接受一个参数index,根据条件返回不同的样式字符串。 6. 多重值: ```html <div :style="{ display: ['-webkit-box', '-ms-flexbox', 'flex'] }"></div> ``` 以上是几种在Vue3动态样式的方式。你可以根据具体的需求选择适合的方式来设置样式。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vue动态style样式动态添加style样式的多种写法](https://blog.csdn.net/weixin_43743175/article/details/125274617)[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^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Vue动态样式你不会吗](https://blog.csdn.net/Mq_sir/article/details/121445875)[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^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值