<template>
<div :class="$options.name">
<div class="card">
<div class="left-top-subscript">
<div>左上角</div>
</div>
<div class="right-top-subscript">
<div>右上角</div>
</div>
</div>
<div class="card">
<div class="left-top-subscript type2">
<div>左上角</div>
</div>
<div class="right-top-subscript type2">
<div>右上角</div>
</div>
</div>
<div class="card">
<div class="left-top-subscript type3">
<div>左上角</div>
</div>
<div class="right-top-subscript type3">
<div>右上角</div>
</div>
</div>
<div class="card">
<div class="left-top-subscript type4">
<div>左上角</div>
</div>
<div class="right-top-subscript type4">
<div>右上角</div>
</div>
</div>
<div class="card">
<div class="left-top-subscript type5">
<div>左上角</div>
</div>
<div class="right-top-subscript type5">
<div>右上角</div>
</div>
</div>
<div class="card">
<div class="left-top-subscript type6">
<div>左上角</div>
</div>
<div class="right-top-subscript type6">
<div>右上角</div>
</div>
</div>
<div class="card">
<div class="left-top-subscript type7">
<div>左上角</div>
</div>
<div class="right-top-subscript type7">
<div>右上角</div>
</div>
</div>
<div class="card">
<div class="left-top-subscript type8">
<div>左上角</div>
</div>
<div class="right-top-subscript type8">
<div>右上角</div>
</div>
</div>
<div class="card">
<div class="left-top-radius-subscript">左上角</div>
<div class="right-top-radius-subscript">右上角</div>
</div>
<div class="card">
<div class="left-top-radius-subscript type2">左上角</div>
<div class="right-top-radius-subscript type2">右上角</div>
</div>
<div class="card">
<div class="left-top-radius-subscript type3">左上角</div>
<div class="right-top-radius-subscript type3">右上角</div>
</div>
<div class="card">
<div class="left-top-radius-subscript type4">左上角</div>
<div class="right-top-radius-subscript type4">右上角</div>
</div>
</div>
</template>
<script>
export default { name: `subscript` };
</script>
<style lang="scss" scoped>
// 卡片样式
.card {
width: 300px;
height: 100px;
position: relative;
background: #fff;
overflow: visible;
margin: 20px;
box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
display: inline-block;
}
// 标签----------------------------------------
$subscriptBackgroundColor: #f56c6c;
$subscriptShadowColor: #cd5c5c;
$subscriptLinearGradientColor1: linear-gradient($subscriptBackgroundColor, $subscriptShadowColor);
$subscriptLinearGradientColor2: linear-gradient(to bottom, $subscriptShadowColor, $subscriptBackgroundColor, $subscriptShadowColor);
$subscriptLinearGradientColor3: linear-gradient(to right, $subscriptShadowColor, $subscriptBackgroundColor, $subscriptShadowColor);
.subscript {
// 传统斜角标----------------------------------------
.left-top-subscript,
.right-top-subscript {
width: 100px;
height: 100px;
overflow: hidden;
position: absolute;
top: -6px;
left: -6px;
& > div {
transform: rotate(-45deg);
display: flex;
justify-content: center;
align-items: center;
text-align: center;
text-transform: uppercase;
position: relative;
padding: 8px 0;
left: -30px;
top: 19px;
width: 130px;
color: #fff;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
background-color: $subscriptBackgroundColor;
&:before,
&:after {
content: '';
position: absolute;
border-top: 4px solid $subscriptShadowColor;
border-left: 4px solid transparent;
border-right: 4px solid transparent;
bottom: -4px;
}
&:before {
left: 0;
}
&:after {
right: 0;
}
}
}
.right-top-subscript {
left: revert;
right: -6px;
& > div {
transform: rotate(45deg);
left: revert;
}
}
.left-top-subscript,
.right-top-subscript {
&.type2 > div {
&:before,
&:after {
border-top: 8px solid $subscriptShadowColor;
border-left: 8px solid transparent;
border-right: 8px solid transparent;
bottom: -8px;
}
&:before {
border-left: revert;
}
&:after {
border-right: revert;
}
}
&.type3 > div {
background: $subscriptLinearGradientColor1;
}
&.type4 > div {
background: $subscriptLinearGradientColor2;
}
&.type5 > div {
background: $subscriptLinearGradientColor3;
}
&.type6 > div {
outline: 1px solid #fff;
outline-offset: -4px;
}
&.type7 > div {
outline: 1px dashed #fff;
outline-offset: -4px;
}
&.type8 > div {
color: #e9ea7b;
font-weight: bold;
outline: 1px dotted #e5e82c;
outline-offset: -4px;
background-image: radial-gradient(circle farthest-side, #ff1c1a, #bf0b00);
text-shadow: 2px 1px 0px rgba(0, 0, 0, 0.2);
}
}
// 圆角矩形角标----------------------------------------
.left-top-radius-subscript,
.right-top-radius-subscript {
$corner: 10px;
width: 70px;
height: 30px;
color: white;
text-align: center;
background: linear-gradient(135deg, #ffffff66, transparent) #ea3447;
box-shadow: 0 2px 10px 0 #00000022;
border-radius: 5px 5px 5px 0;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
left: -10px;
top: 10px;
&::after {
content: '';
position: absolute;
clip-path: polygon(0 0, 100% 0, 100% 100%);
width: $corner;
height: $corner;
bottom: -$corner;
left: 0;
background-color: inherit;
}
&.type2 {
filter: hue-rotate(90deg);
}
&.type3 {
filter: hue-rotate(190deg);
}
&.type4 {
filter: hue-rotate(264deg);
}
}
.right-top-radius-subscript {
left: revert;
right: -10px;
border-radius: 5px 5px 0 5px;
&::after {
left: revert;
right: 0;
clip-path: polygon(0 0, 0 100%, 100% 0);
}
}
}
</style>

image.png