Vue —— 样式绑定

简介: Vue —— 样式绑定

一、class 属性绑定

class 与 style 是 HTML 元素的属性,用于设置元素的样式,可以用 v-bind 来设置样式属性。


Vue.js v-bind 在处理 class 和 style 时, 专门增强了它。表达式的结果类型除了字符串之外,还可以是对象或数组。


为 v-bind:class 设置一个对象,从而动态的切换 class

  .active{
        width:100px;
        height: 100px;
        background-color: lightblue;
    }
  <div id='app'>
        <div :class="{'active' : isActive}"></div>
    </div>
  var vm = new Vue({
        el: '#app',
        data: {
            isActive: true
        }
    })

以上实例 div class 为:<div class="active"></div>

d1624acf7bdd40fd811b9a80416ecec2.png

  1. 直接绑定数据里的一个对象
  .active{
        width:100px;
        height: 100px;
        background-color: lightblue;
    }
    .text-danger {
        background: red;
    }
    <div id='app'>
        <div :class="classObject"></div>
    </div>
  var vm = new Vue({
        el: '#app',
        data: {
            classObject: {
                active: true,
                'text-danger': true
            }
        }
    })

以上实例 div class 为:<div class="active text-danger"></div>

d29eedf4db3b4284b87d10ae788451f3.png

  1. 数组语法:把一个 数组 传递给 v-bind
  .active{
        width:100px;
        height: 100px;
        background-color: lightblue;
    }
    .text-danger {
        background: red;
    }
  <div id='app'>
        <div v-bind:class="[activeClass, errorClass]"></div>
    </div>
  var vm = new Vue({
        el: '#app',
        data: {
            activeClass: 'active',
            errorClass: 'text-danger'
        }
    })

以上实例 div class 为:<div class="active text-danger"></div>

二、style(内联样式)

  1. 在 v-bind:style 直接设置样式
  <div id='app'>
        <div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' } ">Hello vue!</div>
    </div>
  var vm = new Vue({
        el: '#app',
        data: {
            activeColor: 'green',
            fontSize: 30
        }
    })

418a175a285f452db764529377e8146d.png

  1. 直接绑定到一个样式对象,让模板更清晰
  <div id='app'>
        <div v-bind:style="styleObject">Hello vue!</div>
    </div>
  var vm = new Vue({
        el: '#app',
        data: {
            styleObject:{
                color: 'green',
                fontSize: '30px'
            }
        }
    })

418a175a285f452db764529377e8146d.png

  1. v-bind:style 可以使用数组将多个样式对象应用到一个元素上
  <div id='app'>
        <div v-bind:style="[styleObject1, styleObject2]">Hello vue!   </div>
    </div>
  var vm = new Vue({
        el: '#app',
        data: {
            styleObject1:{
                color: 'green',
                fontSize: '30px'
            },
            styleObject2:{
                'font-weight': '20'
            }
        }
    })

7e797d0c2e2e4c6db8e787f87e1899b6.png

三、实现字体的动态调节

  <div id='app'>
        <div v-bind:style="{color: 'red', fontSize: size + 'px'}">可以动态调节</div>
        <div v-bind:style="computedStyle">可以动态调节</div>
        <div v-bind:style="objectStyle">可以动态调节</div>
        <div v-bind:style="methodStyle()">可以动态调节</div>
        {{size}}
        <button @click="++size">+</button>
        <button @click="--size">-</button>
    </div>
  var vm = new Vue({
        el: '#app',
        data: {
            size:20,
            objectStyle:{
                color:'green',
                fontSize: 20 + 'px'
            }
        },
        methods:{
            methodStyle: function(){
                return {color: 'green',fontSize: this.size + 'px'}
            }
        },
        computed:{
            computedStyle: function(){
                return {color: 'red', fontSize: this.size + 'px'}
            }
        },
        watch:{
            size: function(){
                this.objectStyle.fontSize = this.size + 'px'
            }
        }
    })

77318391334642caa07072d8424f370e.png

不积跬步无以至千里 不积小流无以成江海

相关文章
|
3天前
|
JavaScript
Vue中如何设置在执行删除等危险操作时给用户提示(二次确认后执行对应的操作)
这篇文章介绍了在Vue项目中如何实现执行删除等危险操作时的二次确认机制,使用Element UI的`el-popconfirm`组件来弹出确认框,确保用户在二次确认后才会执行删除操作。
Vue中如何设置在执行删除等危险操作时给用户提示(二次确认后执行对应的操作)
|
3天前
|
JavaScript
如何创建一个Vue项目(手把手教你)
这篇文章是一篇手把手教读者如何创建Vue项目的教程,包括使用管理员身份打开命令行窗口、找到存放项目的位置、通过vue-cli初始化项目、填写项目信息、进入项目目录、启动项目等步骤,并提供了一些常见第三方库的引入方法。
如何创建一个Vue项目(手把手教你)
|
3天前
|
前端开发
StringBoot+Vue实现游客或用户未登录系统前、可以浏览商品等信息、但是不能购买商品或者加入购物车等操作。登录系统显示用户的登录名(源码+讲解)
这篇文章介绍了使用StringBoot+Vue实现用户登录状态判断的方法,包括前端加载用户信息和后端设置session的源码示例。
|
3天前
|
JavaScript
如何在Vue页面中引入img下的图片作为背景图。../的使用
这篇文章介绍了在Vue页面中如何引入`img`目录下的图片作为背景图,提供了两种使用相对路径的方法。第一种是使用`../assets/img/`作为路径引入图片,第二种是使用`../../assets/img/`作为路径。文章还展示了使用这些方法的代码实现和效果展示,并鼓励读者学无止境。
如何在Vue页面中引入img下的图片作为背景图。../的使用
|
3天前
|
JavaScript
如何通过点击商品的信息(图片或者文字)跳转到更加详细的商品信息介绍(前后端分离之Vue实现)
该博客文章介绍了如何在Vue 2框架下实现前后端分离的商品信息展示和详情页跳转,包括排序筛选、详情展示、加入购物车和分享功能。
如何通过点击商品的信息(图片或者文字)跳转到更加详细的商品信息介绍(前后端分离之Vue实现)
|
3天前
|
JavaScript
如何查看Vue使用的版本
这篇文章介绍了如何在项目中查看Vue及其相关库的版本信息,比如element-ui和element-china-area-data。要查看Vue的版本,需要查看项目中的`package.json`文件,在`dependencies`部分可以找到Vue的版本号。如果需要查询不同版本的兼容性,可以访问相应的官方文档或资源网站。
|
3天前
|
存储 JavaScript 前端开发
Vue中如何通过三元运算符来展示不同的操作
这篇文章讲述了在Vue中如何使用三元运算符结合v-if指令来根据订单的不同状态展示不同的操作按钮,例如在待发货状态显示退款按钮,在待付款或完成状态显示删除按钮。
|
JavaScript 测试技术 容器
Vue2+VueRouter2+webpack 构建项目
1). 安装Node环境和npm包管理工具 检测版本 node -v npm -v 图1.png 2). 安装vue-cli(vue脚手架) npm install -g vue-cli --registry=https://registry.
1028 0
|
3天前
|
JavaScript 编译器
成功解决:Module build failed: Error: Vue packages version mismatch
这篇文章记录了解决Vue项目中遇到的"Module build failed: Error: Vue packages version mismatch"错误的步骤,原因是项目中Vue依赖的版本不一致,解决方法是删除`node_modules`后重新安装指定版本的Vue和`vue-template-compiler`,确保版本匹配,最终成功运行项目。
成功解决:Module build failed: Error: Vue packages version mismatch
|
3天前
|
JavaScript
在Vue中使用Avue、配置过程以及实际应用
这篇文章介绍了作者在Vue项目中集成Avue组件库的完整过程,包括安装、配置和实际应用,展示了如何利用Avue实现动态表单和数据展示的功能。
在Vue中使用Avue、配置过程以及实际应用