Vue.js--v-bind:class绑定Class、v-bind:style绑定内联样式

前端必知必会-Vue CSS 绑定 本文介绍了Vue CSS 绑定的使用,如有问题欢迎私信和评论。 阅读详情
绑定Class

示例:基本用法,点击按钮切换样式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script src="https://unpkg.com/vue/dist/vue.js"></script>
    <title>Class绑定</title>
    <style>
        body{
            font-size: 24px;
        }
        .active{
            color: red;
        }
    </style>
</head>
<body>
    <div id="myApp">
        <div v-bind:class="{active:isActive}">红色文本1</div>
        <div :class="{active:isActive}">红色文本2</div>
        <button @click="btnClick">改变class</button>
    </div>
    <script>
        var myApp = new Vue({
            el: '#myApp',
            data: {
                isActive: true
            },
            methods: {
                btnClick: function () {
                    this.isActive = !this.isActive;
                }
            }
        });
    </script>

</body>
</html>

在这里插入图片描述

绑定class有几种语法:
对象语法:

<div id="app">
    <div :class="{'active':isActive}"></div>
    <!-- 渲染结果:<div class="active"></div> -->
</div>
<script>
    var app = new Vue({
        el: '#app',
        data: {
            isActive: true
        }
    });
</script>

active依赖于数据isActive,当其为tre时,div会拥有类名为Active的样式,为false时则没有。


对象中也可以传入多个属性,来动态切换class。另外,:class可以与普通class共存 ```html
``` 当数据isActive或isError变化时,对应的class类名也会更新。
当 :class 的表达式过长或逻辑复杂时,还可以绑定一个计算属性,这是一种很友好和常见的用法,一般当条件多于两个时,都可以使用data或computed。
var app = new Vue({
    el: '#app',
    data: {
        isActive: true,
        error: null
    },
    computed: {
        classes: function () {
            return {
                active: this.isActive && !this.error,
                'text-fail': this.error && this.error.type === 'fail'
            }
        }
    }
});

除了计算属性,也可以直接绑定一个Object类型的数据,或者使用类似计算属性的methods。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script src="https://unpkg.com/vue/dist/vue.js"></script>
    <title>Class对象绑定</title>
    <style>
        body{
            font-size: 24px;
        }
        .active{
            color: red;
        }
        .big {
            font-weight: bolder;
            font-size: 64px;
        }
    </style>
</head>
<body>
    <div id="myApp">
        <div :class="myClass">红色文本</div>
        <button @click="btnClick">改变class</button>
    </div>
    
    <script>
        var myApp = new Vue({
            el: '#myApp',
            data: {
                myClass: {
                    active: true,
                    big: true
                }        
            },
            methods: {
                btnClick: function () {
                    this.myClass.big = !this.myClass.big;
                }
            }
        });
    </script>
</body>
</html>

**数组语法:** 当需要应用多个class时,可以使用数组语法,给 :class绑定一个数组,应用一个class列表:
<div id="app">
    <div :class="[activeCls, errorCls]"></div>
    <!--渲染结果:<div class="active error"></div> -->
</div>
<script>
    var app = new Vue({
        el: '#app',
        data: {
            activeCls: 'active',
            errorCls: 'error'
        }
    });
</script>

也可以使用三元表达式来根据条件切换class:
<div id="myApp">
    <div :class="{isActive ? activeCls : '', errorCls}"></div>
</div>
<script>
    var myApp = new Vue({
        el: '#myApp',
        data: {
            isActive: true,
            activeCls: 'active',
            error: 'error'
        }
    });
</script>

样式error会始终应用,当数据isActive为真时,样式active才会被应用。


class有多个条件时,这样写比较麻烦,可以在数组语法中使用对象语法:
<div id="myApp">
    <div :class="[{'active': isActive}, errorCls]"></div>
</div>
<script>
    var myApp = new Vue({
        el: '#myApp',
        data: {
            isActive: true,
            errorCls: 'error'
        }
    });
</script>

与对象语法一样,也可以使用data、computed和methods三种方法: ```html
``` btn样式始终都会应用,当数据size不为空时,会应用样式前缀btn-,后加size的值;当数据disable为真时,会应用样式btn-disabled。

注意:如果表达式较长或逻辑复杂,应该尽可能地优先使用计算属性。


**在组件上使用:** 如果直接在自定义组件上使用class或:class,样式规则会直接应用到这个组件的跟元素上:
//定义一个组件
Vue.component('my-component', {
    template: '<p class="article">一些文本</p>'
});

调用这个组件:

<div id="app">
    <my-component :class="{'active': isActive}"></my-component>
    <!--渲染结果:-->
    <!-- <p class="article active">一些文本</p> -->
</div>
<script>
    var app = new Vue({
        el: '#app',
        data: {
            isActive: true
        }
    });
</script>

这种语法仅适用于自定义组件的最外层是一个根元素,否则会无效,当不满足这种条件或需要给具体的子元素设置类名时,应当使用组件的props来传递。

绑定内联样式

使用v-bind:sytle可以给元素绑定内联样式,方法与 :class 类似,也有对象语法和数组语法,看来就像直接在元素上写CSS:

<div id="app">
    <div :style="{'color': color, 'fontSize': fontSize + 'px'}">文本</div>
    <!--渲染結果:-->
    <!-- <div style="color: red; font-size: 14px;">文本</div> -->
</div>
<script>
    var app = new Vue({
        el: '#app',
        data: {
            color: 'red',
            fontSize: 14
        }
    });
</script>

大多数情况下,直接写一长串的样式不便于阅读和维护,所以一般写在data或computed里,以data为例改写上面的示例:

<div id="myApp">
    <div :style="styles">文本</div>
</div>
<script>
    var myApp = new Vue({
        el: '#myApp',
        data: {
            styles: {
                color: 'red',
                fontSize: 14 + 'px'
            }
        }
    });
</script>

应用多个样式对象时,可以使用数组语法:

<div :style="[styleA, styleB]">文本</div>

注意:使用 :style 时,Vue.js会自动给特殊的CSS属性名称加前缀,比如transform等。

vue基础之v-bind属性、class和style用法分析 主要介绍了vue基础之v-bind属性、class和style用法,结合实例形式分析了vue.js中v-bind绑定及class、style样式控制相关操作技巧,需要的朋友可以参考下 立即下载

相关推荐

数据产品需求文档(PRD)怎么写?阿里P8分享的模板+5个避坑点

作用:记录文档的版本、作者、评审信息,避免“文档混乱”。填写规范字段说明示例文档名称清晰反映产品名称,如“用户行为分析平台PRD”用户行为分析平台PRD_V1.0文档版本用“版本号+日期”,如V1.0_20240301编写人数据产品经理姓名+联系方式张三(138-XXXX-XXXX)评审人员业务负责人、开发经理、数据分析师、运维负责人李四(业务)、王五(开发)、赵六(数据)、周七(运维)评审时间评审日期2024-03-05评审意见。

架构师的AI之路,分享AI应用开发架构的学习与实践。 1574

5.Vue - 绑定class样式、style样式

绑定样式1.class样式写法:class=“xxx” xxx可以使字符串、对象、数组字符串法:适用于类名不确定,要动态获取对象法:适用于要绑定多个样式,个数不确定,名字不确定,但要动态决定用不用数组法: 适用于要绑定多个样式,个数确定,名字确定,但不确定用不用2.style样式:style=“{fontSize:xxx}” 其中xxx是动态值:style="[a,b]" 其中ab是样式对象,如下。...

weixin_51351637的博客 7225

安卓逆向实战:利用Frida-RPC自动化获取大麦演唱会数据

本文详细介绍了如何利用Frida-RPC技术实现安卓逆向自动化,以获取大麦演唱会数据。通过实战演示,从环境搭建、使用Frida动态分析定位核心签名算法,到封装为可复用的Python脚本,完整解析了自动化数据获取的技术路径与工程化思考。

cheese的博客 974

Vue | class样式绑定与style样式绑定

class样式绑定与style样式绑定

m0_72383454的博客 1015

threejs开发可视化数字城市效果

theme: condensed-night-purple 灵感图 现在随着城市的发展,越来越多的智慧摄像头,都被互联网公司布到城市的各个角落,举一个例子,一个大楼上上下下都被布置了智能摄像头,用于监控火势,人员进出,工装工牌佩戴等监控,这时候为了美化项目,大公司都会将城市的区域作为对象,进行3d可视化交互,接下来的内容,就是基于以上元素,开发的一款城市数据可视化的demo,包含楼宇特...

weixin_41770018的博客 1579

音频DSP开发中的‘隐藏关卡’:那些SigmaStudio未公开的模块计算秘籍

本文深入探讨音频DSP开发中SigmaStudio未公开的模块计算秘籍,重点解析动态范围控制、均衡器参数映射和混响算法优化等核心模块计算公式。通过实际案例揭示如何利用这些非官方技巧提升音频质量与系统性能,为ADI DSP开发者提供宝贵的实战经验。

water的专栏 911

样式绑定(class属性)

在Vue中,通过绑定class属性和style属性可以实现元素的样式绑定。在Vue中,通过更改元素的class属性可以更改元素的样式,而对class属性的操作以通过v-bind来实现。在上述代码中, 第2行代码用于绑定class 属性, 属性值为className;在 Vue中, v-bind 指令中的 class属性值除了字符串和对象外, 还可以是一个数组,用以动态地切换HTML 的class 属性,数组中的每个元素为要绑定的类名。在上述代码中,第2行代码中的className表示要绑定的类名。

pig_pig7的博客 820

桁架 拓扑优化 matlab程序_拓扑优化在结构轻量化及板壳加筋肋最优布置的应用...

1 拓扑优化简介材料的有效利用一直都是人类追求的目标,也是许多研究领域不变的话题,并伴随着结构优化理论和方法的产生而发展。结构优化设计通常分为三个层次:(1)拓扑优化:在一个确定的连续区域内寻求结构内部非实体区域位置和数量的最佳配置,寻求结构中的构件布局及节点联结方式最优化,使结构能在满足应力、位移等约束条件下,将外载荷传递到结构支撑位置,同时使结构的某种性态指标达到最优;(2)形状优化:指在保持...

weixin_39525355的博客 1877

class动态绑定不同样式

对于两种以上的样式切换,可用数组绑定并动态变化样式 样式中的写法: <van-grid-item :class="css_list[index]"></van-grid-item> data中声明css_list(元素为style中声明的css样式)和index: data() { css_list:[ "css1", "css2", "css3" ], index: 0 } method中可改变index的值从选择对应的样式: methods: { //方法

ecH0o0的博客 1197

Rk3568 百兆以太网RMII模式DTS配置详解

本文详细解析了RK3568芯片在百兆以太网RMII模式下的DTS配置方法,包括时钟树配置、PHY接口模式定义及实际工程中的进阶设置。通过实战案例和调试技巧,帮助开发者快速解决RMII模式下的常见问题,提升工业控制设备的网络稳定性。

weixin_29189377的博客 420

影楼精修-高低频磨皮算法解析

本文介绍了像素蛋糕软件中的高低频磨皮算法原理及实现思路,抛砖引玉。

Trent1985的专栏 2257

Vue2基础 07:class与style绑定

Vue2基础知识 :class与style绑定的多种写法和区别

Fxcrisp的博客 2022

PCB制造工艺参数到AD规则设置

本文提供了PCB设计与制造的落地指南,强调需先了解PCB厂的工艺参数,再在Altium Designer中设置相应规则。核心步骤包括:获取PCB厂的关键工艺参数(线宽/线距、过孔尺寸等),在AD中设置电气规则、布线规则、阻焊规则等,并进行DRC检查。文章还给出了常见问题避坑建议和快速落地模板,帮助设计师确保设计符合生产要求,避免因工艺不匹配导致的报废或成本增加。

qq_37999850的博客 293

vue给指定class设置css样式_vuejs绑定class和style样式

绑定Html Class我们可以传给 v-bind:class 一个对象,以动态地切换 class。注意 v-bind:class 指令可以与普通的 class 特性共存:data: { isA: true, isB: false}渲染结果:你也可以直接绑定数据里的一个对象,结果与上面的一致:data: {classObject: {'class-a': true,'class-b': false...

weixin_39646412的博客 423

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Vue实例-样式演示

代码: <head> <title>样式演示</title> <script src="../vue.js"></script> <style> .box{ background-color: pink; width: 100%; height: 200px; } .inner{ backg

weixin_64665051的博客 1425

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Vue给标签动态绑定样式class或者style

我的项目中实际使用的是vue+element ui :class :class等同于 v-bind:class 借用Vue官网的解释: <div v-bind:class="[active: isActive ]"></div> Vue官网使用时{}并不是[]但是在使用的时候发油编译器报错 本人刚接触前端,有不对的希望各位指正 上面的语法表示 active 这个 class 存在与否将取决于数据 property isActive 的 真值 你可以在对象中传入更多字段来动态切换多

sorrow_c的博客 8252

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

vue动态class/style

通过v-bind:style指令,可以实现根据数据的变化动态改变元素的样式,包括颜色、大小、位置等。通过数组语法,可以根据多个条件的组合来决定元素应该具有哪些样式,实现更灵活的样式控制。通过数组语法,可以根据多个条件的组合来决定元素应该添加哪些类,实现更复杂的样式控制。通过v-bind:style数组语法,可以实现更复杂的样式控制,根据多个条件的组合来动态改变元素的样式,满足不同的需求。可以是变量、对象属性或直接的类名字符串。通过数组语法,可以根据多个条件的组合来动态控制元素的样式,实现更灵活的样式控制。

u010609022的专栏 1万+

VUE指令-样式绑定v-bind

样式绑定v-bind 操作元素的 class 列表和内联样式是数据绑定的一个常见需求。因为它们都是属性,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可。不过,字符串拼接麻烦且易错。因此,在将 v-bind 用于 class 和 style 时,Vue.js 做了专门的增强。表达式结果的类型除了字符串之外,还可以是对象或数组。 v-bind:style

953

vue中Class 与 Style 绑定

对象语法 我们可以传给v-bind:class一个对象,以动态地切换 class: <div v-bind:class="{ active: isActive }"></div> 上面的语法表示active这个 class 存在与否将取决于数据属性isActive的truthiness。 你可以在对象中传入更多属性来动态切换多个 class。此外,v...

WebDestiny的博客 274

vue-class和style的绑定,style属性的名称要用驼峰命名方式,如果没用驼峰要加引号

<body> <div id="app"> <p v-bind:class="{active: done}" v-bind:style="{backgroundColor: bgc}">哈哈哈,是的嘛</p> </div> <script src="node_modules/vue/dist/vue.js"></script> <script> var app = new Vue({ el: .

qq_42039912的博客 1058

Vue Class与Style绑定【五】

Class与Style绑定 操作元素的class列表和内联样式是数据绑定的一个常见需求,因为他们都是attribute,所以我们可以用v-bind来处理他们 绑定HTML Class 对象语法 通过v-bind:class,借助data或计算属性,来动态改变某个class是否存在 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta nam

FrequencyStar的博客 220

02 Vue绑定属性 绑定Class 绑定style-完整

Vue绑定属性 绑定Class 绑定stylev-bind 绑定属性v-html 绑定htmlv-text 绑定数据v-bind:classv-bind:style完整实验代码: v-bind 绑定属性 template模板: <template> <div id="app"> <div v-bind:title="title">鼠标瞄上去看一下</...

weixin_42467515的博客 221

Vue.js 实战教程 V2.x(8)Class与Style绑定

8 Class与Style绑定 操作元素的 class 列表和内联样式是数据绑定的一个常见需求。 8.1绑定HTML Class 对象语法 我们可以传给v-bind:class一个对象,以动态地切换 class: <div v-bind:class="{ active: isActive }"></div> 上面的语法表示active这个 class ...

大强博客 583

Vue2的class和style动态样式分析

操作元素的 动态class 列表和动态内联样式是数据绑定的一个常见使用场景。动态class和style有字符串,对象,数组三种形式。class动态样式#对象语法1、我们可以传给一个对象,以动态地切换 class:上面的语法表示active这个 class 存在与否将取决于数据isActive属性的。2、我们可以在对象中传入多个对这样的属性及属性值来动态控制多个class。此外,指令也可以与普通的 class共存。代码如下:data: {

骆小洛 3636

Vue实现样式绑定

<!--对象绑定--> <style type="text/css"> .active{ border: 1px solid red; width: 100px; height: 100px; } </style> <div id="app"> <div v-bind:class="{active:isactive}">

从简的博客 323

Vue.js学习笔记(五):样式绑定

Vue.js样式绑定 class 与 style 是 HTML 元素的属性,用于设置元素的样式,我们可以用 v-bind 来设置样式属性。 Vue.js v-bind 在处理 class 和 style 时, 专门增强了它。表达式的结果类型除了字符串之外,还可以是对象或数组。 绑定Class 属性 我们可以为 v-bind:class 设置一个对象,从而动态的切换 class: <div v-bind:class="{ 'active': isActive }"></div>

喜狼狼与灰太杨的博客 228
上一篇: Struts2--框架搭建流程
下一篇: Vue.j--内置指令(v-cloak、v-once、v-show)
吴声子夜歌
博客等级 码龄9年 2687粉丝 2266原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值