[log] vue动态的修改样式

本文介绍如何在前端开发中实现背景图片、图片、div边框及class的动态切换,包括使用Vue.js的数据绑定和事件处理来改变元素样式的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

切换背景图片

<div class="carlist" :style=imgurl></div>
imgurl:{  backgroundImage: "url(" + require("../../assets/nouse.png") + ")",},

切换图片

 <img :src=img1 />

img1:require("../../assets/smartimg/right1.png"),

动态给div加边框

场景:点击地址时加上边框,并设置为当前要使用的地址


            <div class="c1" v-for="i in addresslist" 
            :id=i.AddrSeq @click="checkAddress(i.AddrSeq)">
            </div>


  // 选择地址
            checkAddress(id) {
                if (this.lastel != null) {
                    this.lastel.style.boxShadow = null
                }
                var el = document.getElementById(id)
                this.lastel = el;
                el.style.boxShadow = ' 0 2px 12px 0 #409EFF'
                this.currentAddress = id;
            },

切换class

  <div   class="footerstyle" :class="{'test2':isChoose}" >

 </div>

<style lang="scss" scoped>
    .footerstyle {
        position: absolute;
        bottom: 0px;
        width: 100%;
        height: 5%;
        background-color: #FFFFFF;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .test2 {
        background-color: #ff363d;
    }
</style>

data() {
      return {      
      	isChoose:false,
	};
}
 methods: {
  	changeSubmit() {
        this.isChoose = true
    },
### 自定义 Vue3 中 Tabs 组件的样式 为了实现自定义样式的 Tabs 组件,在 Vue3 的项目中可以通过多种方式来调整 Tab 和其内容区域的外观。一种常见的方式是通过 CSS 类名绑定以及 scoped 样式表来进行定制。 #### 使用 Scoped 样式和类名绑定 在模板部分,可以为 `Tabs` 及其子项设置特定的类名以便于应用样式: ```html <template> <div class="custom-tabs"> <Tabs :tabs="tabsList" @change="tabChange"></Tabs> </div> </template> <script setup lang="ts"> import { ref } from "vue"; import Tabs from "@/components/Tabs/index.vue"; interface IInfo { id: number; name: string; } const tabsList = ref<Array<IInfo>>([ { id: 1, name: "标签1" }, { id: 2, name: "标签2" }, { id: 3, name: "标签3" } ]); const tabChange = (info: IInfo) => { console.log(info); }; </script> <style scoped> .custom-tabs .tab-item { background-color: #f8f9fa; color: #0d6efd; } .custom-tabs .active-tab { font-weight: bold; border-bottom: 2px solid #0d6efd; } /* 更多样式可以根据需要添加 */ </style> ``` 上述代码展示了如何给每个 Tab 添加背景颜色、文字颜色,并且当某个 Tab 被激活时改变字体粗细并加上底部边框[^2]。 #### 动态绑定 Class 名字 对于更复杂的场景,比如基于某些条件动态更改样式,则可以在 JavaScript/TS 中计算这些类的名字并通过 `v-bind:class` 来传递给 HTML 元素: ```html <div v-for="(item, index) in tabsList" :key="item.id" :class="[isActive(index) ? 'active-tab' : '', 'tab-item']" @click="selectTab(index)"> {{ item.name }} </div> ``` 这里假设有一个方法 `isActive()` 判断当前索引是否对应选中的 Tab 并返回布尔值;而点击事件会触发 `selectTab()` 函数更新状态[^4]。 #### 定义全局或局部样式文件 如果希望整个应用程序都遵循相同的风格指南,也可以创建单独的 SCSS/SASS 文件导入到项目的入口处或是组件内部作为局部样式引入。这种方式有助于保持一致性的同时也便于维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值