当前位置: 首页 > 知识库问答 >
问题:

如何在不改变SVG文本元素的textContent值的情况下向其追加字符?

楚修为
2023-03-14

我试图将字符附加到SVG文本元素中,这些字符与文本元素的文本内容值是分开的。字符需要出现在文本元素前面,并且看起来像是单词的一部分,例如,如果这是我的标记,

<text ...>bar</text>

然后将“foo”添加到它的前面,这样当它显示在浏览器中时,用户会看到:

foobar

但实际上元素的文本内容仍然只是“bar”。

svg text::before
{
  content: "foo"
}
li::before
{
  content: "foo"
}

如果这是不可能的,有没有一种方法允许SVG文本元素之间的零间距?例如。

<text class="something" text-anchor="end" dy=".5ex" y="110.25" x="-15">foo</text>
<text style="display:block; float:left; padding: 1px;" class="something-else" text-anchor="end" dy=".5ex" y="110.25" x="-15" font-family="FontAwesome">bar</text>

显示为“foo”直接堆叠在“bar”的顶部。我可以通过查看x坐标来更改它,但这真的很不方便,因为我无法控制svg文本元素内容的宽度。

共有1个答案

公羊渝
2023-03-14

听起来你想要一个text/tspan组合,例如。

<text><tspan>foo</tspan>bar</text>

<text>foo<tspan>bar</tspan></text>

这将允许您对foo和bar进行不同的样式,这似乎是您想要的。

tspan = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
text.appendChild(tspan);
alert(document.getElementById("tspan").textContent);
<svg><text>foo<tspan id="tspan">bar</tspan></text><svg>
 类似资料:
  • 虽然我的问题主题似乎是许多PDF操作包和工具都支持的特性,但我需要明确指出,我不想旋转PDF。 我有一个PDF,它显示了一个纵向(A4),尺寸为WxH 297x210(A4旋转)。 现在,我需要实现的是,这个PDF有横向方向,同时保留尺寸。 我不确定这需要我做什么。 如果我使用Adobe Illustrator将文档格式更改到所需的位置,我还需要旋转内容。如果我将此页面放入设计糟糕的PDF中,此页

  • 我想使用这种技术并更改SVG颜色,但到目前为止我还没能这样做。我把这个放在CSS中,但我的图像总是黑色的,不管怎么样。 我的代码: null null

  • 问题内容: 我想动态更新元素的文本: 我是jQuery的新手,因此对我来说,这项任务似乎非常具有挑战性。有人可以指出我要使用的功能/选择器吗? 如果可能的话,我想在不为需要更改的文本添加新容器的情况下执行此操作。 问题答案: 在Javascript中,该属性为您提供元素的所有子节点,包括文本节点。 因此,如果您知道要更改的文本始终是元素中的第一件事,那么请给出以下HTML: 您可以这样做: 当然,

  • 问题内容: 假设这样: 我为什么看不到任何东西? 问题答案: 当您将标记字符串传递到时,会使用(或其他适用于特殊情况的容器)容器上的浏览器属性将标记字符串解析为HTML 。无法解析SVG或其他非HTML内容,即使可以,也无法分辨出该内容应该在SVG命名空间中。 在SVGElement上不可用- 它仅是HTMLElement的属性。当前没有属性或其他方法(*)将内容解析为SVGElement。因此,

  • 我有一堆CSV文件,它们是作为数据流读取的。对于每个dataframe,我希望更改一些列名,如果某个dataframe中存在特定列: column_name_update_map={'aa':'xx';'bb':'yy'}

  • 我想把html附加到D3中的矩形上,给我一个多行工具提示。底部是如何添加一个矩形,这可能是问题的一部分。最上面是应该在我的世界里工作的代码。 这会将文本字段插入SVG,但它只是不显示: html: 我有一个鼠标移过函数,它运行以下内容: 我想我应该这么做,但这不起作用。它只是删除了我试图追加到的g.node。 问题:为什么我的文字没有出现?我试过.html,.textarea。我想要一个多行标签,