Vue修改class样式

 class样式

  1. 写法:class="xxx"  xxx可以是字符串,对象,数组。
    1. 字符串写法适用于:类名不确定,要动态获取。
    2. 对象写法适用于:要绑定多个样式,个数不确定,名字也不确定。
    3. 数组写法适用于:要绑定多个样式,个数确定,名字也确定,但不确定用不用。
  2. style样式
    1. :style='{fontSize:xxx}'其中xxx'是动态值。
    2. :style=‘{a,b}’其中a,b是样式对象。

        

 动态绑定类样式

<div id="root">
    <!-- 绑定class样式--字符串写法,适用于:样式的类名不确定,需要动态指定 -->
    <h1 v-bind:class="myStyle" @click="changeColor">Hello world</h1>
</div>
<script>
    new Vue({
        el: "#root",
        data: {
            myStyle: "violet"
        },
        methods: {
            changeColor() {
                this.myStyle = this.myStyle === "violet" ? "cyan" : "violet";
            }
        },
    })
</script>

数组的方式绑定样式

<head>
<style>
    .fontColor {
        color: violet;
    }

    .backgroud {
        background-color: cyan;
    }

    .border {
        border: 2px solid red;
    }
</style>

</head>

<body>

<div id="root">
    <!-- 如果样式不确定可以写到一个数组中,数组变化时样式会自动变化 -->
    <h1 v-bind:class="myStyleArr" @click="changeColor">Hello world</h1>
</div>
<script>
    new Vue({
        el: "#root",
        data: {
            myStyleArr: ["fontColor", "backgroud", "border"]
        },
        methods: {
            changeColor() {
                // 数组变化时样式会自动刷新
                this.myStyleArr.shift();
            }
        },
    })
</script>

对象的方式绑定样式 

<head>
    <style>
        .fontColor {
            color: violet;
        }

        .backgroud {
            background-color: cyan;
        }

        .border {
            border: 2px solid red;
        }
    </style>

</head>

<body>

<div id="root">
    <!-- 如果样式不确定可以写到一个数组中,数组变化时样式会自动变化 -->
    <h1 v-bind:class="classObj" @click="changeColor">Hello world</h1>
</div>
<script>
    new Vue({
        el: "#root",
        data: {
            classObj:{
                //属性名要和上面的样式名对应
                fontColor:true,
                backgroud:false,
                border:true
            }
        }
    })
</script>

</body>

style绑定对象的方式确定样式 

<div id="root">
    <h1 v-bind:style="styleObj">Hello world</h1>
    <!-- 
        或者  <h1 v-bind:style="{fontSize: '90px'}">Hello world</h1>
    -->
</div>
<script>
    new Vue({
        el: "#root",
        data: {
            styleObj: {
                //font-size,‘-’要去掉,第二个单词大写。
                fontSize: '90px',
                color: "red",
                backgroundColor: "cyan"
            }
        }
    })
</script>

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值