我如何才能将渐变 colored颜色 应用到三角形?

https://jsfiddle.net/otz9ewm8/

.spinner::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  width: 0;
  height: 0;
  border-top: 20px solid transparent;
  border-bottom: 20px solid transparent;
  border-left: 27px solid #B76BF0;
  transform: translateX(4px);
  z-index: 0;
}

在代码中如何做到这一点?

.spinner {
  -webkit-appearance: none;
  appearance: none;
  border: none;
  padding: 0;
  display: block;
  cursor: pointer;
  /*background: rgba(255, 255, 255, 0.1);*/
  position: fixed;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  box-sizing: border-box;
  background-clip: padding-box;
  /* -webkit-mask: linear-gradient(rgba(0, 0, 0, 0.1), #000000 90%);*/
  width: 90px;
  height: 90px;
  border-radius: 50%;
  transform-origin: 50% 55%;
  transform: perspective(90px) rotateX(30deg);
  animation: spinner-wiggle 5.2s infinite;
}

.spinner::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  width: 0;
  height: 0;
  border-top: 20px solid transparent;
  border-bottom: 20px solid transparent;
  border-left: 27px solid #B76BF0;
  transform: translateX(4px);
  z-index: 0;
}




@keyframes spinner-wiggle {
  30% {
    transform: perspective(90px) rotateX(10deg);
  }

  40% {
    transform: perspective(90px) rotateX(7deg);
  }

  50% {
    transform: perspective(90px) rotateX(10deg);
  }

  60% {
    transform: perspective(90px) rotateX(8deg);
  }
}

.color-circle {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  width: 90px;
  height: 90px;
  transform-origin: 50% 50%;
  background: -webkit-gradient(linear,
      left top,
      left bottom,
      color-stop(50%, #25d8fb),
      color-stop(100%, #4f66bb));
  border-radius: 50%;
  z-index: 0;
  box-shadow: inset 0 24px 18px -10px rgba(0, 0, 140, 0.3),
    inset 0 0 22px -2px rgba(0, 0, 0, 0.4);
  cursor: pointer;

  background: linear-gradient(100deg, #24A4EA, #379DEB 25%, #B76BF0);
  -webkit-mask-image: radial-gradient(circle, transparent 0 36px, black 36px);
  mask-image: radial-gradient(circle, transparent 0 50px, black 20px);
}

.spinner:hover .color-circle {
  background: -webkit-gradient(linear,
      left top,
      left bottom,
      color-stop(50%, rgba(34, 204, 0, 0.9)),
      color-stop(100%, #55ff00));
}

.color-circle:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background-color: #353198;
  z-index: 0;
}

.spinner:hover .color-circle {
  animation: spin 1.7s infinite linear;
}

@-webkit-keyframes spin {
  0% {
    transform: rotateZ(0deg);
  }

  100% {
    transform: rotateZ(360deg);
  }
}
<div class=" spinner">
    <span class="color-circle"></span>
  </div>

推荐答案

你可以用clip-path instead of borders

  background-image: linear-gradient(100deg, #24A4EA, #379DEB 25%, #B76BF0);
  clip-path: polygon(0% 0%, 100% 50%, 0% 100%);

Css相关问答推荐

如何以Angular 将下拉面板的宽度与其文本框对齐

如何在Ionic上更改输入的浮点数名称 colored颜色 ?

如何使用在另一个层定义块中定义的sass层作用域变量

Astro网站在使用Astro Build构建后无法正常工作

如何使用Bootstrap将图像水平对齐,使其顶部和底部位于同一水平线上?

如何使用 Ant Design 为不同的屏幕尺寸制作自定义组件样式

覆盖现有像素的混合

不明白为什么 div 不均匀并且不填满页面

如何使用显示网格制作不同大小的列取决于元素的数量

如何使用 ReactJS 使用 CSS 设置 map 容器的样式

使元素在顶部和中心都有粘性

如何为柔和的配色方案提供易于使用的高对比度替代方案?

如何在每一行周围放置不同大小的阴影?

如何将 .btn-group 从 twitter-bootstrap 居中?

在 CSS 或 JavaScript 中反转图像的 colored颜色

如何在 CSS 中绘制一个圆形扇区?

如何使用 CSS 绘制复选标记/勾号?

Chrome 呈现 colored颜色 的方式与 Safari 和 Firefox 不同

Select 器.class.class和.class.class有什么区别?

如何将文本向左旋转 90 度并根据 html 中的文本调整单元格大小