当前位置: 首页 > article >正文

vue的class绑定,后边的类会覆盖前边类样式吗

在 Vue 中,使用 :class 动态绑定多个类时,后面的类不会直接覆盖前面的类,而是根据 CSS 的 层叠优先级样式权重 决定哪个样式生效。


判断覆盖的规则

  1. 按 CSS 的样式规则:

    • 如果多个类设置了相同的属性,CSS 的优先级规则(具体权重、声明次序等)将决定最终生效的样式。
    • 后声明的样式规则优先,例如:
      .class1 {
        color: red;
      }
      .class2 {
        color: blue;
      }
      
      如果一个元素同时有 class1class2class2color: blue 将生效。
  2. Vue 中绑定多个类:
    Vue 会将所有绑定的类动态合并,并根据 CSS 规则解释生效的样式。例如:

    <template>
      <div :class="['class1', 'class2']">Hello</div>
    </template>
    

    对应的样式:

    .class1 {
      color: red;
    }
    .class2 {
      color: blue;
    }
    

    结果: 元素的文本颜色会是蓝色,因为 .class2 的规则覆盖了 .class1

  3. 内联样式或 !important 优先:

    • 如果某个类样式中使用了 !important,它的属性优先级最高。
    • 内联样式的优先级高于类样式。

示例代码

Vue 绑定示例
<template>
  <div :class="['class1', dynamicClass]">Hello World</div>
</template>

<script>
export default {
  data() {
    return {
      dynamicClass: 'class2'
    };
  }
};
</script>

<style>
.class1 {
  color: red;
  font-size: 20px;
}

.class2 {
  color: blue; /* 覆盖 class1 的 color */
  font-weight: bold;
}
</style>
最终效果
  • 文本颜色为蓝色(因为 .class2 覆盖了 .class1color 属性)。
  • 字体大小为 20px(因为 .class2 没有定义 font-size,保留了 .class1 的设置)。
  • 字体加粗(因为 .class2 定义了 font-weight: bold)。

总结

在 Vue 中,多个绑定的类之间是否会“覆盖”,完全取决于 CSS 样式规则的优先级,而不是绑定的顺序。


http://www.kler.cn/a/406380.html

相关文章:

  • 【Unity服务】如何集成Unity广告(Legacy)
  • java学习-集合
  • Day 18
  • IDEA2023 SpringBoot整合MyBatis(三)
  • 文件管理 II(文件的物理结构、存储空间管理)
  • Kubernetes的pod控制器
  • 3-22 ElementPlus:表单
  • vue3 在哪些方便做了性能提升?
  • 【不墨迹系列】快速入门 XML 语言
  • SpringCloud OpenFeign用户转发在请求头中添加用户信息 微服务内部调用
  • STL-stack栈:P1981 [NOIP2013 普及组] 表达式求值
  • Cannal实现MySQL主从同步环境搭建
  • 量子神经网络
  • Java 创建不可变集合
  • 浅谈丨功能安全测试,汽车的守护者
  • 40分钟学 Go 语言高并发:sync包详解(下)
  • 如何用通义灵码助力项目开发 | OceanBase obdiag 项目共建实践
  • 【大数据学习 | Spark-Core】Spark的分区器(HashPartitioner和RangePartitioner)
  • 大数据新视界 -- 大数据大厂之 Hive 数据导入:多源数据集成的策略与实战(上)(3/ 30)
  • xiaolin coding 图解网络笔记——HTTP篇
  • Antd中的布局组件
  • RecyclerView详解——(四)缓存复用机制
  • 论文阅读——Intrusion detection systems using longshort‑term memory (LSTM)
  • 儿童玩具安全检测GB6675标准详细介绍
  • PHP 8.4 重磅发布了
  • 如何创建你的第一个 Telegram 机器人:一步步教程