欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Vue的样式绑定-class和style

程序员文章站 2022-05-15 22:39:14
...

Vue直接操作数据,当数据改变Vue底层自动渲染dom。当有需要改变dom区域样式的时候 借助于:class和:style以及事件可以实现

class

    一.class的对象绑定 

        :class="{actived: isActived}"   预定义样式 actived 根据事件判断isActived   当isActived为true的时候 使用样式

<!DOCTYPE html>
<html>
	<head>
		<title>样式绑定</title>
		<meta charset="UTF-8" />

		<script src="./vue.js"></script>	
		<style>
			.actived{
				color:red;
				font-size: 20px ;
			}
		</style>
	</head>

	<body>
		<div id="app" @click="handleDivClick"
						:class="{actived: isActived}">
			{{content}}
		</div>

		<script>
			var vm = new Vue({
				el:"#app" ,
				data:{
					content:"Hello Vue" ,
					isActived:false
				},
				methods:{
					handleDivClick:function() {
						this.isActived = !this.isActived  ;
					}
				}
			})
		</script>	
	</body>
</html>

   二.class的数组绑定

        :class="[actived]"  此处接收一个数组,里面可以有多个对象 通过事件 actived 与哪个样式匹配就应用哪个样式 实现多套样式间的切换

<!DOCTYPE html>
<html>
	<head>
		<title>样式绑定</title>
		<meta charset="UTF-8" />

		<script src="./vue.js"></script>	
		<style>
			.actived-one{
				color:red;
				font-size: 20px ;
			}
		</style>
	</head>

	<body>
		<div id="app" @click="handleDivClick"
						:class="[actived]">
			{{content}}
		</div>

		<script>
			var vm = new Vue({
				el:"#app" ,
				data:{
					content:"Hello Vue" ,
					actived:""
				},
				methods:{
					handleDivClick:function() {
						this.actived = this.actived === 'actived-one' ? '' : 'actived-one' ;
					}
				}
			})
		</script>	
	</body>
</html>

 

style(内联样式)

      一.style的对象绑定 

      :style="s_one" 在目标dom标签上 

     data:{                        //在实例的 data预定义样式
                    s_one:{
                        color:'black' ,
                        fontSize:'20px'
                    }
                },

<!DOCTYPE html>
<html>
	<head>
		<title>样式绑定</title>
		<meta charset="UTF-8" />

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

	<body>
		<div id="app">
			<div :style="s_one" @click="handleDivClick">
				{{content}}
			</div>
			
		</div>

		<script>
			var vm = new Vue({
				el:"#app" ,
				data:{
					content:"Hello Vue" ,
					s_one:{
						color:'black' ,
						fontSize:'20px' 
					}
				},
				methods:{
					handleDivClick:function() {
						this.s_one.color = this.s_one.color === 'black' ? 'red' : 'black' ;
					}
				}
			})
		</script>	
	</body>
</html>

二.style的 数组绑定

:style="[s_one,{fontSize:'20px' }]"  数组中多个对象  多套样式

data:{
                    content:"Hello Vue" ,
                    s_one:{
                        color:'black' ,    
                    }
                },

<!DOCTYPE html>
<html>
	<head>
		<title>样式绑定</title>
		<meta charset="UTF-8" />

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

	<body>
		<div id="app">
			<div :style="[s_one,{fontSize:'20px' }]" @click="handleDivClick">
				{{content}}
			</div>
			
		</div>

		<script>
			var vm = new Vue({
				el:"#app" ,
				data:{
					content:"Hello Vue" ,
					s_one:{
						color:'black' ,	
					}
				},
				methods:{
					handleDivClick:function() {
						this.s_one.color = this.s_one.color === 'black' ? 'red' : 'black' ;
					}
				}
			})
		</script>	
	</body>
</html>