HuKai's Blog HuKai's Blog
首页
  • Java核心技术

    • Java基础
    • Java并发编程
    • JVM
    • Java新特性
  • Spring生态

    • Spring5
    • SpringMVC
    • SpringBoot
  • 开源框架

    • MyBatis
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 设计模式
  • SQL数据库

    • MySQL
    • Oracle
  • NoSQL数据库

    • Redis
    • MongoDB
  • 页面样式

    • HTML
    • CSS
  • JavaScript

    • JavaScript基础
    • ECMAScript6教程
    • TypeScript
  • 前端框架

    • Vue
    • Webpack
  • NIO
  • Netty
  • RabbitMQ
  • 技术文档

    • GitHub技巧
    • 博客搭建
    • 技术笔记
  • 优质文章

    • 小技巧
    • 解决方案
GitHub (opens new window)

HuKai

梦想成为全栈的保安
首页
  • Java核心技术

    • Java基础
    • Java并发编程
    • JVM
    • Java新特性
  • Spring生态

    • Spring5
    • SpringMVC
    • SpringBoot
  • 开源框架

    • MyBatis
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 设计模式
  • SQL数据库

    • MySQL
    • Oracle
  • NoSQL数据库

    • Redis
    • MongoDB
  • 页面样式

    • HTML
    • CSS
  • JavaScript

    • JavaScript基础
    • ECMAScript6教程
    • TypeScript
  • 前端框架

    • Vue
    • Webpack
  • NIO
  • Netty
  • RabbitMQ
  • 技术文档

    • GitHub技巧
    • 博客搭建
    • 技术笔记
  • 优质文章

    • 小技巧
    • 解决方案
GitHub (opens new window)
  • HTML

  • CSS

  • JavaScript基础

  • ECMAScript

  • TypeScript

  • Vue

    • Vue基础

      • 初识Vue
      • 模板语法 - 插值语法 - 指令语法
      • 计算属性和监听属性
      • 样式绑定 - class - style
        • 动态绑定 class
          • 字符串语法
          • 对象语法
          • 数组语法
        • 动态绑定 style
          • 字符串语法(不常用)
          • 对象语法
          • 数组语法
        • 总结
      • 列表渲染v-for
      • 事件处理v-on
      • 表单输入绑定
      • 生命周期钩子
      • 过滤器filter
      • 常用内置指令
      • 自定义指令
    • Vue组件化编程

    • Vue脚手架

    • Vue插件

  • Webpack

  • 前端
  • Vue
  • Vue基础
HuKai
2022-02-23
目录

样式绑定 - class - style

v-bind 几乎可以绑定所有的属性,但是很常用的一种就是动态绑定 class 类 style 样式。

官方文档:Class 与 Style 绑定 — Vue.js (vuejs.org) (opens new window)

# 动态绑定 class

v-bind 动态绑定 class 有三种语法:字符串语法、数组语法、对象语法。

注意

动态 class 和静态 class 不要一起使用,虽然可以,但是会出现‘一闪而过’的效果,因为静态样式渲染比动态样式更快

# 字符串语法

  • 表达式是字符串: 'classA'

适用于:类名不确定,要动态获取

<!-- 绑定class样式--字符串写法,适用于:样式的类名不确定,需要动态指定 -->
<div class="basic" :class="mood" @click="changeMood">{{name}}</div>
1
2

# 对象语法

  • 表达式是对象: {classA:isA, classB: isB}

对象语法只需要注意一点:对象属性名是类名,对象属性值是布尔值。

适用于:要绑定多个样式,个数不确定,名字也不确定

<h2 :class="{[c1]:true,[f1]:true}">动态的class样式(对象语法)</h2>
// 这里的c1 f1都是响应式变量,它们的值都是style标签里面已经定义好的类名

<h2 :class="{'c2':true,'f3':true}">动态的class样式(对象语法)</h2>
// 这里的c2 f3都是类名,而不是响应式变量
// 抓住本质: 对象语法属性名是类名,属性值是布尔值
1
2
3
4
5
6

# 数组语法

  • 表达式是数组: ['classA', 'classB']

数组语法同样只抓住一点:数组中每个元素的值都是一个表达式,这个表达式的返回值必须是一个已经定义好的类名。

适用于:要绑定多个样式,个数确定,名字也确定,但不确定用不用

<h2 :class='[c1,f1,"f3"]'>动态的class样式(数组语法)</h2>
// 这里c1 f1 是响应式变量,但是它们的值,都是style里面定义好的类名,
// 而f3是style里面定义好的类名.

// 抓住一点,每个元素都是一个表达式,每个表达式都必须返回一个已经定义好的类
1
2
3
4
5

# 动态绑定 style

# 字符串语法(不常用)

<h2 :style="`color:red;fontSize:80px`">动态绑定style字符串语法</h2>
//建议使用模板字符串
1
2

# 对象语法

记住一点:对象语法中:属性名都是 css 样式名,属性值都是 css 样式值

<h2 :style="{'color':cl,'fontSize':fs}">动态绑定style对象语法</h2>
c1 fs 都是data中的声明式变量
1
2

# 数组语法

<h2 :style="[{color:'red'},{fontSize:fs}]">动态绑定style数组语法</h2>

// 数组语法中数组的每个元素都是一个对象语法
// 里面的属性名可以加引号也可以不加,属性值不加引号会被当作变量,
// fs就是一个响应式变量。
1
2
3
4
5

# 总结

每种用法都很灵活,记住每种用法的本质。就能灵活变通

编辑 (opens new window)
#Vue
上次更新: 2022/03/20, 11:17:00
计算属性和监听属性
列表渲染v-for

← 计算属性和监听属性 列表渲染v-for→

最近更新
01
MyBatisPlus
03-20
02
MyBatis源码剖析-延迟加载
03-20
03
MyBatis源码剖析-二级缓存
03-20
更多文章>
Theme by Vdoing | Copyright © 2021-2022 HuKai | 赣ICP备17016768号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式