vue-class和style样式绑定
前言
操作元素的 class 样式列表和 style 内联样式为数据绑定是前端开发中一个常见的需求,这些样式都属于元素的属性 attribute ,因此我们可以通过 v-bind 来动态绑定元素的样式属性。本文来总结一下这两个属性相关的知识点,便于日后的复习学习。
正文
1.class的动态绑定
(1)对象语法,即class动态绑定一个对象。
<style>
.red {
color: red;
}
.green {
color: green;
}
</style>
<div id="app">
<!-- 绑定html clas样式 -->
<div :class="{red:isRed,green:isGreen}">对象语法1</div>
<div :class="classObj1">对象语法2</div>
<div :class="classObj2">对象语法3</div>
</div>
<script>
new Vue({
el: "#app",
data() {
return {
isRed: true,
isGreen: false,
classObj1: {
red: true,
green: false,
},
}
},
computed: {
classObj2() {
return {
red: true,
green: false,
}
},
},
})
</script>
运行结果如下:
对于对象语法1:class 绑定一个字面量类型的对象值,其中 red 属性值为 true,green 属性值为 false ,最终结果为绑定了red类选择器的样式。
对于对象语法2和语法3:class 绑定一个对象的名,并非具体的对象的值,该键名对应了具体的对象value值,该对象的 red 属性为true,green属性为false,最终结果为绑定了red类型选择器的样式,语法2和语法3的区别在于对象的声明在计算属性还是data中。
(2)数组语法,即class动态绑定一个数组类型
<style>
.red {
color: red;
}
.green {
color: green;
}
</style>
<div id="app">
<!-- 绑定html clas样式 -->
<div :class="[classRed,classGreen]">数组语法1</div>
<div :class="[isRed?'red':'']">数组语法2</div>
<div :class="classArr">数组语法3</div>
<div :class="[{red:isRed},classGreen]">数组中对象混合用法</div>
</div>
<script>
new Vue({
el: "#app",
data() {
return {
isRed: true,
isGreen: false,
classRed: "red",
classGreen: "green",
classArr:["red","green"],
}
}
}) </script>
运行结果如下:
对于数组语法1:class绑定一个数组值,其中数组中的元素代表每一个类选择器的样式,最终绑定结果为red和green选择器的样式,当color样式重复,页面渲染后面的样式,颜色为绿色。
对于数组语法2:class绑定一个数组值,只有一个元素,第一个元素由条件表达式确定。样式渲染如上。
对于数组语法3:class绑定一个数组名,并非具体的数组值,该名对应了具体的数组 value 值。
对于数组语法4:class绑定一个数组,数组中第一个元素为一个对象,不难理解。
(3)代码中常用的样式绑定
<style>
.red {
color: red;
}
</style>
<div id="app">
<div :class="isRed?'red':''">代码中常用class绑定</div>
</div>
<script>
new Vue({
el: "#app",
data() {
return {
isRed: true,
}
}
})
</script>
运行结果如下:
2.style的动态绑定
<div id="app">
<!-- 绑定内联样式 -->
<div :style="{color:styleRed}">对象语法1</div>
<div :style="styleObj1">对象语法2</div>
<div :style="styleObj2">对象语法3</div>
<div :style="[styleObj1]">数组语法</div>
</div>
<script>
new Vue({
el: "#app",
data() {
return {
styleRed: "red",
styleObj1: {
color: "red"
}
}
},
computed: {
styleObj2() {
return {
color: "red"
}
}
},
})
</script>
运行结果如下:
style动态绑定样式,不需要再style标签中添加对应的类选择器,和原生js修改css样式十分接近。
写在最后
以上就是本文的全部内容,希望给读者带来些许的帮助和进步,方便的话点个关注,小白的成长踩坑之路会持续更新一些工作中常见的问题和技术点。
vue-class和style样式绑定的更多相关文章
- vue 自学笔记(4): 样式绑定与条件渲染
一:对象绑定 Vue 对于页面的样式加载也有独特的方式,按照 Vue 提供的方式,我们可以轻松的控制它们的呈现. 假使我们要实现点击 div 变色 Vue 提供的样式方案的本质是对元素节点进行属性的绑 ...
- vue 动态添加 <style> 样式 vue动态添加 绑定自定义字体样式
created(){ //动态添加自定义字体样式 let style = document.createElement('style'); style.type = "text/css&qu ...
- Vue.js 内联样式绑定style
html <div class="Menu" v-bind:style="{height:clientHeight}"> </div> ...
- vue基础篇---class样式绑定
因为class的绑定在实际的工作中会经常用到.所以特意记录一下,有好几种方法. 对象绑定方法,另外一个值来控制显示隐藏 <!DOCTYPE html> <html lang=&quo ...
- VUE中的style 样式处理的Scope (<style scope>)
在VUE组件中,为了让样式私有化,不对全局造成污染,可以在style标签上添加scoped属性以表示它的只属于当下的模块. 但是这样的话,就会导致无法修改其他第三方组件样式,或者是内嵌的样式,解决方案 ...
- Vue样式绑定、事件绑定
1.样式绑定 1.1class类标签绑定 <p :class="对象"> <p :class="数组"> <p :class=&q ...
- Vue基础语法(样式绑定,事件处理,表单,Vue组件)
样式绑定 事件处理 表单 Vue组件 样式绑定 <!DOCTYPE html> <html> <head> <meta charset="utf-8 ...
- Vue.js之Vue计算属性、侦听器、样式绑定
前言 上一篇介绍了Vue的基本概念,这一篇介绍一下Vue的基本使用. 一.搭建一个Vue程序 1.1 搭建Vue环境 搭建Vue的开发环境总共有三种方法: 引入CDN <script src=& ...
- 3-5 Vue中的样式绑定
Vue中的样式绑定: 本案例,简单设计一个<div>的点击绑定事件来改变div的样式效果 方法一:[class] ①(class和对象的绑定) //如上,运用class和一个对象的形式来解 ...
随机推荐
- Intouch/ifix语音报警系统制作(4-自动发送邮件提醒)
在近期项目完成后,有遇到情况:类似于语音报警后,中控室人员未及时报告给我们造成了事件的危害升级,以及造成很不好的影响.针对这个情况特此添加语音报警后,自动发送邮件提醒,完善现有的报警机制. 1.函数编 ...
- js问题记录
1.aixos请求响应302重定向时无法获取返回数据, 解决方法:在请求头中添加 headers: { 'X-Requested-With': 'XMLHttpRequest' },
- markdown文档编写基础
Markdown快速入门教程 ###########来源:https://zhuanlan.zhihu.com/p/84918488 ###########来源:https://github.com/ ...
- YOLO-V4 实现口罩识别(附加数据、数据批量处理程序)
一.YOLO-v4概念 如果想要了解和认识yolo-v4的基本概念,首先要提的就是它的基础版本yolo-v1,对于yolo来说,最经典的算是yolo-v3.如果想要了解它的由来和历史的话,可以自行搜索 ...
- 苹果手机点击输入框input 页面放大 超出屏幕问题
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale ...
- JUC学习笔记(一)
1.什么是 JUC 1.1.JUC简介 在 Java 中,线程部分是一个重点,本篇文章说的 JUC 也是关于线程的.JUC 就是 java.util .concurrent 工具包的简称.这是一个处理 ...
- selenium元素定位之 动态id, class元素定位
1.直接进入正题 如下图, 有些元素每次进入都会刷新, 造成元素无法重复定位 怎么办? "xpath部分属性值"定位方法可以帮到我们 1.包含属性定位 driver.find_el ...
- Tengine2.3+openssl1.1.1支持TLS1.3
安装包下载: openssl1.1.1 链接:https://pan.baidu.com/s/1-qCDhkLtlkT0fdwKdVuh2g 提取码:0ncc pcre3.2.1 链接:https:/ ...
- Linux 文件目录管理的指令
1.知识点:绝对路径:写法从/(根目录开始) /usr/share/doc 相对路径:不从/开始 如cd ../man 如果清楚文件夹内部情况,建议使用相对路径在文件夹之间跳转,而不用绝对路径,每次 ...
- Java Swing 盒布局管理器
Swing 盒布局管理器 因为项目的原因,重新看看swing的东西,在想要将两个横向的容器纵向表示的时候,发现用盒布局 话不多说,直接代码 package ui; import javax.swing ...