zoukankan      html  css  js  c++  java
  • Vue之样式绑定

    在前端开发中,设置元素的 class 列表和内联样式是基本要求。本文主要讲解vue开发中,样式列表和内联样式的绑定,仅供学习分享使用,如果有不足之处,还请指正。

    概述

    vue操作元素的 class 列表和内联样式是数据绑定的一个常见需求。因为它们都是属性,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可。不过,字符串拼接麻烦且易错。因此,在将 v-bind 用于 class 和 style 时,Vue.js 做了专门的增强。表达式结果的类型除了字符串之外,还可以是对象或数组。

    绑定 html Class

    可以传给 v-bind:class 一个对象,以动态地切换 class:

    <div v-bind:class="{red:isred,bold:isbold}">混合样式1--绑定数据属性</div>

    上面的语法表示 red 这个 class 存在与否将取决于数据属性 isred 的 是否为true。你可以在对象中传入更多属性来动态切换多个 class。此外,v-bind:class 指令也可以与普通的 class 属性共存。

    绑定的数据对象采用复合样式的效果,不必内联定义在模板里,如下所示:

    <div v-bind:class="multi">混合样式2---复合对象</div>

    其中multi是一个复合数据对象,如下所示:

    <script type="text/JavaScript">
        var vm=new Vue({
            el:"#app",
            data:{
                bg:'yellow',
                isbold:true,
                isred:true,
                multi:{
                    red:true,
                    bold:true,
                }
            }
    
        });
    </script>

    以上两种,结果渲染是一样的,如下所示:

    <div class="red bold"></div>

    广州设计公司https://www.houdianzi.com 我的007办公资源网站https://www.wode007.com

    绑定计算属性

    我们也可以在这里绑定一个返回对象的计算属性。这是一个常用且强大的模式:

    <div v-bind:class="cmpstyle">混合样式3---计算属性</div>

    其中cmpstyle是一个计算属性,返回的对象,如下所示:

    <script type="text/JavaScript">
        var vm=new Vue({
            el:"#app",
            computed:{
                cmpstyle:function(){
                    return {
                        red:true,
                        bold:true,
                    }
                }
            }
        });
    </script>
     

    css数组语法

    我们可以把一个数组传给 v-bind:class,以应用一个 class 列表:

    <div v-bind:class="arrcss">混合样式4---数组绑定样式</div>

    其中arrcss是一个数组样式,如下所示:

    <script type="text/javascript">
        var vm=new Vue({
            el:"#app",
            data:{
                arrcss:['red','bold'],
            }
        });
    </script>
     

    绑定内联样式

    v-bind:style 的对象语法十分直观——看着非常像 CSS,但其实是一个 JavaScript 对象。CSS 属性名可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case,记得用引号括起来) 来命名:

    <div v-bind:style="{color:bg2}">内联样式2--属性</div>

    绑定内联样式,直接绑定到一个样式对象通常更好,这会让模板更清晰:

    <div v-bind:style="bg3">内联样式3--绑定对象</div>

    其中,bg3是一个对象,如下所示:

    <script type="text/javascript">
        var vm=new Vue({
            el:"#app",
            data:{
                bg2:'green',
                bg3:{
                    color:'red',
                    fontSize:'30px'
                }
            }
        });
    </script>
     

    内联样式数组语法

    v-bind:style 的数组语法可以将多个样式对象应用到同一个元素上:

    <div v-bind:style="[bg3,bg4]">内联样式4--绑定对象</div>

    多重值

    从 2.3.0 起你可以为 style 绑定中的属性提供一个包含多个值的数组,常用于提供多个带前缀的值,例如:

    <div :style="{ display: ['-webkit-box', '-ms-flexbox', 'flex'] }"></div>

    这样写只会渲染数组中最后一个被浏览器支持的值。在本例中,如果浏览器支持不带浏览器前缀的 flexbox,那么就只会渲染 display: flex。

  • 相关阅读:
    环境变量的配置
    java语言概述
    快捷键,功能键及常用的DOS命令
    html介绍
    Java web学习框架
    线程的使用
    Task类(任务)
    Parallel类(简化Task 操作)
    文件及数据流技术
    泛型的使用
  • 原文地址:https://www.cnblogs.com/qianxiaox/p/13830994.html
Copyright © 2011-2022 走看看