Vue基础-04-class和style绑定
vue开发过程中,肯定会涉及到对元素的样式操作。
vue提供了两种方式操作样式,动态操作class属性。直接标签上面写style属性,值是动态变化
<div style="color:red">
scope属性
在vue组件中要设计样式,所有的样式代码都要放在style标签中。
<style scoped>
可以指定当前style的样式只能在这个组件中使用,不能穿透到子组件
如果你需要指定某个css样式穿透,我们可以在指定css选择器前面添加如下代码
/deep/.op{
color:blue
}
外部样式
你们的每一个组件都可能会用到某些外部公共样式,你可以在组件指定引入css文件
<style scoped>
@import "../../assets/css/common.css";
@import语句结尾了需要加上一个分号
引入的外部样式是否能够穿透
外部引入的样式,默认是可以穿透到子元素,如果你想要实现外部样式只作用当前组件
<style scoped src="../../assets/css/common.css"></style>
<style scoped>
/* @import "../../assets/css/common.css"; */
.as{
width: 100px;
height: 100px;
background: tomato;
}
h1{
color: red;
}
/* /deep/.op{
color:blue
} */
</style>
动态绑定class
class属性可以实现动态值变化,借助于v-bind这个指令可以实现
<div v-bind:class="{box:true}"></div>
<div v-bind:class="{box:false}"></div>
<div v-bind:class="{box:active}"></div>
<button @click="active=!active">点击控制</button>
active这个变量需要在data中定义出来
data(){
return{
active:false
}
},
给一个class绑定多个值
<span :class="{ospan:true,kill:true}">301</span>
<span :class="[ospanvar,killvar]">401</span>
data(){
return{
active:false,
ospanvar:"ospan", //ospan 选择器名字
killvar:"kill"
}
},
动态绑定style
Vue也可以动态绑定一个style属性,在html标准中每个标签默认可以支持一个style属性
<div style="color:red"></div>
语法:
<p style="color:pink">王一博</p>
<p :style="{color:nameColor}">张应明</p>
<p :style="[fontStyle,boxStyle]">杨唐</p>
如果是一个数组,我们需要提供数组中每个变量
data(){
return{
nameColor:"green",
fontStyle:{
'color':"red",
'font-size':"20px"
},
boxStyle:{
"border":"1px solid red"
}
}
}
一般在开发过程中,class动态绑定用的比较多,style动态绑定作为扩展