圆上的svg路径长度未定义圆圈?

发布于 2025-02-11 00:10:54 字数 1968 浏览 1 评论 0 原文

根据 https:// https:// https://developer.mozilla.orgg/en-en--en--en--en--en--en--en--en--en--en--en--en--en--en--en--en--en-g een-en-en-gen-en-n-en--en-n-en-peverical-en-en-en-gen-en-n-en-cor-n-en-en-cor-org/en-gen-n-en-circ.org noreforrer =“ us/doc/web/svg/element/circle pathlength 属性应该定义“圆圈的总长度”,但是,当我使用 stroke- dasharray ,它似乎不排队吗?

<svg width="100" height="100" viewBox="0 0 1 1">
  <circle
    cx="0.5"
    cy="0.5"
    stroke-width="0.5"
    r="0.25"
    pathLength="360"
    stroke-dasharray="180 360"
    stroke-dashoffset="0"
    stroke="black"
    fill="none"
  />
</svg>

根据也应该是半填充的,因此是半圆形的,但是它略小于半圆形。如果我有 stroke-dasharray 将设置为 360 360 ,那么它不会完全关闭,如果我理解 Pathlength的方式属性是如何假设的要工作,应该。

我是误解 Pathlength 还是 stroke-dasharray

编辑:在浏览器之间似乎有所不同...?

铬:

铬实际上是vivaldi,但谁在问“

firefox:

“

编辑2:

当我获得总长度时,浏览器之间的总长度有所不同!这是打算的吗?可以解决这个问题吗?

According to https://developer.mozilla.org/en-US/docs/Web/SVG/Element/circle, the pathLength attribute is supposed to define the "total length for the circle's circumference", however, when I use stroke-dasharray, it doesn't seem to line up?

<svg width="100" height="100" viewBox="0 0 1 1">
  <circle
    cx="0.5"
    cy="0.5"
    stroke-width="0.5"
    r="0.25"
    pathLength="360"
    stroke-dasharray="180 360"
    stroke-dashoffset="0"
    stroke="black"
    fill="none"
  />
</svg>

According to https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/pathLength as well, this should be half-filled, thus a semi-circle, however it's slightly less than a semi-circle. If I have stroke-dasharray set to 360 360 instead, it doesn't fully close when, if I understand how the pathLength attribute is supposed to work, it should.

Am I misunderstanding pathLength or stroke-dasharray?

Edit: it seems to work differently across browsers...?

Chromium:

Chromium actually vivaldi but who's asking

Firefox:

Firefox yes actually firefox

Safari:

Safari actually epiphany but who's asking

Edit 2:

When I get their total lengths, it's different across browsers! Is this intended? Is it possible to solve this issue?

Firefox, Chrome, Safari have different lengths

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

燃情 2025-02-18 00:10:54

正如@enxaneta所说的那样。查看框越小,问题就越大。在此示例中,仅在Chrome中看起来还不错。

<svg xmlns="http//www.w3.org/2000/svg" width="130" viewBox="0 0 1 1">
  <path d="M0 .5 L1 .5" stroke-width=".01" stroke="gray"/>
  <circle cx=".5" cy=".5" r=".4" stroke="black" stroke-width=".2" fill="none" stroke-dasharray="180 360" pathLength="360" />
</svg>

<svg xmlns="http//www.w3.org/2000/svg" width="130" viewBox="0 0 10 10">
  <path d="M0 5 L10 5" stroke-width=".1" stroke="gray"/>
  <circle cx="5" cy="5" r="4" stroke="black" stroke-width="2" fill="none" stroke-dasharray="180 360" pathLength="360" />
</svg>

<svg xmlns="http//www.w3.org/2000/svg" width="130" viewBox="0 0 50 50">
  <path d="M0 25 L50 25" stroke-width=".5" stroke="gray"/>
  <circle cx="25" cy="25" r="20" stroke="black" stroke-width="10" fill="none" stroke-dasharray="180 360" pathLength="360" />
</svg>

<svg xmlns="http//www.w3.org/2000/svg" width="130" viewBox="0 0 100 100">
  <path d="M0 50 L100 50" stroke-width="1" stroke="gray"/>
  <circle cx="50" cy="50" r="40" stroke="black" stroke-width="20" fill="none" stroke-dasharray="180 360" pathLength="360" />
</svg>

As @enxaneta commented. The smaller the viewBox, the bigger the problem is. In this example it is only the last one (viewBox="0 0 100 100") that looks OK in Chrome.

<svg xmlns="http//www.w3.org/2000/svg" width="130" viewBox="0 0 1 1">
  <path d="M0 .5 L1 .5" stroke-width=".01" stroke="gray"/>
  <circle cx=".5" cy=".5" r=".4" stroke="black" stroke-width=".2" fill="none" stroke-dasharray="180 360" pathLength="360" />
</svg>

<svg xmlns="http//www.w3.org/2000/svg" width="130" viewBox="0 0 10 10">
  <path d="M0 5 L10 5" stroke-width=".1" stroke="gray"/>
  <circle cx="5" cy="5" r="4" stroke="black" stroke-width="2" fill="none" stroke-dasharray="180 360" pathLength="360" />
</svg>

<svg xmlns="http//www.w3.org/2000/svg" width="130" viewBox="0 0 50 50">
  <path d="M0 25 L50 25" stroke-width=".5" stroke="gray"/>
  <circle cx="25" cy="25" r="20" stroke="black" stroke-width="10" fill="none" stroke-dasharray="180 360" pathLength="360" />
</svg>

<svg xmlns="http//www.w3.org/2000/svg" width="130" viewBox="0 0 100 100">
  <path d="M0 50 L100 50" stroke-width="1" stroke="gray"/>
  <circle cx="50" cy="50" r="40" stroke="black" stroke-width="20" fill="none" stroke-dasharray="180 360" pathLength="360" />
</svg>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文