Vue-class样式,style样式

样式的绑定

  style

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <title></title>
 6     </head>
 7 <script src="../js/vue.js"></script>    
 8     <body>
 9         <div id="app">
10             <!-- 对象就是无序键值对的集合,当内部属性带 “-” 时, 如 font-weight 等,引号不能省略 -->
11             <h1 :style="styleObj">我是一个H1</h1>
12         
13             <h2 :style="{ color:'red', 'font-weight':200 }">我是一个h2</h2>
14             
15         </div>
16         
17         <div id="app1">
18             <!-- 以数组的形式将 data的样式放入 style中,不能有引号 -->
19             <h3 :style="[ styleObj1, styleObj2]">我是app1的h3</h3>
20         </div>
21     </body>
22 </html>
23 <script>
24     var vm = new Vue({
25         el:'#app',
26         data:{
27             styleObj:{ color:'red', 'font-weight':200 }
28         }
29     })
30     
31     var vm1 = new Vue({
32         el:'#app1',
33         data:{
34             styleObj1:{ color: 'red', 'font-weight':300},
35             styleObj2:{ 'font-style':'italic'}
36         }
37     })
38 </script>

  效果图

   

  

 

 class

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <title></title>
 6     </head>
 7     <script src="../js/vue.js"></script>
 8     <style>
 9         .red{
10             color: red;
11         }
12         
13         .thin{
14             font-weight: 200;
15         }
16         
17         .italic{
18             /* italivc 倾斜的 */
19             font-style: italic;
20         }
21         
22         .active{
23             /* 字间距(中文有效, word-spacing 只对英文有效) */
24             letter-spacing: 0.5em;
25         }
26     </style>
27     <body>
28         <div id="app">
29             <!-- <h1 class="red thin italic active">这是一个很大的H1</h1> -->
30             
31             
32             <!-- 第一种使用方式: 直接传递一个数组,注意   这里的class 需要使用 v-bind 做数据绑定 -->
33             <!-- <h1 :class="['thin', 'red', 'italic']">这是一个很大的H1</h1> -->
34                         
35             
36             <!-- 第二种使用方式: 使用三元表达式,flag如果为真是 red, 如果为假则无效果 -->
37             <!-- flag没有'',会去data里面找 -->
38             <h1 :class="['thin', 'active', flag?'red':'']">这是一个很大的H1</h1>
39             
40             
41             <!-- 第三种使用方式: 在数组中使用 对象来代替三元表达式, flag1为 true显示, flag1为 fasle 则不显示 -->
42             <h2 :class="['thin', 'active', {'red':flag1} ]">这是一个一般大的H1</h2>
43             
44             
45             <!-- 第四种使用方式: 在为 class 使用 v-bind 绑定 对象的时候,对象的属性是类名, true为显示 false为不显示,
46             由于 对象的属性可带引号,也可以    不带引号,所以 这里没有引号;  属性的值 是一个标识符 -->
47             <h3 :class="{ 'red': true, thin: true, italic: false, active: false }">这就是一个h3</h3>
48             
49             
50             <!-- 第五种使用方式: 与第四种相同, 只不过把class 中的类写在 data里 (在 data中{}里不能有引号) -->
51             <h4 :class="classObj">最后剩一个h4</h3>
52         </div>
53     </body>
54 </html>
55 <script>
56     var vm = new Vue({
57         el:'#app',
58         data:{
59             flag: true,
60             flag1: false,
61             classObj: { red: true, thin: true, italic: false, active: false }
62         },
63         methods:{
64             
65         }
66     })
67 </script>

  效果图

  

 2019-06-10  14:20:43

原文地址:https://www.cnblogs.com/wo1ow1ow1/p/10997445.html