Vue Style绑定
对象语法
v-bind:style
的对象语法十分直观——看着非常像 CSS,但其实是一个 JavaScript 对象。CSS 属性名可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case,记得用引号括起来) 来命名:
<div v-bind:style="{color:fontColor,fontSize:fontSize+'px'}">{{msg}}</div>
data:{
msg:"hello liqinggang",
fontColor:'red',
fontSize:30
}
直接绑定到一个样式对象通常更好,这会让模板更清晰:
<!--直接用对象不需要大括号-->
<div v-bind:style="styleObj">{{msg}}</div>
data:{
styleObj:{
color:'red',
fontSize:"30px",
}
}
同样的,对象语法常常结合返回对象的计算属性使用。
数组语法
v-bind:style
的数组语法可以将多个样式对象应用到同一个元素上:
<div v-bind:style="[styleObj,styleObj2]">{{msg}}</div>
data:{
// 也可以把属性定义成对象
styleObj:{
color:'red',
fontSize:"30px",
},
styleObj2:{
border:'1px solid #dedede'
}
}
详细代码如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vue的style绑定</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<div v-bind:style="{color:fontColor,fontSize:fontSize+'px'}">{{msg}}</div>
<!--直接用对象不需要大括号-->
<div v-bind:style="styleObj">{{msg}}</div>
<div v-bind:style="[styleObj,styleObj2]">{{msg}}</div>
</div>
<script>
var app = new Vue({
el:"#app",
data:{
msg:"hello liqinggang",
fontColor:'red',
fontSize:30,
// 也可以把属性定义成对象
styleObj:{
color:'red',
fontSize:"30px",
},
styleObj2:{
border:'1px solid #dedede'
}
}
});
</script>
<style>
/* .mydiv2{
border: 1px solid #dedede;
}
.mydiv1{
font-size: 30px;
}
.mydiv{
font-weight: bold;
color: #ff0000;
}*/
</style>
</body>
</html>