zoukankan      html  css  js  c++  java
  • v-bind动态绑定class和style

    现在很多网站,都是希望动态切换class,更换css样式。下面我们使用Vue的v-bind绑定class

    v-bind动态绑定class

    对象语法绑定(常用)

    red和size的值为true就在class显示red和size,false就不显示。下面有两种写法:

    <style>
        .red{
            color: red;
        }
        .size{
            font-size: 20px;
        }
    </style>
    
    <div id="app">
        <ul>
            <!--写法一-->
            <li :class="{red:isColor,size:isSize}">{{list}}</li>
            <!--写法二,v-bind绑定函数必须加上()-->
            <li :class="listData()">{{list}}</li>
        </ul>
        <!--点击这个,red的true变false,反之red的false变true-->
        <button @click="reverse">反选</button>
    </div>
    
    <script>
        const app=new Vue({
            el:"#app",
            data:{
                list:"Vue",
                isColor:true,
                isSize:true
            },
            methods:{
                reverse:function () {
                    return this.isColor = !this.isColor;
                },
                //写法二
                listData:function () {
                    return {red:this.isColor,size:this.isSize};
                }
            }
        })
    </script>

    注意:v-bind:class指令可以与普通的class特性共存;对应的语法糖:“:class”等于v-bind:class

    数组语法绑定

    数组语法不常用,主要是它不灵活:

    <div id="app">
        <ul>
            <!--这里绑定data的变量-->
            <li :class="[acli,bcli]">{{list}}</li>
        </ul>
    </div>
    
    const app=new Vue({
            el:"#app",
            data:{
                list:"Vue",
                acli:"aaa",
                bcli:"bbb",
            },
    })    

    字符串绑定更数组语法绑定差不多,不常用

    <div id="demo">
      <span :class="classA"></span>
    </div>
    
    let vm = new Vue({
        el:"#demo",
        data:{
          classA:"string"
        }
    })

    综合的写法

    <div id="demo">
      <span :class="[one,{‘classA‘:classa,‘classB‘:classb}]"></span>
    </div>
    
    var vm = new Vue({
        el:"#demo",
        data:{
          one:"string",
          classa:true,
          classb:false
        }
    })

    v-bind动态绑定style

    对象语法绑定(常用)

    v-bind:style 的对象语法十分直观——看着非常像 CSS,但其实是一个 JavaScript 对象。

    <div id="app">
        <ul>
            <!--{key(属性名):value(属性值)}-->
            <li :style="{color:color,fontSize:size+'px'}">{{list}}</li>
            <!--如果你想属性值原样数组,就必须加上单引号-->
            <li :style="{color:'red'}">{{list}}</li>
        </ul>
    </div>
    
    const app=new Vue({
        el:"#app",
        data:{
            list:"Vue",
            color:"red",
         size:50 }, })

    注:对象语法的value(属性值),如果加上单引号就原样输出,不加就输出data的变量值

    数组语法绑定

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

    <div v-bind:style="[baseStyles,overridingStyles]">{{list}}</div>
    
    const app=new Vue({
        el:"#app",
        data:{
            list:"Vue",
            baseStyles:{fontSize:"50px",color:"red"},
            overridingStyles:{"margin-top":"50px"}
        },
       
    })
  • 相关阅读:
    Python面向对象:继承和多态
    Python面向对象:类、实例与访问限制
    Python正则表达式匹配猫眼电影HTML信息
    Git:从github上克隆、修改和更新项目
    Python:闭包
    JPA-映射-(@ManyToMany)双向多对多
    rownum详解
    java之yield(),sleep(),wait()区别详解
    springmvc<一>一种资源返回多种形式【ContentNegotiatingViewResolver】
    @RequestParam,@PathVariable,@ResponseBody,@RequestBody,@ModelAttribute学习
  • 原文地址:https://www.cnblogs.com/bushui/p/12194133.html
Copyright © 2011-2022 走看看