vue(绑定style属性)

Posted 瓢彭大雨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue(绑定style属性)相关的知识,希望对你有一定的参考价值。

                       以对象方式绑定style属性

 <div id="app">

        <!-- 在行内属性中书写样式 -->

        <div style="color:royalblue ; font-size: 48px;">黄绥睿真帅个鬼</div>

   

        <!-- 把行内属性改造成对象,以对象方式绑定style属性

        外部增加;属性值改造成字符串;分高改成逗号;属性名到对象名的改变 -->

        <div v-bind:style="color:'red',fontSize:'48px'">小钟不要脸</div>

               <!-- 把属性值改成变量 -->

               <!-- 第一个color是样式名,第二个color是变量名,和data中的变量保持一致 -->

        <div v-bind:style="color:color,fontSize:size">小邹也没用</div>

    <script src="../vue.js"></script>

    <script>

        new Vue(

            el:'#app',

            data:

                color:'red',

               size:'24px'

           

           

           

        )

    </script>

                    以对象方式绑定class属性

<div id="app">

        <button @click="btn">这里</button>

        <!-- 想要动态的设置class,也是给一个对象 -->

        <!-- 属性值:就是类名 -->

        <!-- 属性值:就是布尔值,如果为true,就代表有这个类名:false代表没有 -->

        <!-- <div class="box" v-bind:class="bg:ture"></div> -->

        <!-- 把布尔值转换成变量名,在data中去阐明这个变量 -->

        <div class="box" v-bind:class="bg:isBg"></div>

    </div>

    <script src="../vue.js"></script>

    <script>

        new Vue(

            el:'#app',

            data:

                isBg:true,

                flag:0

            ,

            methods:

                btn()

                    if(this.flag==0)

                        this.isBg=true

                        this.flag=1;

                   

                    else

                        this .isBg=false;

                        this.flag=0;

                   

               

           

        )

    </script>

 

 

Vue入门---属性style和class绑定方法

一 、用对象的方法绑定class

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4    <meta charset="UTF-8">
 5    <title>class与style绑定</title>
 6    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
 7    <script src="../../node_modules/vue/dist/vue.js" type="text/javascript" charset="utf-8"></script>
 8    <style>
 9       .class1{
10          color: #f00;
11       }
12       .class2{
13          background-color: #00f;
14       }
15    </style>
16 </head>
17 <body>
18 <div class="test">
19    <div class="otherClass" :class="{‘class1‘:name1,‘class2‘:name2}">我是娃哈哈</div> <!--方法一:用对象的方式实现  name1和name2是boolean型,为true时给元素加上对应的class,为false不添加-->
20 </div>
21 <script type="text/javascript">
22    var myVue = new Vue({
23       el:".test",
24       data: {
25          name1: true,
26          name2: false,
27       }
28    })
29 </script>
30 </body>
31 </html>

 

实现效果:

技术分享图片

 

 

关于使用对象绑定class,还可以用另外一种写法:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4    <meta charset="UTF-8">
 5    <title>class与style绑定</title>
 6    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
 7    <script src="../../node_modules/vue/dist/vue.js" type="text/javascript" charset="utf-8"></script>
 8    <style>
 9       .class1{
10          color: #f00;
11       }
12       .class2{
13          background-color: #00f;
14       }
15    </style>
16 </head>
17 <body>
18 <div class="test">
19    <div class="otherClass" :class="classObj">我是娃哈哈</div> <!--方法一:用对象的方式实现 ,true给元素加上对应的class,为false不添加-->
20 </div>
21 <script type="text/javascript">
22    var myVue = new Vue({
23       el:".test",
24       data: {
25          classObj: {
26             class1: true,
27             class2: false,
28          }
29 
30       }
31    })
32 </script>
33 </body>
34 </html>

 

实现效果:

技术分享图片

 

 

二 、用数组的方法绑定class

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4    <meta charset="UTF-8">
 5    <title>class与style绑定</title>
 6    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
 7    <script src="../../node_modules/vue/dist/vue.js" type="text/javascript" charset="utf-8"></script>
 8    <style>
 9       .class1{
10          color: #f00;
11       }
12       .class2{
13          background-color: #ff0;
14       }
15    </style>
16 </head>
17 <body>
18 <div class="test">
19    <div class="otherClass" :class="[name1,name2]">我是娃哈哈</div> <!--方法二:用数组的方式实现 -->
20 </div>
21 <script type="text/javascript">
22    var myVue = new Vue({
23       el:".test",
24       data: {
25             name1: class1,
26             name2: class2,
27 
28       }
29    })
30 </script>
31 </body>
32 </html>

 

实现效果:

技术分享图片

 

其实在数组中还可以用判断是否显示这个类名,举个例子:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4    <meta charset="UTF-8">
 5    <title>class与style绑定</title>
 6    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
 7    <script src="../../node_modules/vue/dist/vue.js" type="text/javascript" charset="utf-8"></script>
 8    <style>
 9       .class1{
10          color: #f00;
11       }
12       .class2{
13          background-color: #ff0;
14       }
15    </style>
16 </head>
17 <body>
18 <div class="test">
19    <div class="otherClass" :class="[name1, isShow? name2 : ‘‘]">我是娃哈哈</div> <!--方法一:用数组的方式实现 ,采用三元表达式,条件为true时显示-->
20 </div>
21 <script type="text/javascript">
22    var myVue = new Vue({
23       el:".test",
24       data: {
25             name1: class1,
26             name2: class2,
27             isShow: false,
28 
29       }
30    })
31 </script>
32 </body>
33 </html>

 

实现效果是:

技术分享图片

 

三、  用数组和对象混合的方法绑定class

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4    <meta charset="UTF-8">
 5    <title>class与style绑定</title>
 6    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
 7    <script src="../../node_modules/vue/dist/vue.js" type="text/javascript" charset="utf-8"></script>
 8    <style>
 9       .class1{
10          color: #f00;
11       }
12       .class2{
13          background-color: #ff0;
14       }
15    </style>
16 </head>
17 <body>
18 <div class="test">
19    <div class="otherClass" :class="[name1, {class2 :isShow}]">我是娃哈哈</div> <!--方法三:用数组对象组合的方式实现,条件为true时显示-->
20 </div>
21 <script type="text/javascript">
22    var myVue = new Vue({
23       el:".test",
24       data: {
25             name1: class1,
26             class2: name2,
27             isShow: true,
28 
29       }
30    })
31 </script>
32 </body>
33 </html>

 

实现的效果:

技术分享图片

 

四、 用对象的方式实现style绑定

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4    <meta charset="UTF-8">
 5    <title>class与style绑定</title>
 6    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
 7    <script src="../../node_modules/vue/dist/vue.js" type="text/javascript" charset="utf-8"></script>
 8    <style>
 9       .class1{
10          color: #f00;
11       }
12       .class2{
13          background-color: #ff0;
14       }
15    </style>
16 </head>
17 <body>
18 <div class="test">
19    <div class="otherClass" :style="{color: color, width: width + ‘px‘}">我是娃哈哈</div> <!--方法三:用对象的方式实现-->
20 </div>
21 <script type="text/javascript">
22    var myVue = new Vue({
23       el:".test",
24       data: {
25             color: red,
26             width: 100,
27 
28       }
29    })
30 </script>
31 </body>
32 </html>

 

实现效果如下:

技术分享图片

 

其实也可以写为第二种方式:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4    <meta charset="UTF-8">
 5    <title>class与style绑定</title>
 6    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
 7    <script src="../../node_modules/vue/dist/vue.js" type="text/javascript" charset="utf-8"></script>
 8 </head>
 9 <body>
10 <div class="test">
11    <div class="otherClass" :style= "styleObj">我是娃哈哈</div> <!--方法三:用对象的方式实现-->
12 </div>
13 <script type="text/javascript">
14    var myVue = new Vue({
15       el:".test",
16       data: {
17          styleObj: {
18             color: red,
19             width: 200px,
20          }
21 
22 
23       }
24    })
25 </script>
26 </body>
27 </html>

 

实现结果是:

技术分享图片

五、 用数组和对象混合的方式实现style绑定

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4    <meta charset="UTF-8">
 5    <title>class与style绑定</title>
 6    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
 7    <script src="../../node_modules/vue/dist/vue.js" type="text/javascript" charset="utf-8"></script>
 8 </head>
 9 <body>
10 <div class="test">
11    <div class="otherClass" :style= "[styleObj1,styleObj2]">我是娃哈哈</div> <!--方法三:用对象的方式实现-->
12 </div>
13 <script type="text/javascript">
14    var myVue = new Vue({
15       el:".test",
16       data: {
17          styleObj1: {
18             color: red,
19             width: 200px,
20          },
21          styleObj2: {
22             backgroundColor: #ff0
23          }
24 
25 
26       }
27    })
28 </script>
29 </body>
30 </html>

 

实现效果:

技术分享图片

六、绑定属性

v-bind:src=""

width/height/title....

简写::src=""   推荐

<img src="{{url}}" > 效果能出来,但是会报一个404错误
<img v-bind:src="url" > 效果可以出来,不会发404请求   推荐使用

以上就是vue中绑定style和class还有属性的方法,希望对大家有帮助!

 




以上是关于vue(绑定style属性)的主要内容,如果未能解决你的问题,请参考以下文章

vue2.* 绑定属性 绑定Class 绑定style 03

Vue 计算属性和监视属性详解细节 class类绑定和style样式绑定

vue 绑定属性 绑定Class 绑定style

Vue2.0笔记——属性绑定和Class与Style绑定

Vue基础(中):数据代理事件处理计算和监视属性class与style绑定

Vue入门---属性style和class绑定方法