Vue.js中对css的操作(修改)具体方式详解
使用v-bindclass或者v-bind:style或者直接通过操作dom来对其样式进行更改;
1.v-bind:class || v-bind:style
其中v-bind是指令,: 后面的class 和style是参数,而class之后的指在vue的官方文档里被称为'指令预期值'(这个不必深究,反正个人觉得初学知道他叫啥名有啥用就好了)同v-bind的大多数指令(部分特殊指令如V-for除外)一样,除了可以绑定字符串类型的变量外,还支持一个单一的js表达式,也就是说v-bindclass的'指令预期值'除了字符串以外还可以是对象或者数组(‘v-bind'中的v-bind可省略)。
1.1:对象语法
通过对象来绑定v-bind:class=“{'css类名':控制是否显示(true or false)}”
<template> <div> <div class='mycolor' :class="{'colordisplay':display}"><span>1.1我的对象更改&&绑定test</span></div> </div> </template> <script> export default { name: 'mytest', data() { return { display: true } }, mounted() {}, puted: {}, methods:{} } </script> <style> .colordisplay { display: inline; background: red; border: 1px solid blue } </style>
如果display为true,那么此时该部分的class就是 class="mycolor colordisplay",
通过设置display的值就可以控制colordisplay的显示
如果要设置绑定多个class的话就和正常的对象键值对一样中间用逗号隔开就可以了v-bind:class="{'colordisplay':display,'ispay':pay}"
1.2:内联样式
v-bind:style='mycolor'
template
<div :style='mypagestyle'><span>1.2我的样式内联更改&&绑定test</span></div>
data
mypagestyle:{color: 'yellow',background:"blue"},
1.3:数组语法
也可以通过数组来绑定v-bind:style='[mycolor1,mycolor2]'
<div :style="[myarr,myarrtest]"><span>1.3我的数组更改&&绑定test</span></div>
然后设置返回的数据为
myarr:{color: 'white'}, myarrtest:{background:'#000',display:'inline'},
2.计算属性
也可以通过计算属性计算(适用于较为复杂判断)样式
<div class='puted' :class='puretu'>2.计算属性判断</div>
将计算属性的返回值作为类名,通过判断serd和slid的值来控制样式的显示与否
data() { return {serd:true,slid:true} }, puted: { puretu: function() { return {puretu: this.serd && this.slid} } }
设置样式
.puretu{color:white;background: red}
3.操作节点
由于vue本身是虚拟dom如果通过document来进行节点样式更改的时候有可能会出现'style' is not definde的错误,
这个问题的解决方式就必须得对vue 的理解要求更高一层了,它可以通过在vue本身的周期mounted函数里用ref和$refs 来获取样式,来完成对其样式的更改示例如下
<template> <div> <div style=“color: green;” ref="abc"><span>我的test</span></div> </div> </template> <script> export default { name: 'mytest', data() { return {} }, mounted() {console.log(this.$refs.abc.style.cssText)} } <script> <style> </style>
说明
1.ref被用来给元素(子组件)注册引用信息;
2.vm.$refs 一个对象,持有已注册过 ref 的所有子组件(或HTML元素);
使用在 HTML元素 中,添加ref属性,然后在JS中通过vm.$refs.属性来获取
上述会将style的内容全部输出(color: green;)
这样的话对其进行更改就可以对相应的属性直接更改(this.$refs.abc.style.color=red
)
<template> <div> <div :class='{mycss}'><span>我的单个class属性的test</span></div> <div class='mycolor' :class="{'colordisplay':display}"><span>1.1我的对象更改&&绑定test</span></div> <div :style='mypagestyle'><span>1.3我的样式内联更改&&绑定test</span></div> <div :style="[myarr,myarrtest]"><span>1.3我的数组更改&&绑定test</span></div> <div class='puted' :class='puretu'>2.计算属性判断</div> <div style="color: green;" ref="abc"><span>3.我的dom更改test</span></div> </div> </template> <script> export default { name: 'mytest', data() { return { serd:true, slid:true, mycss: { color: '' }, mypagestyle:{ color: 'yellow', background:"blue" }, myarr:{ color: 'white' }, myarrtest:{ background:'#000', display:'inline' }, display: true } }, mounted() { console.log(this.$refs.abc.style.cssText) this.$refs.abc.style.color = 'red' //修改属性 this.$refs.abc.style.background = 'black' //新增属性 this.$refs.abc.style.display = 'inline' console.log(111) console.log(this.$refs.abc.style.display) }, puted: { puretu: function() { return { puretu: this.serd && this.slid } } }, methods:{ } } </script> <style> .mycss { color: blue } .colordisplay { display: inline; background: red; border: 1px solid blue } .mycolor { color: orange } .puted { border: 1px solid yellow } .puretu{ color:white; background: red; } </style>
这种方式对于初入门的朋友来讲可能会有点理解不透,所以我更建议大家使用前几种方式
以上所述是长沙网络推广给大家介绍的Vue.js中对css的操作(修改)具体方式详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,长沙网络推广会及时回复大家的。在此也非常感谢大家对狼蚁SEO网站的支持!
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程