左上角右上角页签

<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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容