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 两个窗体之间传值实现代码
Sep 25 Javascript
JS 添加网页桌面快捷方式的代码详细整理
Dec 27 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
Aug 23 Javascript
基于jquery fly插件实现加入购物车抛物线动画效果
Apr 05 Javascript
微信小程序 获取设备信息 API实例详解
Oct 02 Javascript
浅谈移动端之js touch事件 手势滑动事件
Nov 07 Javascript
jQuery实现判断上传图片类型和大小的方法示例
Apr 11 jQuery
vue中promise的使用及异步请求数据的方法
Nov 08 Javascript
JS实现长图上下滚动效果
Mar 19 Javascript
解决vue项目,npm run build后,报路径错的问题
Aug 13 Javascript
ant-design-vue中的select选择器,对输入值的进行筛选操作
Oct 24 Javascript
canvas 中如何实现物体的框选
Aug 05 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
mysql数据库差异比较的PHP代码
2012/02/05 PHP
PHP使用gmdate实现将一个UNIX 时间格式化成GMT文本的方法
2015/03/19 PHP
php实现在站点里面添加邮件发送的功能
2020/04/28 PHP
php错误日志简单配置方法
2016/07/11 PHP
Yii实现微信公众号场景二维码的方法实例
2020/08/30 PHP
Asp.net下使用Jquery Ajax传送和接收DataTable的代码
2010/09/12 Javascript
json2.js的初步学习与了解
2011/10/06 Javascript
Javascript操作cookie的函数代码
2012/10/03 Javascript
JS 获取浏览器和屏幕宽高等信息的实现思路及代码
2013/07/31 Javascript
原生js实现淘宝首页点击按钮缓慢回到顶部效果
2014/04/06 Javascript
Extjs Label的 fieldLabel和html属性值对齐的方法
2014/06/15 Javascript
利用jQuery实现WordPress中@的ID悬浮显示评论内容
2015/12/11 Javascript
详解Vue监听数据变化原理
2017/03/08 Javascript
JS设计模式之单例模式(一)
2017/09/29 Javascript
AngularJS中下拉框的高级用法示例
2017/10/11 Javascript
微信小程序自定义纯净模态框(弹出框)的实例代码
2020/03/09 Javascript
python下paramiko模块实现ssh连接登录Linux服务器
2015/06/03 Python
Python xlwt设置excel单元格字体及格式
2020/04/18 Python
Python3一行代码实现图片文字识别的示例
2018/01/15 Python
对python中array.sum(axis=?)的用法介绍
2018/06/28 Python
Python实现繁?转为简体的方法示例
2018/12/18 Python
Python timer定时器两种常用方法解析
2020/01/20 Python
Zadig&Voltaire官网:法国时装品牌
2018/01/05 全球购物
英国大码女性时装零售商:Evans
2018/08/29 全球购物
物业管理公司实习生自我鉴定
2013/09/19 职场文书
工地安全质量标语
2014/06/07 职场文书
城市创卫标语
2014/06/17 职场文书
毕业生应聘求职信
2014/07/10 职场文书
优秀教师先进个人事迹材料
2014/08/31 职场文书
学校办公室主任岗位职责
2015/04/01 职场文书
党员干部廉洁自律承诺书
2015/04/28 职场文书
新学期感想
2015/08/10 职场文书
Java方法重载和方法重写的区别到底在哪?
2021/06/11 Java/Android
Python scrapy爬取起点中文网小说榜单
2021/06/13 Python
java Nio使用NioSocket客户端与服务端交互实现方式
2021/06/15 Java/Android
Mysql8.0递归查询的简单用法示例
2021/08/04 MySQL