javascript - 径向渐变

标签 javascript css gradient geometry

如何使用 CSS3 (-webkit-radial-gradient) 创建圆形的径向渐变? 假设我有一个圆圈:

#circle {
    height: 200px;
    width: 200px;
    border-radius: 50%;
}

如何为这个圆绘制径向渐变?

编辑:我想在没有任何外部库的情况下执行此操作。我还根据色标创建渐变。例如(0,255)。

最佳答案

您可以使用以下几种方法:

  1. 您可以创建 svg file with a radial gradient ,并使用 background-image: url()
  2. 将其设置为背景
  3. 您可以创建一个 png 或 jpg 的渐变,并按照上面相同的方式进行设置

如果您不想使用外部文件,您可以对其进行 Base64 编码并使用 data url .

您可以使用background-size: contains使渐变适合圆形(或椭圆形!)的大小,只需确保渐变的分辨率足够高即可永远不会像素化。

编辑:Here's a fiddle so you can see it in action 。由于数据 url 已编码,因此这是 svg 文件的来源:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="512px" height="512px" viewBox="-256 -256 512 512"
  xmlns="http://www.w3.org/2000/svg" version="1.1" >
<defs>
  <radialGradient id="grad" cx="50%" cy="50%" r="50%">
    <stop stop-color="white" offset="0%"/>
    <stop stop-color="black" offset="100%"/>
  </radialGradient>
</defs>
<circle r="256px" fill="url(#grad)" />
</svg>

您可以修改色标,然后使用 this tool 重新编码数据 URI

关于javascript - 径向渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13963156/

相关文章:

javascript - 处理 tr 的子元素不起作用

javascript - 使用 jquery 检查 div 中的所有值是否唯一

javascript - 如何将div用作网格?

javascript - jquery for regexp 不起作用

javascript - 调整大小时如何防止导航栏中的元素被 chop ?

html - Bootstrap4 - 使用剪辑路径属性时不显示菜单下拉菜单

javascript - 如何清除这个图像衰减器?

python - 如何用累积梯度更新模型参数?

CSS3渐变渲染从透明到白色的问题

java - AffineTransform 翻译不同的图形对象