【一】绑定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. 【转】React 常用面试题目与分析

    作者:王下邀月熊链接:https://zhuanlan.zhihu.com/p/24856035来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 本文有一定概率为水文,怕 ...

  2. EL 隐含对象

    EL     隐含对象(11个):

  3. beego4---web项目结构

    app.conf appname = blog1 httpport = runmode = dev controllersmy package controllersmy //跟外面的包名一致 imp ...

  4. poj1286 Necklace of Beads—— Polya定理

    题目:http://poj.org/problem?id=1286 真·Polya定理模板题: 写完以后感觉理解更深刻了呢. 代码如下: #include<iostream> #inclu ...

  5. echart x轴 type

    x轴类型有三种(y轴类似) 1 category 类目轴,适用于离散的类目数据 ,就是x周的类别是自定义的,都是字符串,需要通过data设置类目数据 与series 中data对应,data是一维数组 ...

  6. taro.js & dva 脚手架搭建及常见问题

    ## taro.js & dva 脚手架 ### 启动 npm install -g @tarojs/cli // 全局安装taro-cli npm i npm run dev:weapp / ...

  7. Lightoj 1020 - A Childhood Game (博弈)

    题目链接: 1020 - A Childhood Game 题目描述: Alice和Bob在玩弹珠游戏,两人轮流拿走弹珠,每次只能拿走一个或者两个,当Alice作为先手时谁拿走最后一个就是输家,而Bo ...

  8. Windows及Linux环境下Tomcat的JVM参数调优

    Windows环境: catalina.bat文件修改 set JAVA_OPTS=-server -Xms4096m -Xmx4096m -XX:PermSize=512m -XX:MaxPermS ...

  9. 转:python中使用txt文本保存和读取变量

    问题: 在python中需要经常有需要提前生成复杂的计算结果变量的需求减少程序计算运行时间的需求,因此这里把变量存在txt文本文件中. 解决方法: 使用两个函数解决问题,一个函数把变量保存到文本文件中 ...

  10. 263 Ugly Number 丑数

    编写程序判断给定的数是否为丑数.丑数就是只包含质因子 2, 3, 5 的正整数.例如, 6, 8 是丑数,而 14 不是,因为它包含了另外一个质因子 7.注意:    1 也可以被当做丑数.    输 ...