美文网首页
Vue5.class 与 style 绑定

Vue5.class 与 style 绑定

作者: 黑咔 | 来源:发表于2019-03-12 17:22 被阅读0次
    1. class 绑定

    1.1 :class='xxx'
    2.1 表达式是字符串: 'classA'
    3.1 表达式是对象: {classA:isA, classB: isB}
    4.1 表达式是数组: ['classA', 'classB']

    2.style 绑定

    2.1 :style="{ color: activeColor, fontSize: fontSize + 'px' }"
    2.2 其中 activeColor/fontSize 是 data 属性

    Code demo :
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8"/>
        <title>绑定样式</title>
        <style>
            .basic {
                width: 400px;
                height: 100px;
                border: 1px solid black;
            }
    
            .happy {
                border: 4px solid red;;
                background-color: rgba(255, 255, 0, 0.644);
                background: linear-gradient(30deg, yellow, pink, orange, yellow);
            }
    
            .sad {
                border: 4px dashed rgb(2, 197, 2);
                background-color: gray;
            }
    
            .normal {
                background-color: skyblue;
            }
    
            .January {
                background-color: yellowgreen;
            }
    
            .February {
                font-size: 30px;
                text-shadow: 2px 2px 10px red;
            }
    
            .March {
                border-radius: 20px;
            }
        </style>
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
    <!--
        绑定样式:
                1. class样式
                            写法:class="xxx" xxx可以是字符串、对象、数组。
                                    字符串写法适用于:类名不确定,要动态获取。
                                    对象写法适用于:要绑定多个样式,个数不确定,名字也不确定。
                                    数组写法适用于:要绑定多个样式,个数确定,名字也确定,但不确定用不用。
                2. style样式
                            :style="{fontSize: xxx}"其中xxx是动态值。
                            :style="[a,b]"其中a、b是样式对象。
    -->
    <!-- 准备好一个容器-->
    <div id="root">
    
        <!-- 绑定class样式--字符串写法,适用于:样式的类名不确定,需要动态指定 -->
        <div class="basic" :class="mood" @click="changeMood">{{name}}</div>
        <br/><br/>
    
        <!-- 绑定class样式--数组写法,适用于:要绑定的样式个数不确定、名字也不确定 -->
        <div class="basic" :class="classArr">{{name}}</div>
        <br/><br/>
    
        <!-- 绑定class样式--对象写法,适用于:要绑定的样式个数确定、名字也确定,但要动态决定用不用 -->
        <div class="basic" :class="classObj">{{name}}</div>
        <br/><br/>
    
        <!-- 绑定style样式--对象写法(常用) -->
        <div class="basic" :style="styleObj">{{name}}</div>
        <br/><br/>
        <!-- 绑定style样式--数组写法(不常用) -->
        <div class="basic" :style="styleArr">{{name}}</div>
    </div>
    </body>
    
    <script type="text/javascript">
        Vue.config.productionTip = false
    
        const vm = new Vue({
            el: '#root',
            data: {
                name: 'month',
                mood: 'normal',
                classArr: ['January', 'February', 'March'],
                classObj: {
                    January: false,
                    February: false,
                },
                styleObj: {
                    fontSize: '40px',
                    color: 'red',
                },
                styleObj2: {
                    backgroundColor: 'orange'
                },
                styleArr: [
                    {
                        fontSize: '40px',
                        color: 'blue',
                    },
                    {
                        backgroundColor: 'gray'
                    }
                ]
            },
            methods: {
                changeMood() {
                    const arr = ['happy', 'sad', 'normal']
                    // Math.random()是随机生成大于等于 0.0 且小于 1.0 的随机数
                    // Math.floor向下取整
                    const index = Math.floor(Math.random() * 3)
                    this.mood = arr[index]
                }
            },
        })
    </script>
    </html>
    

    相关文章

      网友评论

          本文标题:Vue5.class 与 style 绑定

          本文链接:https://www.haomeiwen.com/subject/whowpqtx.html