![Vue.js企业开发实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/909/44509909/b_44509909.jpg)
上QQ阅读APP看书,第一时间看更新
2.6 class与style样式绑定
在Vue中,经常需要动态地设置元素的CSS样式,我们可以通过v-bind属性绑定,为标签的class属性和style属性动态赋值。
2.6.1 HTML样式绑定
1.数组语法
在Vue中,动态的样式类在v-bind:class中定义,静态的类名写在class样式中。
index.html文件代码如下:
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P66_26611.jpg?sign=1739911254-V0W4XZG8pTZJfFcEjB84lKu7lkif2XI9-0-6680a12300b4613797e00c89c4980136)
在浏览器中运行的效果如图2.51所示。
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P66_7556.jpg?sign=1739911254-IRqsGLwKlUC6zEQgEQfzpS869dCWPkXL-0-f8525d60db37cfed974ab1f14f29df54)
图2.51 数组语法渲染
在上面的示例代码中,数组中样式的类名要使用单引号包裹,不然会出错。但是在某些应用场景下,需要使用变量表示类名,在数组中也可以使用这种方式绑定样式。
index.html文件代码如下:
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P66_26612.jpg?sign=1739911254-7aGlQXU6WM9NqRQrKDjFKFXEzi57VtSL-0-afef2e6b7a4042e8717e1b4edba7428a)
在数组中也可以直接使用对象语法,示例代码如下:
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P67_26614.jpg?sign=1739911254-731R8Ms88B2qqKlPDTObLKVXH8XgzQ8p-0-af136aaae8ca4f69839f0e4e72d3b12b)
上面代码运行的效果和图2.51所示的效果是相同的。
2.对象语法
在Vue中可以直接使用对象设置样式,对象的属性为样式的类名,其值为Boolean类型,当值为true时显示样式。对象的属性可以带引号,也可以不带引号。
index.html文件代码如下:
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P67_26615.jpg?sign=1739911254-3idy3v7Duqlg3zzWPcklqi0VCg3nwLlf-0-f1f9e05d9f648b6f090797f04de63dd4)
上面代码运行的效果和图2.51所示的效果相同。当对象中的属性过多时,如果将所有属性都写在元素上,则标签会显得代码冗余,此时我们可以使用计算属性来解决这个问题。
index.html文件代码如下:
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P68_26617.jpg?sign=1739911254-Ja3jRdTexsJRYB1ojoHX6YiwKSkM1oAY-0-b0bcb1df9e64951be212247a2dfe06e4)
上面代码运行的效果和图2.51所示的效果是相同的。
2.6.2 内联样式绑定
内联样式是将CSS样式编写到元素的style属性中,这种操作方法与设置class样式相同,也可以使用对象为元素进行设置。
index.html文件代码如下:
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P68_26618.jpg?sign=1739911254-DxT4KarMcIcUW0Q0lLaRsXgY6ibOy49C-0-dc35b30ba28c4f36ea4e8a542603a83c)
在浏览器中运行的效果如图2.52所示。
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P69_7896.jpg?sign=1739911254-Ax357l4rlPC1U6HexxOyIyqPJVh9wpFo-0-04cdee864bd9b90f53807cb415547f7f)
图2.52 style对象语法效果
同样,可以直接绑定一个样式对象属性,这样的代码看起来会更加简洁美观。
index.html文件代码如下:
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P69_26620.jpg?sign=1739911254-WQJcOwnal9cjMdNEP9TXy7ZoXQvtKDCy-0-dbabe990e32a705e41950a5a7cdf8942)
还可以使用计算属性,返回样式对象,代码如下:
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P69_26621.jpg?sign=1739911254-m6ZYz1SNl3GntovB3Mej3cWynriqITWP-0-cdee51c9b1cde0cad5924548170aac4f)
上面示例代码运行的效果和图2.52所示的效果相同。