027_Badge标记

本文详细介绍了Element UI中的Badge组件,包括其基本用法、最大值设定、自定义内容和小红点标记等特性,并通过示例展示了如何在项目中使用Badge组件,如在按钮旁展示新消息数量、自定义文本和小红点提示。

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

1. Badge标记

1.1. Badge标记出现在按钮、图标旁的数字或状态标记。

1.2. Attributes

参数

说明

类型

可选值

默认值

value

显示值

string, number

max

最大值, 超过最大值会显示'{max}+', 要求value是Number类型

number

is-dot

小圆点

boolean

false

hidden

隐藏badge

boolean

false

type

类型

string

primary / success / warning / danger / info

2. Badge标记例子

2.1. 使用脚手架新建一个名为element-ui-badge的前端项目, 同时安装Element插件。

2.2. 在components在新建Badge.vue 

<template>
  <div>
    <h1>基础用法-展示新消息数量</h1>
    <h4>定义value属性, 它接受Number或者String。type设置Badge类型。</h4>
    <el-badge :value="12" class="item"><el-button size="small">评论</el-button></el-badge>
    <el-badge :value="3" class="item"><el-button size="small">回复</el-button></el-badge>
    <el-badge :value="1" class="item" type="primary"><el-button size="small">评论</el-button></el-badge>
    <el-badge :value="2" class="item" type="warning"><el-button size="small">回复</el-button></el-badge>

    <el-dropdown trigger="click">
      <span class="el-dropdown-link">点我查看<i class="el-icon-caret-bottom el-icon--right"></i></span>
      <el-dropdown-menu slot="dropdown">
        <el-dropdown-item class="clearfix">评论<el-badge class="mark" :value="12" /></el-dropdown-item>
        <el-dropdown-item class="clearfix">回复<el-badge class="mark" :value="3" /></el-dropdown-item>
      </el-dropdown-menu>
    </el-dropdown>

    <h1>最大值-可自定义最大值</h1>
    <h4>由max属性定义, 它接受一个Number, 需要注意的是, 只有当value为Number时, 它才会生效。</h4>
    <el-badge :value="200" :max="99" class="item"><el-button size="small">评论</el-button></el-badge>
    <el-badge :value="100" :max="10" class="item"><el-button size="small">回复</el-button></el-badge>

    <h1>自定义内容-可以显示数字以外的文本内容</h1>
    <h4>定义value为String类型是时可以用于显示自定义文本。</h4>
    <el-badge value="new" class="item"><el-button size="small">评论</el-button></el-badge>
    <el-badge value="hot" class="item"><el-button size="small">回复</el-button></el-badge>

    <h1>小红点-以红点的形式标注需要关注的内容</h1>
    <h4>除了数字外, 设置is-dot属性, 它接受一个Boolean。</h4>
    <el-badge is-dot class="item">数据查询</el-badge>
    <el-badge is-dot class="item">
      <el-button class="share-button" icon="el-icon-share" type="primary"></el-button>
    </el-badge>
  </div>
</template>

<style>
.item {
  margin-top: 10px;
  margin-right: 40px;
}
</style>

2.3. 访问http://localhost:8080/#/Badge

### 如何自定义 Element UI `el-badge` 组件的样式 为了更好地控制 `el-badge` 的外观,可以通过多种方式来自定义其样式。以下是几种常见的方法: #### 方法一:使用内联样式或类名覆盖默认样式 可以直接给 `el-badge` 或者嵌套的内容添加特定的 CSS 类来修改显示效果。 ```html <template> <div> <!-- 使用自定义类 --> <el-badge :value="12" class="custom-badge"> <el-button type="primary">消息</el-button> </el-badge> <!-- 直接应用内联样式 --> <el-badge :value="3" style="font-size: 18px; color:red;"> <el-button type="warning">警告</el-button> </el-badge> </div> </template> <style scoped> .custom-badge .el-badge__content { background-color: blue; font-size: 14px; } </style> ``` 这种方法简单直观,适合于简单的样式调整[^1]。 #### 方法二:利用深度作用选择器(Deep Selector) 当需要更深入地定制内部结构时,可以借助 `/deep/` 或 `::v-deep` 来穿透scoped样式的作用域边界。 ```css /* 对应 Vue CLI 版本不同 */ /deep/.el-badge__content.is-fixed { /* 或 ::v-deep */ top: 5px !important; right: 10px !important; } .el-badge__content.is-dot { width: auto; height: auto; padding: 0 6px; border-radius: 12px; } ``` 这种方式适用于那些想要改变 badge 默认位置或者其他深层次样式的场景。 #### 方法三:通过 JavaScript 动态设置样式 如果希望基于某些条件动态更改徽章的颜色或其他属性,则可以在 mounted 钩子函数里操作 DOM 节点或者绑定 inline-style 属性。 ```javascript mounted () { this.$nextTick(() => { const badges = document.querySelectorAll('.el-badge__content') Array.from(badges).forEach((badge, index) => { if (index % 2 === 0) { badge.style.backgroundColor = 'green' } else { badge.style.color = '#fff'; badge.style.borderColor = 'orange'; } }) }) }, // 或者直接在模板中使用 bind 指令 <el-badge :value="count" :style="{ backgroundColor: count > 10 ? 'red' : ''}"> ... </el-badge> ``` 这种灵活性较高的方案允许开发者根据业务逻辑灵活设定不同的视觉反馈。 #### 方法四:创建新的主题变量并重写 LESS 文件 对于追求一致性的大型项目来说,最推荐的做法是从源码层面入手,即编辑 Element Plus 提供的主题配置文件 `_variables.less` ,从而达到统一管理的目的。 假设要新增一个名为 `$badge-primary-bg` 的颜色变量用于表示主要背景色,在项目的根目录下找到 node_modules/@element-plus/theme-chalk/src/badge.scss 并适当修改相关内容即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值