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 相关文章推荐
jquery 学习笔记 传智博客佟老师附详细注释
Sep 12 Javascript
关于include标签导致js路径找不到的问题分析及解决
Jul 09 Javascript
JavaScript动态操作表格实例(添加,删除行,列及单元格)
Nov 25 Javascript
Javascript this 关键字 详解
Oct 22 Javascript
javascript工厂方式定义对象
Dec 26 Javascript
jQuery网页版打砖块小游戏源码分享
Aug 20 Javascript
学习使用AngularJS文件上传控件
Feb 16 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
May 22 Javascript
react native与webview通信的示例代码
Sep 25 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
Nov 17 Javascript
vue .js绑定checkbox并获取、改变选中状态的实例
Aug 24 Javascript
Vue.js数字输入框组件使用方法详解
Oct 19 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里的JS打印函数
2006/10/09 PHP
模拟OICQ的实现思路和核心程序(三)
2006/10/09 PHP
用php或asp创建网页桌面快捷方式的代码
2010/03/23 PHP
mac系统下安装多个php并自由切换的方法详解
2017/04/21 PHP
JQuery 操作select标签实现代码
2010/05/14 Javascript
jQuery中判断一个元素是否为另一个元素的子元素(或者其本身)
2012/03/21 Javascript
一个JavaScript函数把URL参数解析成Json对象
2014/09/24 Javascript
JavaScript Split()方法
2015/12/18 Javascript
Bootstrap实现默认导航栏效果
2020/09/21 Javascript
angularjs创建弹出框实现拖动效果
2020/08/25 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
JavaScript学习笔记之创建对象
2016/03/25 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
JS获取年月日时分秒的方法分析
2016/11/28 Javascript
canvas绘制多边形
2017/02/24 Javascript
深入解析Python的Tornado框架中内置的模板引擎
2016/07/11 Python
回调函数的意义以及python实现实例
2017/06/20 Python
Python将图片转换为字符画的方法
2020/06/16 Python
Python通过调用mysql存储过程实现更新数据功能示例
2018/04/03 Python
python selenium firefox使用详解
2019/02/26 Python
python plotly画柱状图代码实例
2019/12/13 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
2020/03/16 Python
Windows下PyCharm配置Anaconda环境(超详细教程)
2020/07/31 Python
使用canvas实现黑客帝国数字雨效果
2020/01/02 HTML / CSS
ALLSAINTS英国官网:伦敦新锐潮流品牌
2016/09/19 全球购物
亚洲在线旅行门户网站:Expedia.com.hk(智游网)
2020/04/14 全球购物
医学护理系毕业生求职信
2013/10/01 职场文书
公司领导推荐信
2013/11/12 职场文书
大学生个人自我鉴定
2013/12/03 职场文书
海飞丝广告词
2014/03/20 职场文书
政府会议通知范文
2015/04/15 职场文书
机关保密工作承诺书
2015/05/04 职场文书
golang http使用踩过的坑与填坑指南
2021/04/27 Golang
从QQtabBar看css命名规范BEM的详细介绍
2021/08/07 HTML / CSS
关于Python使用turtle库画任意图的问题
2022/04/01 Python
js前端设计模式优化50%表单校验代码示例
2022/06/21 Javascript