#引子
引用elementUI的徽章组件(右上角红点)时发现,红点和他的主体是绑定的,使用起来非常不方便,无法实现随时随地每个元素添加红点提示的功能,于是我写了一个,感觉是很基础的组件
思路
我们需要设置一个插槽,插入的内容为红点中的文字,而整个组件是一个绝对定位的div,定位在右上角并基于自身设置translate('-50%', '50%'),便能实现右上角红点的功能
传入的参数color为背景颜色 默认红色即可
使用时 父元素一定要开启绝对或者相对定位!不然白干
<template>
<div class="badge" :style="{'backgroundColor':props.color}" >
<slot></slot>
</div>
</template>
<script setup>
import { defineProps } from 'vue';
const props = defineProps({
color:{
type:String,
default: 'red'
}
})
</script>
<style lang="scss" scoped>
.badge{
height: 18rem;
position: absolute;
right: 0;
top: 0;
padding: 0 5rem 0 5rem;
transform: translate(50%, -30%);
font-size: 12rem;
color: white;
text-align: center;
line-height: 18rem;
border-radius: 10rem;
}
</style>
标签:color,50%,height,右上角,徽章,vue3,组件,defineProps
From: https://blog.csdn.net/violeteverdack/article/details/144245770