html - 为什么最后一个圆圈比其他圆圈更大胆?

标签 html css svg

我有三个具有相同 stroke-width 的圆形 svg 元素,但最后一个更粗。
这是 svg 代码:

<div>
    <svg width="114" height="114">
        <circle stroke="#6d86c7" stroke-dashoffset="62.02111948377269" stroke-dasharray="62.02111948377269,258.4213311823862" r="51" cx="50%" cy="50%"></circle>
        <circle stroke="#e05c5c" stroke-dashoffset="165.38965195672716" stroke-dasharray="103.36853247295448,217.07391819320443" r="51" cx="50%" cy="50%"></circle>
        <circle stroke="#f6a623" stroke-dashoffset="320.4424506661589" stroke-dasharray="155.05279870943173" r="51" cx="50%" cy="50%"></circle>
    </svg>
</div>

结果是这样的:

the result look like this .

似乎最后一个总是更大胆......

最佳答案

发生这种情况的原因是因为所有三个圆圈都有一个白色的 fill。在绘制每个圆圈时,白色填充会覆盖先前圆圈笔划的内部部分。请记住,绘制笔划时,它们一半在圆圈内,一半在圆圈外。

解决方案是只将白色填充放在三个圆圈中的第一个。

#first circle {
  stroke-width: 4px;
  fill: none;
}

#first circle:nth-child(1) {
  fill: #fff;
}
<div id="first">
  <svg width="114" height="114">
    <circle stroke="#6d86c7" stroke-dashoffset="62.02111948377269" stroke-dasharray="62.02111948377269,258.42133118 23862" r="51" cx="50%" cy="50%"></circle>
    <circle stroke="#e05c5c" stroke-dashoffset="165.38965195672716" stroke-dasharray="103.36853247295448,217.07391819320443" r="51" cx="50%" cy="50%"></circle>
    <circle stroke="#f6a623" stroke-dashoffset="320.4424506661589" stroke-dasharray="155.05279870943173,165.38965195672712" r="51" cx="50%" cy="50%"></circle>
  </svg>
</div>

关于html - 为什么最后一个圆圈比其他圆圈更大胆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44172129/

相关文章:

css - 图像灰度 (SVG) 问题

css - PDF 到 HTML 转换

javascript - 使用 d3.js 将 SVG 元素转换为 g 元素

javascript - 如何拉伸(stretch)文本以水平适合动态生成的 div?

javascript - 使用 For 循环追加具有多个子 div 的 div

javascript - 根据 HTML 表单 ID 值动态设置 jquery 选择器

javascript - 将输入文本字段显示为纯文本

html - 如何避免 "Flash of Unstyled Content"在 CSS 表格中使用固定宽度的单元格?

html - 将鼠标悬停在 AngularJS 中的不同元素上时在 div 中显示不同的内容

html - 如何使用CSS中的类对问题进行编号