外观
Tag 标签
约 1467 字大约 5 分钟
2025-10-31
tag 组件一般用于标记和选择,我们提供了更加丰富的表现形式,能够较全面的涵盖您的使用场景
基本使用
- 通过
type参数设置主题类型,默认为primary - 属性
text设置标签内容
<un-tag text="标签" plain size="mini" type="warning"></un-tag>自定义主题
<un-tag text="标签"></un-tag>
<un-tag text="标签" type="warning"></un-tag>
<un-tag text="标签" type="success"></un-tag>
<un-tag text="标签" type="error"></un-tag>圆形标签
- 类似胶囊形状
<un-tag text="标签" plain shape="circle"></un-tag>
<un-tag text="标签" type="warning" shape="circle"></un-tag>镂空标签
<un-tag text="标签" plain> </un-tag>
<un-tag text="标签" type="warning" plain></un-tag>
<un-tag text="标签" type="success" plain></un-tag>
<un-tag text="标签" type="error" plain></un-tag>镂空带背景色
- 添加
plainFill属性镂空带背景色
<un-tag text="标签" plain> </un-tag>
<un-tag text="标签" type="warning" plain plainFill></un-tag>
<un-tag text="标签" type="success" plain plainFill></un-tag>
<un-tag text="标签" type="error" plain plainFill></un-tag>自定义尺寸
size属性为您提供了三种规格的标签大小,默认中等。
<un-tag text="标签" plain size="mini"></un-tag>
<un-tag text="标签" type="warning"></un-tag>
<un-tag text="标签" type="success" plain size="large"></un-tag>可关闭标签
tag在右上角提供了删除标签的样式
<un-tag
text="标签"
size="mini"
closable
:show="close1"
@close="close1 = false"
></un-tag>
<un-tag
text="标签"
type="warning"
closable
:show="close2"
@close="close2 = false"
></un-tag>
<un-tag
text="标签"
type="success"
plain
size="large"
closable
:show="close3"
@close="close3 = false"
></un-tag>
<script setup lang="ts">
import { ref } from 'vue';
const close1 = ref(true);
const close2 = ref(true);
const close3 = ref(true);
</script>带图片和图标
<un-tag text="标签" size="mini" icon="map" plain></un-tag>
<un-tag text="标签" type="warning" icon="tags-fill"></un-tag>
<un-tag
text="标签"
type="success"
plain
size="large"
icon="https://uviewui.com/example/tag.png"
></un-tag>单选标签 和 多选标签
- 我们为您提供了单选和多选的事件,您可以在事件中获取参数列表
<template>
<!-- 单选 -->
<view class="u-page__tag-item" v-for="(item, index) in radios" :key="index">
<un-tag
:text="`选项${index + 1}`"
:plain="!item.checked"
type="warning"
:name="index"
@click="radioClick"
>
</un-tag>
</view>
<!-- 多选 -->
<view
class="u-page__tag-item"
v-for="(item, index) in checkboxs"
:key="index"
>
<un-tag
:text="`选项${index + 1}`"
:plain="!item.checked"
type="warning"
:name="index"
@click="checkboxClick"
>
</un-tag>
</view>
</template>
<script lang="ts" setup>
import { ref, reactive } from 'vue';
type Item = {
checked: boolean;
};
// 单选标签数据
const radios = reactive<Item[]>([
{
checked: true
},
{
checked: false
},
{
checked: false
}
]);
// 多选标签数据
const checkboxs = reactive<Item[]>([
{
checked: true
},
{
checked: false
},
{
checked: false
}
]);
// 单选标签点击事件
const radioClick = (name: number) => {
radios.forEach((item, index) => {
item.checked = index === name;
});
};
// 多选标签点击事件
const checkboxClick = (name: number) => {
checkboxs[name].checked = !checkboxs[name].checked;
};
</script>
<style lang="scss">
.u-page__tag-item {
margin-right: 20px;
}
.u-demo-block__content {
flex-direction: row;
flex-wrap: wrap;
align-items: center;
}
</style>API
Props
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| type | 主题类型 | Enum | primary |
| hairline | 是否显示按钮的细边框 | Boolean | true |
| disabled | 不可用 | Boolean | false |
| size | 标签大小 | Enum | medium |
| shape | 标签形状 | Enum | square |
| text | 标签的文字内容 | String | Number | - |
| bgColor | 背景颜色,默认为空字符串,即不处理 | String | #C6C7CB |
| color | 标签字体颜色,默认为空字符串,即不处理 | String | - |
| borderColor | 标签的边框颜色 | String | - |
| closeColor | 关闭按钮图标的颜色 | String | - |
| name | 点击时返回的索引值,用于区分例遍的数组哪个元素被点击了 | String | Number | - |
| plainFill | 镂空时是否填充背景色 | Boolean | false |
| plain | 是否镂空 | Boolean | false |
| closable | 是否可关闭,设置为true,文字右边会出现一个关闭图标 | Boolean | false |
| show | 标签显示与否 | Boolean | true |
| icon | 内置图标,或绝对路径的图片 | String | - |
| gutter | 标签之间的间距 | String | Number | 10px |
| closeInside | 关闭按钮是不是内嵌在标签内 | Boolean | false |
| width | 标签宽度,超出后自动省略 | String / Number | '' |
Event
| 事件名 | 说明 | 类型 |
|---|---|---|
| click | 点击标签触发 | Function |
| close | closable为true时,点击标签关闭按钮触发 | Function |
Scss 变量
| 变量名 | 默认值 | 说明 |
|---|---|---|
| $un-tag-border | 1px solid $color-primary | 标签边框样式 |
| $un-tag-text-color | $text-color-inverted | 标签文本颜色 |
| $un-tag-hairline-border-width | 0.5px | 细边框宽度 |
| $un-tag-hairline-margin | 0.1px | 细边框外边距 |
| $un-tag-circle-border-radius | $radius-circle | 圆形标签圆角 |
| $un-tag-square-border-radius | $radius-base | 方形标签圆角 |
| $un-tag-mini-height | 22px | 迷你尺寸标签高度 |
| $un-tag-mini-padding | 0 5px | 迷你尺寸标签内边距 |
| $un-tag-mini-font-size | $text-sm | 迷你尺寸标签字体大小 |
| $un-tag-mini-line-height | $line-sm | 迷你尺寸标签行高 |
| $un-tag-medium-height | 26px | 中等尺寸标签高度 |
| $un-tag-medium-padding | 0 10px | 中等尺寸标签内边距 |
| $un-tag-medium-font-size | $text-base | 中等尺寸标签字体大小 |
| $un-tag-medium-line-height | $line-base | 中等尺寸标签行高 |
| $un-tag-large-height | 32px | 大尺寸标签高度 |
| $un-tag-large-padding | 0 15px | 大尺寸标签内边距 |
| $un-tag-large-font-size | $text-lg | 大尺寸标签字体大小 |
| $un-tag-large-line-height | $line-lg | 大尺寸标签行高 |
| $un-tag-close-inside-transform | scale(0.7) translateX(5px) | 内嵌关闭按钮变换 |
| $un-tag-close-absolute-transform | scale(0.6) | 绝对定位关闭按钮变换 |
| $un-tag-close-absolute-top | -10px | 绝对定位关闭按钮顶部距离 |
| $un-tag-close-absolute-right | -10px | 绝对定位关闭按钮右侧距离 |
| $un-tag-close-z-index | 10 | 关闭按钮层级 |
| $un-tag-close-mini-width | 18px | 迷你尺寸关闭按钮宽度 |
| $un-tag-close-mini-height | 18px | 迷你尺寸关闭按钮高度 |
| $un-tag-close-medium-width | 22px | 中等尺寸关闭按钮宽度 |
| $un-tag-close-medium-height | 22px | 中等尺寸关闭按钮高度 |
| $un-tag-close-large-width | 26px | 大尺寸关闭按钮宽度 |
| $un-tag-close-large-height | 26px | 大尺寸关闭按钮高度 |
提示
组件内部默认使用 scss 变量,如需修改,请查看 scss 变量使用 文档
