当前位置:  开发笔记 > 前端 > 正文

如何制作对角圆边框渐变?

如何解决《如何制作对角圆边框渐变?》经验,为你挑选了2个好方法。

我有CSS3的问题.我不知道如何制作像这样的对角圆形渐变边框: 圈子的例子

我发现像这样:

.box {
  width: 250px;
  height: 250px;
  margin: auto;
  background: #eee;
  border: 20px solid transparent;
  -moz-border-image: -moz-linear-gradient(top left, #3acfd5 0%, #3a4ed5 100%);
  -webkit-border-image: -webkit-linear-gradient(top left, #3acfd5 0%, #3a4ed5 100%);
  border-image: linear-gradient(to bottom right, #3acfd5 0%, #3a4ed5 100%);
  border-image-slice: 1;
}

但不幸的是,这只适用于正方形.

任何帮助,将不胜感激.



1> Harry..:

圆锥形渐变是沿着围绕中心的圆弧的渐变.这就是我们在色轮中看到的.正如Paulie_D所指出的那样,这些目前用CSS无法实现,但Lea Verou为它开发了一种polyfill.

话虽如此,你所寻找的似乎并不是一个圆锥形的渐变,它是正常的角度线性渐变,但仅适用于边界.这不能通过CSS border-image属性实现,因为它的工作方式符合规范.

框的背景,但不是其边框图像,被剪切到适当的曲线


如果圆的中心部分是纯色,则可以使用Vitorino答案中提到的方法.如果它不是纯色(即页面背景是渐变或需要显示的图像)那么它将无济于事.在这种情况下可以使用以下方法.

使用蒙版图像:

该方法使用圆形掩模图像来掩盖圆的内部.这使得它看起来好像只有边框应用了渐变.的缺点是,这个功能目前支持只能在Webkit的浏览器提供动力.

.border-gradient-mask {
  height: 200px;
  width: 200px;
  border-radius: 50%;
  background-image: linear-gradient(to bottom left, #7B73A4 0%, #150E5E 100%);
  -webkit-mask-image: radial-gradient(circle at center, transparent 57%, white 58%);
  mask-image: radial-gradient(circle at center, transparent 57%, white 58%);
}
body {
  background: radial-gradient(circle at center, sandybrown, chocolate);
}


2> Vitorino fer..:

你可以试试这样的东西,我用了-ve的伪元素 z-index

注意:背景不透明,因为我使用了background-color内部元素

.box {
  width: 250px;
  height: 250px;
  position: relative;
  margin: auto;
  margin: 30px;
  border-radius: 50%;
  background: #fff;
}
.box:after {
  content: '';
  position: absolute;
  top: -15px;
  bottom: -15px;
  right: -15px;
  left: -15px;
  background-image: linear-gradient(to bottom left, #7B73A4 0%, #150E5E 100%);
  z-index: -1;
  border-radius: inherit;
}
推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有