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 相关文章推荐
Javascript基础教程之定义和调用函数
Jan 18 Javascript
JavaScript弹出新窗口后向父窗口输出内容的方法
Apr 06 Javascript
Ext JS框架中日期函数的用法及日期选择控件的实现
May 21 Javascript
JavaScript中浅讲ajax图文详解
Nov 11 Javascript
JavaScript定时器setTimeout()和setInterval()详解
Aug 18 Javascript
代码详解javascript模块加载器
Mar 04 Javascript
Vue单页及多页应用全局配置404页面实践记录
May 22 Javascript
详解Angularjs 自定义指令中的数据绑定
Jul 19 Javascript
vue  自定义组件实现通讯录功能
Sep 30 Javascript
微信小程序实现的图片保存功能示例
Apr 24 Javascript
vue-amap根据地址回显地图并mark的操作
Nov 03 Javascript
原生js实现弹窗消息动画
Nov 20 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验证码无法显示的原因及解决办法
2017/08/11 PHP
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
2010/04/29 Javascript
Jquery调用webService远程访问出错的解决方法
2010/05/21 Javascript
基于jQuery的可用于选项卡及幻灯的切换插件
2011/03/28 Javascript
js计算精度问题小结
2013/04/22 Javascript
AngularJS初始化过程分析(引导程序)
2014/12/06 Javascript
javascript学习笔记_浅谈基础语法,类型,变量
2016/09/19 Javascript
Jquery on绑定的事件 触发多次实例代码
2016/12/08 Javascript
实例讲解DataTables固定表格宽度(设置横向滚动条)
2017/07/11 Javascript
使用node.js对音视频文件加密的实例代码
2017/08/30 Javascript
使用 Vue 实现一个虚拟列表的方法
2019/08/20 Javascript
15 分钟掌握vue-next响应式原理
2019/10/13 Javascript
vue实现鼠标移过出现下拉二级菜单功能
2019/12/12 Javascript
[01:15:12]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#4Newbee VS CDEC
2016/03/03 DOTA
[01:03:37]Secret vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
python基础教程之lambda表达式使用方法
2014/02/12 Python
Python实现的生成自我描述脚本分享(很有意思的程序)
2014/07/18 Python
Python脚本实现自动将数据库备份到 Dropbox
2017/02/06 Python
python 爬虫出现403禁止访问错误详解
2017/03/11 Python
Windows和Linux下Python输出彩色文字的方法教程
2017/05/02 Python
pytorch构建网络模型的4种方法
2018/04/13 Python
Python Flask 搭建微信小程序后台详解
2019/05/06 Python
使用Rasterio读取栅格数据的实例讲解
2019/11/26 Python
opencv3/C++ 平面对象识别&amp;透视变换方式
2019/12/11 Python
python文件和文件夹复制函数
2020/02/07 Python
Python3实现打印任意宽度的菱形代码
2020/04/12 Python
Python如何获取文件指定行的内容
2020/05/27 Python
Python无损压缩图片的示例代码
2020/08/06 Python
详解KMP算法以及python如何实现
2020/09/18 Python
Python远程linux执行命令实现
2020/11/11 Python
BNKR中国官网:带你感受澳洲领先潮流时尚
2018/08/21 全球购物
检察院对照“四风”认真查找问题落实整改措施
2014/09/26 职场文书
2014年安置帮教工作总结
2014/12/11 职场文书
2015教师节通讯稿
2015/07/20 职场文书
组织委员竞选稿
2015/11/21 职场文书
Python+Selenium自动化环境搭建与操作基础详解
2022/03/13 Python