Vue样式绑定

1. 绑定 HTML class
①通过class名称的bool值判断样式是否被启用

<template><!--通过样式名称是否显示控制样式--><div :class="{ haveBorder: p.isBorder, 'haveBackground-color': p.isBackgroundcolor }">此处是样式展示区域</div><br /><button @click="addBorder">增加边框</button><br /><button @click="addBackgroundcolor">增加背景颜色</button>
</template>
<script setup>
//从vue中获取ref方法
import { reactive } from "vue";name: "App";
//利用v-bind的bool值控制class调用的样式名称是否显示
let p = reactive({isBorder: false,isBackgroundcolor: false,
});
function addBorder() {p.isBorder = true;
}
function addBackgroundcolor() {p.isBackgroundcolor = true;
}
</script><style scoped>
.haveBorder {border: 1px solid #000000;
}
.haveBackground-color {background-color: aqua;
}
</style>

在这里插入图片描述
②样式名称在对象中,html中调用定义的对象

<template><!--通过样式名称是否显示控制样式--><div :class="classObject ">此处是样式展示区域</div><br /><button @click="addBorder">增加边框</button>
</template>
<script setup>
//从vue中获取ref方法
import { reactive } from "vue";name: "App";
//利用bool值控制class调用的样式名称是否显示(样式设置成对象)
let classObject  = reactive({haveBorder: false,
});
function addBorder() {classObject.haveBorder = true;
}
</script><style scoped>
.haveBorder {border: 1px solid #000000;
}
</style>

在这里插入图片描述
③通过数组绑定

<template><!--通过样式名称是否显示控制样式--><div :class="[arrayBorder,arrayBackgroundColor]">此处是样式展示区域</div>
</template>
<script setup>
//从vue中获取ref方法
import { ref } from "vue";name: "App";
//利用数组绑定样式
let arrayBorder=ref('haveBorder')
let arrayBackgroundColor=ref('haveBackground-color')
</script><style scoped>
.haveBorder {border: 1px solid #000000;
}
.haveBackground-color {background-color: aqua;
}
</style>

在这里插入图片描述
④在组件上使用
父组件

<template><!--通过样式名称是否显示控制样式--><classtest :class="[arrayBorder, arrayBackgroundColor]" />
</template>
<script >
//从vue中获取ref方法
import { ref } from "vue";
import classtest from "./components/classtest.vue";export default {name: "App",components:{classtest},//利用数组绑定样式setup() {let arrayBorder = ref("haveBorder");let arrayBackgroundColor = ref("haveBackground-color");return{arrayBorder,arrayBackgroundColor}},
};
</script><style scoped></style>

子组件

<template><!--因为有多个根元素所以使用$attrs属性实现指定接受父组件样式--><!--多个根元素情况使用父组件传入的样式名称,需在子组件定义样式--><div :class="$attrs.class">此处是样式展示区域</div><div>此处不接受父组件传过来的class</div>
</template><script>
export default {name:'classtest'
}
</script><style>
.haveBorder {border: 1px solid #000000;
}
.haveBackground-color {background-color: aqua;
}
</style>

在这里插入图片描述

2. 绑定内联样式

<template><div :style="{ border: borderStyle, 'background-color': backgroundcolorStyle }">此处是样式展示区域</div><br><div :style="{styleObject , 'font-size':fontSize + 'px'}">此处是样式展示区域</div><br><!--你可以对一个样式属性提供多个 (不同前缀的) 值--><div :style="{ display: ['-webkit-box', '-ms-flexbox', 'flex'] }"></div>
</template>
<script setup>
//从vue中获取ref方法
import { ref,reactive } from "vue";name: "App";
//利用数组绑定样式
let borderStyle=ref('1px solid #000000')
let backgroundcolorStyle=ref('aqua')//定义对象形式style
let styleObject =reactive({border:'1px solid #000000'
})//定义字体大小
let fontSize=ref(30)
</script><style scoped></style>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/484454.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于springboot+vue的中小企业设备管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

mac真的安装不了vmware吗 mac如何安装crossover crossover序列号从哪里买 购买正版渠道

有些用户可能想在mac上运行一些只能在windows上运行的软件&#xff0c;比如游戏、专业软件等。这时候&#xff0c;就需要用到虚拟机技术&#xff0c;也就是在mac上安装一个可以模拟其他操作系统的软件&#xff0c;比如vmware或者crossover。那么&#xff0c;mac真的安装不了vmw…

众安保险基于Apache SeaTunnel的生产应用实践

*> 文&#xff5c;曾力 众安保险大数据开发高级专家 编辑整理&#xff5c; 曾辉* 前言 众安保险从2023年4月就开始了数据集成服务的预研工作&#xff0c;意在通过该服务解决当前数据同步场景下的两大痛点&#xff0c;服务化能力薄弱和无分布式同步能力。我们对多种开源数据…

独家深度 | 一文看懂 ClickHouse vs Elasticsearch:谁更胜一筹?

简介&#xff1a; 本文的主旨在于通过彻底剖析ClickHouse和Elasticsearch的内核架构&#xff0c;从原理上讲明白两者的优劣之处&#xff0c;同时会附上一份覆盖多场景的测试报告给读者作为参考。 作者&#xff1a;阿里云数据库OLAP产品部 仁劼 原文地址:https://developer.ali…

ubuntu20.04安装实时内核补丁PREEMPT_RT

参考&#xff1a; Ubuntu 18.04安装 RT-PREEMPT 实时内核及补丁【过程记录】_ubuntu18.04 preempt rt linux 5.6.19-CSDN博客 https://github.com/UniversalRobots/Universal_Robots_ROS_Driver/blob/master/ur_robot_driver/doc/real_time.md当前内核&#xff1a;5.15.0-94-ge…

备战蓝桥杯---动态规划(应用2(一些十分巧妙的优化dp的手段))

好久不见&#xff0c;甚是想念&#xff0c;最近一直在看过河这道题&#xff08;感觉最近脑子有点宕机QAQ&#xff09;&#xff0c;现在算是有点懂了&#xff0c;打算记录下这道又爱又恨的题。&#xff08;如有错误欢迎大佬帮忙指出&#xff09; 话不多说&#xff0c;直接看题&…

免费搭建个人网盘

免费搭建一个属于个人的网盘。 服务端 详情请参考原网站的服务端下载和安装虚拟磁盘Fuse4Ui可以支持把网盘内容挂载成系统的分区&#xff1b; 挂载工具效果图&#xff1a;应用端应用端的下载 效果图

适配器模式:转换接口,无缝对接不同系统

文章目录 **一、技术背景与应用场景****为什么使用适配器模式&#xff1f;****典型应用场景包括但不限于&#xff1a;** **二、适配器模式定义与结构****三、使用步骤举例****四、优缺点分析****总结** 一、技术背景与应用场景 适配器模式在软件设计中扮演着桥梁角色&#xff…

猫头虎分享已解决Bug || TypeError: ‘NoneType‘ object is not callable

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

jvm垃圾收集器-三色标记算法

1.对象已死吗? 在堆里面存放着Java世界中几乎所有的对象实例&#xff0c;垃圾收集器在对堆进行回收前&#xff0c;第一件事情就是要确定这些对象之中哪些还“存活”着&#xff0c;哪些已经“死去”&#xff08;即不可能再被任何途径使用的对象). 引计数法 引用计数算法是一…

挑战30天学完Python:Day16 日期时间

&#x1f4d8; Day 16 &#x1f389; 本系列为Python基础学习&#xff0c;原稿来源于 30-Days-Of-Python 英文项目&#xff0c;大奇主要是对其本地化翻译、逐条验证和补充&#xff0c;想通过30天完成正儿八经的系统化实践。此系列适合零基础同学&#xff0c;或仅了解Python一点…

【SQL注入】靶场SQLI DUMB SERIES-24通过二次注入重置用户密码

先使用已知信息admin/admin登录进去查下题&#xff0c;发现可以修改密码 猜测可能存在的SQL语句&#xff1a;UPDATE user SET password新密码 WHERE user用户名 and password旧密码 假设我们知道有个admin用户&#xff0c;但是不知道其密码&#xff0c;如何可以将其密码重置&…