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 相关文章推荐
js Date自定义函数 延迟脚本执行
Mar 10 Javascript
7款风格新颖的jQuery/CSS3菜单导航分享
Apr 23 Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
Apr 29 Javascript
jquery加载图片时以淡入方式显示的方法
Jan 14 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
May 14 Javascript
Angularjs整合微信UI(weui)
Mar 15 Javascript
JQuery validate插件验证用户注册信息
May 11 Javascript
js实现页面刷新滚动条位置不变
Nov 27 Javascript
Vue.js实现简单ToDoList 前期准备(一)
Dec 01 Javascript
canvas绘制七巧板
Feb 03 Javascript
十个免费的web前端开发工具详细整理
Sep 18 Javascript
vue中使用codemirror的实例详解
Nov 01 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
PHP4之真OO
2006/10/09 PHP
PHP面向对象——访问修饰符介绍
2012/11/08 PHP
PHP实现简单实用的验证码类
2015/07/29 PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
2016/09/11 PHP
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
Javascript中的for in循环和hasOwnProperty结合使用
2013/06/05 Javascript
JavaScript中使用document.write向页面输出内容实例
2014/10/16 Javascript
js验证上传图片的方法
2015/05/12 Javascript
JQ实现新浪游戏首页幻灯片
2015/07/29 Javascript
Nodejs express框架一个工程中同时使用ejs模版和jade模版
2015/12/28 NodeJs
Bootstrap 组件之按钮(二)
2016/05/11 Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
2017/01/10 Javascript
jQuery+ThinkPHP+Ajax实现即时消息提醒功能实例代码
2017/03/21 jQuery
老生常谈angularjs中的$state.go
2017/04/24 Javascript
Angular中的interceptors拦截器
2017/06/25 Javascript
javascript  删除select中的所有option的实例
2017/09/17 Javascript
ES6入门教程之变量的解构赋值详解
2019/04/13 Javascript
Vue获取页面元素的相对位置的方法示例
2020/02/05 Javascript
vue实现购物车功能(商品分类)
2020/04/20 Javascript
解决antd的Form组件setFieldsValue的警告问题
2020/10/29 Javascript
Vue实现购物车基本功能
2020/11/08 Javascript
js实现滚动条自动滚动
2020/12/13 Javascript
[47:45]Liquid vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
wtfPython—Python中一组有趣微妙的代码【收藏】
2018/08/31 Python
Python中修改字符串的四种方法
2018/11/02 Python
Laravel+Dingo/Api 自定义响应的实现
2019/02/17 Python
Python安装Flask环境及简单应用示例
2019/05/03 Python
Pandas之Dropna滤除缺失数据的实现方法
2019/06/25 Python
python+requests接口自动化框架的实现
2020/08/31 Python
python和node.js生成当前时间戳的示例
2020/09/29 Python
Python 实现进度条的六种方式
2021/01/06 Python
美国椅子和沙发制造商:La-Z-Boy
2020/10/25 全球购物
工业学校毕业生自荐书
2014/01/03 职场文书
最新创业融资计划书
2014/01/19 职场文书
2016国庆促销广告语
2016/01/28 职场文书
Django与数据库交互的实现
2021/06/03 Python