在开发前端页面的时候, 如何动态的切换元素的css?主要有一下几种方式:
1.style内联单个或者少量属性动态切换
:style=" markRed==true?'background-color:#F00;':'background-color: #00ff40;' "
Test.vue
<template>
<div class="home">
<div :style="markRed==true?'background-color:#F00;':'background-color: #00ff40;'"> </div>
<button @click="markDivRed">变为红色</button>
</div>
</template>
<style src="./Test.css"></style>
<script src="./Test.js"></script>
Test.js.
export default {
data() {
return {
markRed:false
}
},
methods: {
markDivRed(){
this.markRed = true;
}
}
}
2.css类名动态切换(适用于多种属性同时切换的情景,因为css中可以添加多种属性,而vue中代码简洁)
:class=" markRed==true?'red':'green' "
Test.vue
<template>
<div class="home">
<div :class="markRed==true?'red':'green'"></div>
<button @click="markDivRed">变为红色</button>
</div>
</template>
<style src="./Test.css"></style>
<script src="./Test.js"></script>
Test.css
.red{
background-color:#F00;
}
.green{
background-color: #00ff40;
}
js文件同上
效果如下:
点击前:
点击后: