Vue的Class与Style绑定的方法


Posted in Javascript onSeptember 01, 2017

本文介绍了Vue的Class与Style绑定,分享给大家,具体如下:

绑定 HTML Class

对象语法

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

<style>
  .exp{
    border: 1px solid #ccc;
  }
  .forExp{
    background: blue;
  }
</style>
<div class="exp" v-bind:class="{newExp:isNewExp}"></div>
<script>
  var exp=new Vue({
    el:".exp".
    data:{
      isForExp:false
    }
  })
</script>

如上,我们先给 .exp 一个边框,我们利用 v-bind 方法传入一个新的 class 属性 .newExp,设置一个蓝色的背景颜色。当我们在控制台修改 .newExp 的属性为 true 时,会给 div 添加一个蓝色的背景颜色。

我们也可以传入更多的属性来切换多个 class 。

<div class="exp" v-bind:class="{newExp:isExp,npc:isNpc}"></div>
<script>
  data:{
    isExp:false,
    isNpc:true
  }
</script>

在模板里的渲染结果为:

<div class="exp isNpc"></div>

我们也可以使用对象的方法来切换属性

<div class="exp" v-bind:class="obj"></div>
<script>
  data:{
    obj:{
      newExp:false,
      npc:true
    }
  }
</script>

渲染结果和上面的一样

数组语法

我们可以把一个数组传给 v-bind:class,以应用一个 class 列表:

<div class="exp" v-bind:class="[newExp,oldExp]"></div>
<script>
  data:{
    newExp:"new",
    oldExp:"old"
  }
</script>

渲染为:

<div class="exp new old"></div>

要切换class,使用三元运算符:

<div class="exp" v-bind:class="[act? newExp:oldExp]"></div>
<script>
  data{
    newExp:"new",
    oldExp:"old",
    act:true
  }
<script>

act 为 true 时,添加 new ,为 false 时添加 old。

用在组件上

声明一个组件:

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

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

<my class="tip"></my>

最终渲染为

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

同样的适用于绑定 HTML class:

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

当active为true时,HTML 将被渲染成为:

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

绑定内联样式

对象语法

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

<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>
<script>
  data:{
    activeColor:"blue",
    fontSize:20
  }
</script>

使用对象语法的话,会看起来更加清晰

<div v-bind:style="obj"></div>
<script>
  data:{
    obj:{
      color:"#FFF",
      fontSize:"20px"
    }
  }
</script>

数组语法

v-bind:style 的数组语法可以将多个样式对象应用到一个元素上:

<div v-bind:style="[style1,style2]"></div>
<script>
  data:{
    style1:{
      color:"#666"
    },
    style2:{
      background:"#b1b1b1"
    }
  }
</script>

自动添加前缀

当 v-bind:style 使用需要特定前缀的 CSS 属性时,如 transform,Vue.js 会自动侦测并添加相应的前缀。

Chrome 和 Safari : -webkit-
IE :        -ms-
Firfox :      -moz-
Opera :      -o-

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Ajax::prototype 源码解读
Jan 22 Javascript
iframe调用父页面函数示例详解
Jul 17 Javascript
jQuery中noConflict()用法实例分析
Feb 08 Javascript
JavaScript中利用Array和Object实现Map的方法
Jul 27 Javascript
JavaScript常用基础知识强化学习
Dec 09 Javascript
jQuery mobile在页面加载时添加加载中效果 document.ready 和window.onload执行顺序比较
Jul 14 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
Nov 21 Javascript
JS开发自己的类库实例分析
Aug 28 Javascript
Node.js学习教程之Module模块
Sep 03 Javascript
js实现提交前对列表数据的增删改查
Jan 16 Javascript
redux处理异步action解决方案
Mar 22 Javascript
node.js如何自定义实现一个EventEmitter
Jul 16 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
Sep 01 #Javascript
BootStrap模态框和select2合用时input无法获取焦点的解决方法
Sep 01 #Javascript
Angularjs实现上传图片预览功能
Sep 01 #Javascript
JavaScript中使用参数个数实现重载功能
Sep 01 #Javascript
bootstrap-table实现服务器分页的示例 (spring 后台)
Sep 01 #Javascript
jQuery EasyUI结合zTree树形结构制作web页面
Sep 01 #jQuery
基于Vue.js 2.0实现百度搜索框效果
Dec 28 #Javascript
You might like
php ImageMagick windows下安装教程
2015/01/26 PHP
CodeIgniter分页类pagination使用方法示例
2016/03/28 PHP
注释PHP和html混合代码的小技巧(分享)
2016/11/03 PHP
判断客户端浏览器是否安装了Flash插件的多种方法
2010/08/11 Javascript
Jquery ajax传递复杂参数给WebService的实现代码
2011/08/08 Javascript
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
2012/06/18 Javascript
侧栏跟随滚动的简单实现代码
2013/03/18 Javascript
表格单元格交错着色实现思路及代码
2013/04/01 Javascript
一个JavaScript变量声明的知识点
2013/10/28 Javascript
浅谈js的setInterval事件
2014/12/05 Javascript
jQuery层动画定位滑动效果的方法
2015/04/30 Javascript
jquery.cookie.js用法实例详解
2015/12/25 Javascript
Bootstrap自定义文件上传下载样式
2016/05/26 Javascript
JQuery异步加载PartialView的方法
2016/06/07 Javascript
用jQuery实现可输入多选下拉组合框实例代码
2017/01/18 Javascript
简单好用的nodejs 爬虫框架分享
2017/03/26 NodeJs
JavaScript实现图片懒加载的方法分析
2018/07/05 Javascript
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
python和bash统计CPU利用率的方法
2015/07/10 Python
在Python的Flask中使用WTForms表单框架的基础教程
2016/06/07 Python
Python将多个excel表格合并为一个表格
2021/02/22 Python
Python迭代器和生成器定义与用法示例
2018/02/10 Python
Python实现遗传算法(二进制编码)求函数最优值方式
2020/02/11 Python
HTML5中的音频和视频媒体播放元素小结
2016/01/29 HTML / CSS
戴尔加拿大官网:Dell加拿大
2016/09/17 全球购物
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
英国信箱在线鲜花速递公司:Bloom & Wild
2019/03/10 全球购物
EMU Australia澳大利亚官网:澳大利亚本土雪地靴品牌
2019/07/24 全球购物
速卖通欧盟:Aliexpress EU
2020/08/19 全球购物
护士毕业生自我鉴定
2014/02/08 职场文书
中学生打架检讨书
2014/02/10 职场文书
法制教育观后感
2015/06/17 职场文书
总经理致辞
2015/07/29 职场文书
有关浪费资源的建议书
2015/09/14 职场文书
会议开幕致辞怎么写
2016/03/03 职场文书
竞选稿之小学班干部
2019/10/31 职场文书