vue 动态样式
阅读数:125 评论数:0
跳转到新版页面分类
html/css/js
正文
一、:style
动态设置style行内样式,优先级最高。
// 1、三元表达式 对象形式
<div class="name" :style="{color:state == true ? 'red' : 'black'}">麻辣香锅</div>
<div class="name" :style="state == true ? 'color:red' : 'color:black'">麻辣牛锅</div>
// 2、直接对象形式
<div class="name" :style="{fontSize:`${size}px`}">麻辣火锅</div>
// 3、数组形式
<div class="name" :style="[styleObj1,styleObj2]">麻辣香锅</div>
// 4、复合型
<div class="name" :style="[{color:state ? 'red' : 'black'},styleObj2]">麻辣香锅</div>
// 4、调用方法形式
<div class="name" :style="setStyle()">麻辣鸡煲</div>
export default {
data(){
return{
state:1,
size:14,
Obj1:{
color:red
},
Obj2:{
fontSize:12px
}
}
},
method:{
setStyle(){
let obj = {
color:'red',
fontSize:'14px'
}
return obj
}
}
}
<style>
.name{
color:yellow;
font-size:12px;
}
</style>
<template>
<div :style="{ '--icon-color': color }">...</div>
</template>
<script>
export default {
data() {
return {
color: '#ff0000'
};
}
};
</script>
CSS 变量(Custom Properties)是现代 CSS 中的一种功能,允许你定义可以在整个文档中重复使用的变量。CSS 变量的定义和使用如下:
- 定义变量:
--variable-name: value;
- 使用变量:
var(--variable-name)
这意味着 --icon-color
的值将根据 color
的值动态变化。
二、:class
动态设置 class类名
// 1、三元表达式,对象/数组形式,单个条件
<div class="name" :class="{'success-text':state == true}">广式煲仔饭</div>
<div :class="['name', state == true ? 'success' : '']">广式煲仔饭</div>
// 相当于
<div class="name" :class="state == true ? 'success-text : ''">广式煲仔饭</div>
// 2、对象形式,多个条件
<div class="name" :class="{'success-text':state == true,'success-text2':state2 == true}">广式煲仔饭</div>
// 3、data形式或者computed形式 (缺点就是类名一定只能是一个单词)
<div class="name" :class="classObject">广式煲仔饭</div>
<div class="name" :class="classObject_cp">广式煲仔饭</div>
// 4、mothod方法
<div class="name" :class="setClass()">广式煲仔饭</div>
<button @click="state = state ? false : true">改变state状态</button>
export default {
data () {
return {
state:true,
state2:true,
styleObj1:{
color:'red'
},
styleObj2:{
fontSize:'14px'
},
classObject:{
success_text:true, // 因为变量名不能用-来隔开,所以只能匹配到_或只有一个单词的类名
success_text2:true
}
}
},
computed:{
classObject_cp:function(){
return{
success:this.state,
success2:this.state2
}
}
},
methods: {
setClass(){
return {
success_text:this.state,
success_text2:this.state2
}
},
changeState(){
this.state = this.state ? false : true
}
}
}
<style>
.name{
color:yellow;
font-size:12px;
}
.error-text{
color:red;
}
.success-text{
color:greenyellow;
}
.success-text2{
font-size:16px;
font-weight: 600;
}
.success{
color:greenyellow;
}
.success2{
font-size:16px;
font-weight: 600;
}
</style>
相关推荐
1、安装依赖
npm install svg-sprite-loader --save-dev
2、配置build文件夹中的webpack.base.conf.js
3、在src/component
在列表渲染时使用key属性
当Vue.js用v-for正在更新已渲染过的元素列表时,它默认用“就地复用”策略,如果数据项的顺序被改变,Vue将不会移动D
一、vue.js devtools开发工具的使用
1、安装
在chrome或firefox浏览器的扩展插件仓库里搜索vue devtool。
2、debugger的使用
假设我们想调试App.vue这
ref被用来给元素或子组件注册引用信息,引用信息将会注册在父组件的$refs对象上。如果在普通的DOM元素上使用,引用指向的就是DOM元素,如果用在子组件上,引用就指向组件实例。
<!-- `vm.$
在使用Vue中经常看到HTML中有标签属性前面添加了“:”,有些没有。
其实是v-bind的缩写。
v-bind
缩写: ‘:’
用法:动态绑定一个或多个特性,或一个组件prop到表达式。在绑定cl
一、概述
Vuex是一个专门为Vue.js应用程序开发的全局状态管理功能。它采用集中式存储管理应用的所有组件的状态, 并以相应的规则保证状态以一种可预测的方式发生变化。
每一个Vuex应用的核心就是s