css实现角标

左上角一个斜着的类似丝带的元素,里面可以加文字,文字和丝带一样是斜着的效果

先看效果

贴代码

<h1>Corner ribbons for cards</h1>
<div class='card-wrap'>
  <div class='card'>
    <div class='set-image'><p>Straight fold</p></div>
    <div class='set-headline'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='ribbon-wrapper-1'>
      <div class='ribbon-1'>Ribbon</div>
    </div>
  </div>
  <div class='card'>
    <div class='set-image'><p>Angled fold - more realistic</p></div>
    <div class='set-headline'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='ribbon-wrapper-2'>
      <div class='ribbon-2'>Ribbon</div>
    </div>
  </div>
  <div class='card'>
    <div class='set-image'><p>Straight fold on left</p></div>
    <div class='set-headline'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='ribbon-wrapper-3'>
      <div class='ribbon-3'>Ribbon</div>
    </div>
  </div>
  <div class='card'>
    <div class='set-image'><p>Gradient - from top to bottom. Angled fold and text shadow</p></div>
    <div class='set-headline'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='ribbon-wrapper-4'>
      <div class='ribbon-4'>Ribbon</div>
    </div>
  </div>
  <div class='card'>
    <div class='set-image'><p>Gradient - from centre radial. Angled fold and text shadow</p></div>
    <div class='set-headline'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='ribbon-wrapper-5'>
      <div class='ribbon-5'>Ribbon</div>
    </div>
  </div>
  <div class='card'>
    <div class='set-image'><p>Gradient - from centre linear. Angled fold and text shadow</p></div>
    <div class='set-headline'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='ribbon-wrapper-6'>
      <div class='ribbon-6'>Ribbon</div>
    </div>
  </div>
  <div class='card'>
    <div class='set-image'><p>Solid line on ribbon</p></div>
    <div class='set-headline'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='ribbon-wrapper-7'>
      <div class='ribbon-7'>Ribbon</div>
    </div>
  </div>
  <div class='card'>
    <div class='set-image'><p>Dotted line on ribbon</p></div>
    <div class='set-headline'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='ribbon-wrapper-8'>
      <div class='ribbon-8'>Ribbon</div>
    </div>
  </div>
  <div class='card'>
    <div class='set-image'><p>Full works - alt colour</p></div>
    <div class='set-headline'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='set-text'></div>
    <div class='ribbon-wrapper-9'>
      <div class='ribbon-9'>Ribbon</div>
    </div>
  </div>
</div>

html {
  background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#a9aead), to(#c5cdcf));
  background: -webkit-linear-gradient(top, #c5cdcf, #a9aead);
  background: -moz-linear-gradient(top, #c5cdcf, #a9aead);
  min-height: 100%; }

h1 {
  font: bold 35px Sans-Serif;
  text-transform: uppercase;
  color: #fff;
  text-align: center;
  text-shadow: 0 0 15px rgba(0, 0, 0, 0.2); }

.card-wrap {
  text-align: center; }

.card {
  width: 400px;
  height: 500px;
  position: relative;
  background: #fff;
  overflow: visible;
  margin: 20px;
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
  display: inline-block; }

.set-image {
  width: 100%;
  height: 50%;
  background: #eee;
  overflow: hidden;
  font: bold 20px Sans-Serif;
  text-transform: uppercase;
  display: table; }

.set-image p {
  display: table-cell;
  vertical-align: middle;
  text-align: center;
  line-height: 25px;
  color: #d2d2d2; }

.set-headline {
  width: 65%;
  height: 10%;
  background: #eee;
  margin: 20px; }

.set-text {
  width: 90%;
  height: 12px;
  background: #eee;
  margin: 12px 20px; }

.ribbon-wrapper-1 {
  width: 106px;
  height: 108px;
  overflow: hidden;
  position: absolute;
  top: -6px;
  right: -6px; }

.ribbon-1 {
  font: bold 15px Sans-Serif;
  line-height: 18px;
  color: #333;
  text-align: center;
  text-transform: uppercase;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  position: relative;
  padding: 7px 0;
  left: -11px;
  top: 26px;
  width: 150px;
  background-color: #6daaab;
  color: #fff;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  letter-spacing: 0.5px; }

.ribbon-1:before, .ribbon-1:after {
  content: "";
  border-top: 4px solid #4e7c7d;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  position: absolute;
  bottom: -4px; }

.ribbon-1:before {
  left: 0; }

.ribbon-1:after {
  right: 0; }

.ribbon-wrapper-2 {
  width: 108px;
  height: 108px;
  overflow: hidden;
  position: absolute;
  top: -6px;
  right: -6px; }

.ribbon-2 {
  font: bold 15px Sans-Serif;
  line-height: 18px;
  color: #333;
  text-align: center;
  text-transform: uppercase;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  position: relative;
  padding: 7px 0;
  left: -4px;
  top: 26px;
  width: 150px;
  background-color: #6daaab;
  color: #fff;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  letter-spacing: 0.5px;
  box-shadow: -3px 5px 6px -5px rgba(0, 0, 0, 0.5); }

.ribbon-2:before, .ribbon-2:after {
  content: "";
  border-top: 4px solid #4e7c7d;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  position: absolute;
  bottom: -4px; }

.ribbon-2:before {
  content: "";
  position: absolute;
  left: 0px;
  top: 100%;
  z-index: -1;
  border-left: 4px solid #4e7c7d;
  border-right: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-top: 4px solid #4e7c7d; }

.ribbon-2:after {
  content: "";
  position: absolute;
  right: 7px;
  top: 100%;
  z-index: -1;
  border-left: 4px solid transparent;
  border-right: 4px solid #4e7c7d;
  border-bottom: 4px solid transparent;
  border-top: 4px solid #4e7c7d; }

.ribbon-wrapper-3 {
  width: 106px;
  height: 108px;
  overflow: hidden;
  position: absolute;
  top: -6px;
  left: -6px; }

.ribbon-3 {
  font: bold 15px Sans-Serif;
  line-height: 18px;
  color: #333;
  text-align: center;
  text-transform: uppercase;
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
  position: relative;
  padding: 7px 0;
  left: -33px;
  top: 26px;
  width: 150px;
  background-color: #6daaab;
  color: #fff;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  letter-spacing: 0.5px; }

.ribbon-3:before, .ribbon-3:after {
  content: "";
  border-top: 4px solid #4e7c7d;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  position: absolute;
  bottom: -4px; }

.ribbon-3:before {
  left: 0; }

.ribbon-3:after {
  right: 0; }

.ribbon-wrapper-4 {
  width: 108px;
  height: 108px;
  overflow: hidden;
  position: absolute;
  top: -6px;
  right: -6px; }

.ribbon-4 {
  font: bold 15px Sans-Serif;
  line-height: 18px;
  color: #333;
  text-align: center;
  text-transform: uppercase;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  position: relative;
  padding: 7px 0;
  left: -4px;
  top: 26px;
  width: 150px;
  background-color: #6daaab;
  color: #fff;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  letter-spacing: 0.5px;
  background-image: linear-gradient(#6daaab, #4e7c7d);
  box-shadow: -3px 5px 6px -5px rgba(0, 0, 0, 0.5);
  text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.4); }

.ribbon-4:before, .ribbon-4:after {
  content: "";
  border-top: 4px solid #4e7c7d;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  position: absolute;
  bottom: -4px; }

.ribbon-4:before {
  content: "";
  position: absolute;
  left: 0px;
  top: 100%;
  z-index: -1;
  border-left: 4px solid #4e7c7d;
  border-right: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-top: 4px solid #4e7c7d; }

.ribbon-4:after {
  content: "";
  position: absolute;
  right: 7px;
  top: 100%;
  z-index: -1;
  border-left: 4px solid transparent;
  border-right: 4px solid #4e7c7d;
  border-bottom: 4px solid transparent;
  border-top: 4px solid #4e7c7d; }

.ribbon-wrapper-5 {
  width: 108px;
  height: 108px;
  overflow: hidden;
  position: absolute;
  top: -6px;
  right: -6px; }

.ribbon-5 {
  font: bold 15px Sans-Serif;
  line-height: 18px;
  color: #333;
  text-align: center;
  text-transform: uppercase;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  position: relative;
  padding: 7px 0;
  left: -4px;
  top: 26px;
  width: 150px;
  background-color: #6daaab;
  color: #fff;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  letter-spacing: 0.5px;
  background-image: radial-gradient(circle farthest-side, #6daaab, #4e7c7d);
  box-shadow: -3px 5px 6px -5px rgba(0, 0, 0, 0.5);
  text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.4); }

.ribbon-5:before, .ribbon-5:after {
  content: "";
  border-top: 4px solid #4e7c7d;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  position: absolute;
  bottom: -4px; }

.ribbon-5:before {
  content: "";
  position: absolute;
  left: 0px;
  top: 100%;
  z-index: -1;
  border-left: 4px solid #4e7c7d;
  border-right: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-top: 4px solid #4e7c7d; }

.ribbon-5:after {
  content: "";
  position: absolute;
  right: 7px;
  top: 100%;
  z-index: -1;
  border-left: 4px solid transparent;
  border-right: 4px solid #4e7c7d;
  border-bottom: 4px solid transparent;
  border-top: 4px solid #4e7c7d; }

.ribbon-wrapper-6 {
  width: 108px;
  height: 108px;
  overflow: hidden;
  position: absolute;
  top: -6px;
  right: -6px; }

.ribbon-6 {
  font: bold 15px Sans-Serif;
  line-height: 18px;
  color: #333;
  text-align: center;
  text-transform: uppercase;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  position: relative;
  padding: 7px 0;
  left: -4px;
  top: 26px;
  width: 150px;
  background-color: #6daaab;
  color: #fff;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  letter-spacing: 0.5px;
  background-image: linear-gradient(#4e7c7d -50%, #6daaab 50%, #6daaab 0%, #4e7c7d 150%);
  text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.4);
  box-shadow: -3px 5px 6px -5px rgba(0, 0, 0, 0.5); }

.ribbon-6:before, .ribbon-6:after {
  content: "";
  border-top: 4px solid #4e7c7d;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  position: absolute;
  bottom: -4px; }

.ribbon-6:before {
  content: "";
  position: absolute;
  left: 0px;
  top: 100%;
  z-index: -1;
  border-left: 4px solid #4e7c7d;
  border-right: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-top: 4px solid #4e7c7d; }

.ribbon-6:after {
  content: "";
  position: absolute;
  right: 7px;
  top: 100%;
  z-index: -1;
  border-left: 4px solid transparent;
  border-right: 4px solid #4e7c7d;
  border-bottom: 4px solid transparent;
  border-top: 4px solid #4e7c7d; }

.ribbon-wrapper-7 {
  width: 108px;
  height: 108px;
  overflow: hidden;
  position: absolute;
  top: -6px;
  right: -6px; }

.ribbon-7 {
  font: bold 15px Sans-Serif;
  line-height: 18px;
  color: #333;
  text-align: center;
  text-transform: uppercase;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  position: relative;
  padding: 7px 0;
  left: -4px;
  top: 26px;
  width: 150px;
  background-color: #6daaab;
  color: #fff;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  letter-spacing: 0.5px;
  box-shadow: -3px 5px 6px -5px rgba(0, 0, 0, 0.5);
  outline: 1px solid #fff;
  outline-offset: -4px; }

.ribbon-7:before, .ribbon-7:after {
  content: "";
  border-top: 4px solid #4e7c7d;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  position: absolute;
  bottom: -4px; }

.ribbon-7:before {
  content: "";
  position: absolute;
  left: 0px;
  top: 100%;
  z-index: -1;
  border-left: 4px solid #4e7c7d;
  border-right: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-top: 4px solid #4e7c7d; }

.ribbon-7:after {
  content: "";
  position: absolute;
  right: 7px;
  top: 100%;
  z-index: -1;
  border-left: 4px solid transparent;
  border-right: 4px solid #4e7c7d;
  border-bottom: 4px solid transparent;
  border-top: 4px solid #4e7c7d; }

.ribbon-wrapper-8 {
  width: 108px;
  height: 108px;
  overflow: hidden;
  position: absolute;
  top: -6px;
  right: -6px; }

.ribbon-8 {
  font: bold 15px Sans-Serif;
  line-height: 18px;
  color: #333;
  text-align: center;
  text-transform: uppercase;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  position: relative;
  padding: 7px 0;
  left: -4px;
  top: 26px;
  width: 150px;
  background-color: #6daaab;
  color: #fff;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  letter-spacing: 0.5px;
  box-shadow: -3px 5px 6px -5px rgba(0, 0, 0, 0.5);
  outline: 1px dashed #fff;
  outline-offset: -4px; }

.ribbon-8:before, .ribbon-8:after {
  content: "";
  border-top: 4px solid #4e7c7d;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  position: absolute;
  bottom: -4px; }

.ribbon-8:before {
  content: "";
  position: absolute;
  left: 0px;
  top: 100%;
  z-index: -1;
  border-left: 4px solid #4e7c7d;
  border-right: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-top: 4px solid #4e7c7d; }

.ribbon-8:after {
  content: "";
  position: absolute;
  right: 7px;
  top: 100%;
  z-index: -1;
  border-left: 4px solid transparent;
  border-right: 4px solid #4e7c7d;
  border-bottom: 4px solid transparent;
  border-top: 4px solid #4e7c7d; }

.ribbon-wrapper-9 {
  width: 108px;
  height: 108px;
  overflow: hidden;
  position: absolute;
  top: -6px;
  right: -6px; }

.ribbon-9 {
  font: bold 15px Sans-Serif;
  line-height: 18px;
  color: #e9ea7b;
  text-align: center;
  text-transform: uppercase;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  position: relative;
  padding: 7px 0;
  left: -4px;
  top: 26px;
  width: 150px;
  background-color: #6daaab;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  letter-spacing: 0.5px;
  box-shadow: -3px 5px 6px -5px rgba(0, 0, 0, 0.5);
  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); }

.ribbon-9:before, .ribbon-9:after {
  content: "";
  border-top: 4px solid #BF0B00;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  position: absolute;
  bottom: -4px; }

.ribbon-9:before {
  content: "";
  position: absolute;
  left: 0px;
  top: 100%;
  z-index: -1;
  border-left: 4px solid #BF0B00;
  border-right: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-top: 4px solid #BF0B00; }

.ribbon-9:after {
  content: "";
  position: absolute;
  right: 7px;
  top: 100%;
  z-index: -1;
  border-left: 4px solid transparent;
  border-right: 4px solid #BF0B00;
  border-bottom: 4px solid transparent;
  border-top: 4px solid #BF0B00; }

/*# sourceMappingURL=corner-ribbons.css.map */

总结

  • css效果在ribbon-wrapper-1和ribbon-1的类中,其他方向角标类似
  • 核心代码如下:
.ribbon-wrapper-1 {
  width: 106px;
  height: 108px;
  overflow: hidden;
  position: absolute;
  top: -6px;
  right: -6px; }

.ribbon-1 {
  font: bold 15px Sans-Serif;
  line-height: 18px;
  color: #333;
  text-align: center;
  text-transform: uppercase;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  position: relative;
  padding: 7px 0;
  left: -11px;
  top: 26px;
  width: 150px;
  background-color: #6daaab;
  color: #fff;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  letter-spacing: 0.5px; }

.ribbon-1:before, .ribbon-1:after {
  content: "";
  border-top: 4px solid #4e7c7d;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  position: absolute;
  bottom: -4px; }

.ribbon-1:before {
  left: 0; }

.ribbon-1:after {
  right: 0; }

运行网站 css角标

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSS可以用border-radius属性来创建圆角,但是无法直接创建圆角三角形。不过,可以通过一些技巧和变通方法来实现这个效果。 一种方法是使用伪元素::before或::after来创建一个等腰三角形,然后通过设置边框和圆角来实现圆角三角形的效果。例如,可以给三角形的边框设置圆角属性,如border-radius: 50%。这样就可以创建一个圆角的三角形角标。 另一种方法是使用CSS的clip-path属性,通过定义一个自定义的路径来裁剪元素,从而实现圆角三角形的效果。可以使用polygon()函数或inset()函数来创建路径,然后指定圆角的半径。 需要注意的是,不同浏览器对于border-radius属性和clip-path属性的支持可能有所不同,有些浏览器可能需要使用相应的浏览器前缀来兼容。 总结起来,使用border-radius属性和伪元素::before或::after,或者使用clip-path属性,可以实现CSS中的圆角三角形角标。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [css-下拉菜单](https://download.csdn.net/download/qq_36091012/10894221)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [css圆角三角形3个圆角_CSS圆角](https://blog.csdn.net/culuo8053/article/details/107910747)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值