【一】绑定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. struts <s:iterator>两个list嵌套循环,对象属性交叉使用

    两个list:List<CreateTableColumn> createTableColumnList,List<Map<String, Object>> tab ...

  2. java 和 Android Base64加密

    Java8 Base64 Java 8 新特性 在Java 8中,Base64编码已经成为Java类库的标准. Java 8 内置了 Base64 编码的编码器和解码器. Base64工具类提供了一套 ...

  3. django 数据库连接模块解析及简单长连接改造

    django 数据库连接模块解析及简单长连接改造工作中纯服务端的项目用到了线程池和django的ORM部分.django 的数据库连接在每一个线程中开启一份,并在查询完毕后自动关闭连接. 线程池处理任 ...

  4. Kconfig SourceCode GDB调试 *****

    1.GDB&makefile scripts->Makefile编译FLAGS  -g HOSTCC = gcc HOSTCXX = g++ HOSTCFLAGS := HOSTCXXF ...

  5. mysql status关键字 数据表设计中慎重使用

    mysql status关键字  数据表设计中慎重使用

  6. 使用AngularJS创建应用的5个框架(转)

    原文地址:http://www.php100.com/html/dujia/2015/0206/8580.html 本文由PHP100中文网编译,转载请看文末的转载要求,谢谢合作! 如果你计划使用An ...

  7. bzoj 2662: [BeiJing wc2012]冻结【分层图+spfa】

    死活想不到分层图emmm 基本想法是建立分层图,就是建k+1层原图,然后相邻两层之间把原图的边在上一层的起点与下一层的终点连起来,边权为val/2,表示免了这条边的边权,然后答案就是第0层的s到k层的 ...

  8. Linux day01(二)虚拟机快照和克隆的用法介绍

    一:快照 优点:运行虚拟机后不用担心系统会被弄崩溃了,点击快照会立即恢复到初始状态 缺点:回滚会带来数据的丢失,所以要考虑数据恢复的成本和找回数据时进行操作的成本 1. 在导航栏中找虚拟机快照的小图标 ...

  9. ASP.Net 知识点总结(四)

    1.get和post 的区别 get是从服务器上获取数据,post是向服务器传送数据; get安全性非常低,数据显示在地址栏,post安全性较高: 但是执行效率却比Post方法好: get有字节限制为 ...

  10. Linux命令(007) -- systemctl

    systemctl命令是系统服务管理指令,它实际上是将service和chkconfig两个命令组合到一起. 任务 旧指令 新指令 使某服务自动启动 chkconfig --level 3 httpd ...