首頁 > 軟體

Vue的樣式繫結詳解

2022-02-24 19:00:12

1. 樣式繫結(class、style)

1.1 繫結class

固定的類名就正常的寫,需要動態繫結的類名就v-bind去繫結它

例如::class= "mood"

下面舉一些適用的場景:

1.繫結class樣式—字串寫法,適用於:樣式的類名不確定,需要動態指定

2.繫結class樣式 — 陣列寫法使用的場景 :繫結的樣式的個數不確定,名字也不確定

3.繫結class樣式 — 物件寫法使用的場景:繫結的個數確定的,名字也確定,不確定的是用不用該類名

 <body>
    <style>
        .basic {
            width: 100px;
            height: 100px;
            border: 2px solid black;
        }
        .happy {
            width: 100px;
            height: 100px;
            border: 2px solid orange;
            background-color: palevioletred;
        }
        .sad {
            width: 100px;
            height: 100px;
            border: 2px solid black;
            background-color: silver;
        }
        .normal {
            width: 100px;
            height: 100px;
            border: 2px solid greenyellow;
            background-color: sandybrown;
        }
        .outline {
            border-radius: 20%;
        }
        .color {
            color: skyblue;
        }
        .size {
            font-family: '微軟雅黑';
            font-size: 20px;
            font-weight: bold;
        }
    </style>
    <div id="root">
        <!-- 
            需求1 :點選div1 隨機切換mood
            繫結class樣式  ---  字串寫法
            1. 固定的class類名就正常寫,需要動態指定的class類名就  :class="xxx"  寫到這裡面
            2. 使用的場景 : 樣式的類名不確定,需要去動態指定
         -->
        <div class="div1 basic" :class="mood" @click="random">{{name}}</div>

        <!-- 
            需求2 : 點選div2 新增類,或者刪除類
            繫結class樣式  --- 陣列寫法
            1. 使用的場景 :繫結的樣式的個數不確定,名字也不確定
            2. shift() :移除陣列中第一個資料, push("xxx");在末尾新增一個新的資料
         -->
        <div class="div2 basic" :class="classArr" @click = "remove">{{name}}</div> 

        <!-- 注意點:在vue操作下 " " 裡面的寫的字串是表示式," '' " 裡面寫的字串就是值   -->
        <!-- <div class="div2 basic" :class="['outline','color','size']"></div> -->

        <!-- 
            需求3 :在outline和color之間進行切換
            繫結class樣式  --- 物件寫法
            使用的場景:繫結的個數確定的,名字也確定,不確定的是用不用該類名
         -->
         <div class="div3 basic" :class="classObj" @click="change">{{name}}</div>
    </div>
    <script>
        Vue.config.productionTip = false
        let vm = new Vue({
            el: '#root',
            data: {
                name: "Hello,Vue!",
                mood: "normal",
                classArr:['outline','color','size'],
                classObj:{
                    outline:true,
                    color:true
                }
            },
            methods: {
                random() {
                    let arr = ["happy", "sad", "normal"]
                    // Math.floor : 表示向下取整, Math.random():取值是0-1,1是取不到的
                    this.mood = arr[Math.floor(Math.random() * 3)]
                },
                remove(){
                    this.classArr.shift()
                },
                change(){
                   vm.classObj.color = !vm.classObj.color
                   vm.classObj.outline = !vm.classObj.outline
                }
            }
        })
    </script>

1.2 繫結style

例如::style = "styleobj"

<div id="root" :style="styleobj">
        Hello,{{name}}!
    </div>
    <script>
        Vue.config.productionTip = false
        let vm = new Vue({
            el: '#root',
            data: {
                name:"Vue",
                styleobj:{
                    fontSize: 50 + "px",
                    color: "red",
                    border:1+"px"+" "+"solid"+" "+"black"             
                }
            }
        })
    </script>

總結

本篇文章就到這裡了,介紹了class和style如何繫結,希望能夠給你帶來幫助,也希望您能夠多多關注it145.com的更多內容!    


IT145.com E-mail:sddin#qq.com