【发布时间】:2019-07-28 03:09:10
【问题描述】:
我正在使用 Javascript 创建一个 SVG 元素,该元素包含一个具有半径和笔划粗细的圆。尺寸和厚度可能会有所不同。我正在尝试创建一个适合此 SVG 圆圈内的方形 div,以便我可以在圆圈内添加内容。
您可以将内容想象为包含有关圆圈、锚点或按钮信息的文本中的任何内容。
矩形必须适合圆圈,以便包裹所有内容,如果没有空格,则将删除内容。
<!-- A minified example of what the Javascript outputs -->
<svg viewBox="0 0 80 80" width="80" height="80">
<circle cx="40" cy="40" r="35"></circle>
</svg>
我的主要问题是是否可以将其单独添加到 SVG 元素中,并使用类似样式:left: 10%; top: 10%; width:50%; height: 50%,或者这是否需要更高级的 CSS 或 Javascript 技巧。
还有一点很重要,我的圆的半径为(svgWidth / 2) * 0.875,它是在 Javascript 代码中设置的。
【问题讨论】:
-
有什么理由使用 SVG?考虑纯 CSS 用于圆形并从方形构建它并向上移动会更简单
-
我认为正方形的边必须正好是
sqrt(2) * radius。但是仅使用 SVG 无法获得该值。如果可以的话,可以预先计算正方形的大小(可能在 JS 中?甚至是服务器端),或者使用 CSS 和calc。 -
我的 Javascript 文件中有半径!所以这不会是一个问题!
-
我使用 SVG 是因为我可以制作动画。
-
你可以使用
transform: translate();Css 属性吗?
标签: javascript html css svg