【一】绑定HTML Class

(1)对象语法

①普通绑定class

    <div id="area" v-bind:class="className"></div>
<script type="text/javascript">
var vm = new Vue({
el:"#area",
data:{
className:"show_area"
}
})
</script>

此时会发现class类名为show_area

②内联绑定数据对象

我们可以传给 v-bind:class 一个对象,以动态地切换 class:

<div v-bind:class="{ active: isActive }"></div>

上面的语法表示 active 这个 class 存在与否将取决于数据属性 isActive 的 truthiness

你可以在对象中传入更多属性来动态切换多个 class。此外,v-bind:class 指令也可以与普通的 class 属性共存。当有如下模板:

    <div id="areaId" class="show_area" v-bind:class="{area:area_status,active:active_status,back:back_status}"></div>
<script type="text/javascript">
var vm = new Vue({
el:"#areaId",
data:{
area_status:true,
active_status:true,
back_status:false
}
})
</script>

结果:

当 area_status或者 active_status、back_status变化时,class 列表将相应地更新。例如,如果 back_status的值为 true,class 列表将变为 "show_area area active back"

③外部绑定

绑定的数据对象不必内联定义在模板里

    <div id="areaId" class="show_area" v-bind:class="classObj"></div>
<script type="text/javascript">
var vm = new Vue({
el:"#areaId",
data:{
classObj:{
area_status:true,
active_status:true,
back_status:false
}
}
})
</script>

渲染的结果和上面一样。

(2)数组语法

v-bind除了接收对象,也可以把一个数组传给 v-bind:class,以应用一个 class 列表:

    <div id="areaId" class="show_area" v-bind:class="[active_class,show_class,area_class]"></div>
<script type="text/javascript">
var vm = new Vue({
el:"#areaId",
data:{
active_class:'active',
show_class:'show',
area_class:'area'
}
})
</script>

(3)用在组件上(待定/验证)

当在一个自定义组件上使用 class 属性时,这些类将被添加到该组件的根元素上面。这个元素上已经存在的类不会被覆盖。例如,如果你声明了这个组件:

Vue.component('my-component', {
template: '<p class="foo bar">Hi</p>'
})

然后在使用它的时候添加一些 class:

<my-component class="baz boo"></my-component>

HTML 将被渲染为:

<p class="foo bar baz boo">Hi</p>

对于带数据绑定 class 也同样适用:

<my-component v-bind:class="{ active: isActive }"></my-component>

当 isActive 为 truthy 时,HTML 将被渲染成为:

<p class="foo bar active">Hi</p>

【二】绑定内联样式

(1)对象语法

①内联列表绑定

   v-bind:style 的对象语法十分直观——看着非常像 CSS,但其实是一个 JavaScript 对象。CSS 属性名可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case,记得用单引号括起来) 来命名:

    <!-- 绑定内联样式 -->
<div class="inner" v-bind:style="{color:colorValue,fontSize:size+'px',backgroundColor:bgColor}">
绑定内联样式
</div>
var inner = new Vue({
el:".inner",
data:{
colorValue:"white",
size:18,
bgColor:"red"
}
});

②内联对象绑定(注意:styleObject两边不加{})

    <!-- 绑定内联样式 -->
<div class="inner" v-bind:style="styleObject">
绑定内联样式
</div>
var inner = new Vue({
el:".inner",
data:{
styleObject:{
fontSize:'12px',
backgroundColor:'red',
color:'white'
}
}
});

(2)数组语法

内联数组+对象结合绑定,v-bind:style 的数组语法可以将多个样式对象应用到同一个元素上:

    <div class="inner3" v-bind:style="[fontObj,backObj]">
绑定内联样式-内联数组绑定(注意:数组时两边是[])
</div>
var inner3 = new Vue({
el:".inner3",
data:{
/* 字体-样式对象 */
fontObj:{
color:'green',
fontSize:'30px'
},
/* 背景-样式对象 */
backObj:{
backgroundColor:'orange'
}
}
})

(3)自动添加前缀(测试后无效,有待验证)

.

vue基础---Class 与 Style 绑定的更多相关文章

  1. vue基础——Class与Style绑定

    Class与Style绑定 操作元素的class列表和内联样式是数据绑定的一个常见的需求. 因为它们都是属性,所以我们可以用v-bind来处理它们:只需要通过表达式计算出字符串结果即可.不过,字符串拼 ...

  2. Vue中class与style绑定

    gitHub地址:https://github.com/lily1010/vue_learn/tree/master/lesson07 一 用对象的方法绑定class 很简单,举个栗子: <!D ...

  3. vue基础篇---class样式绑定

    因为class的绑定在实际的工作中会经常用到.所以特意记录一下,有好几种方法. 对象绑定方法,另外一个值来控制显示隐藏 <!DOCTYPE html> <html lang=&quo ...

  4. vue 的 Class 与 Style 绑定

    操作元素的 class 列表和内联样式是数据绑定的一个常见需求.因为它们都是属性,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可.不过,字符串拼接麻烦且易错.因此,在将 ...

  5. vue基础——表单输入绑定

    一.基础用法 你可以用 v-model 指令在表单 <input> 及 <textarea> 元素上创建双向数据绑定.它会根据控件类型自动选择正确的方法来更新元素. 尽管有些神 ...

  6. 前端框架之Vue(4)-Class与Style绑定

    操作元素的 class 列表和内联样式是数据绑定的一个常见需求.因为它们都是属性,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可.不过,字符串拼接麻烦且易错.因此,在将  ...

  7. vue基础---表单输入绑定

    [一]基础用法 用 v-model 指令在表单 <input>.<textarea> 及 <select> 元素上创建双向数据绑定.它会根据控件类型自动选取正确的方 ...

  8. vue中,class与style绑定

    <template> <div> <p v-bind:class="{active:isActive,'demo':Demo}">嘿嘿</ ...

  9. 【Vue.js】vue基础: 3种Class和Style绑定语法

    凡是用到了v-bind,那就一定有变量的存在,下面是三种语法的展示: 1. 对象语法: v-bind:class="{active: isActive, 'text-danger': has ...

随机推荐

  1. .net的程序的逆向分析。

    背景:碰到一个由c#写的exe,由于之前没有分析过.net的程序,记录下分析流程. 1)peid加载判断类型,可以看出没有加壳. 2)搜索c#的反编译以及调试工具. 1.NET.Reflector以及 ...

  2. Android学习笔记-tween动画之java实现

    Android动画分为Tween动画和Frame动画,近期学习了,体tween动画,现在讲学习的心得以及相关知识介绍如下. Tween又称为补间动画,可以把对象进行缩小.放大.旋转和渐变等操作.   ...

  3. 操作JSON对象

    JSON类型对象,最简单了,就是键值对,key:value.key:value.一直不停地key:value下去,层层嵌套,理论上多少层都可以,只要你喜欢. 可是,每次应用JSON,我都心烦意乱,甚至 ...

  4. js执行“按回车”的动作

    <textarea class="W_input" style="overflow: hidden; height: 23px;" node-type=& ...

  5. YTU 2506: 切面条

    2506: 切面条 时间限制: 1 Sec  内存限制: 128 MB 提交: 382  解决: 223 题目描述 一根高筋拉面,中间切一刀,可以得到2根面条.      如果先对折1次,中间切一刀, ...

  6. 如何抓取基于https协议的webservice数据包

    方法一:基于Fiddler2等第三方工具(需要在Java端禁用SSL安全检查) 原文拷贝自http://blog.csdn.net/zmxj/article/details/6327775,向原作者表 ...

  7. mybatis多表关联配置

    首先需要的jar包 mybatis-3.4.1 配置文件(mybatis.cfg.xml) <?xml version="1.0" encoding="UTF-8& ...

  8. Mac系统打开命令行终端及查看操作系统版本号的方法

    Mac系统打开命令行终端的方法: 应用程序 --> 实用工具 --> 终端 Mac系统终端查看操作系统版本号的方法: 输入:#more /System/Library/CoreServic ...

  9. 如何过滤 adb logcat 输出(转载)

    转自:http://www.cnblogs.com/imouto/archive/2012/12/11/filtering-adb-logcat-output.html 简介: 本文介绍如何在 she ...

  10. 10.19NOIP模拟赛(DAY2)

    /* 正解O(n)尺取法orz 我写的二分答案.本来以为会被卡成暴力分...... 这个-'0'-48是我写的吗........我怎么不记得... */ #include<bits\stdc++ ...