当前位置: 首页 > 面试题库 >

tspan元素的背景色

洪浩波
2023-03-14
问题内容

可以给SVG <tspan>元素背景色吗?如果没有,那么模拟它的最佳方法是什么?

我的目标是给文本提供背景色,我发现填充<tspan>元素将是完美的-它们已经“概述” <tspan>了代表多行文本行的文本块(元素)。

我正在使用的示例:

<text x="100" y="100" font-size="30">
  <tspan>hello</tspan>
  <tspan x="100" dy="1.2em">world</tspan>
</text>

我尝试使用“填充”属性,但它似乎会影响文本的填充(颜色),而不是其后面的区域:

<tspan fill="yellow">hello</tspan>

我也尝试通过CSS设置背景色:

<style type="text/css">tspan { background-color: yellow }</tspan>

..但不起作用(至少在Chrome 17和Firefox 12中)。

用“填充” 将tspan包裹起来<g>(或将文本本身包裹在<g>)不起作用:

<g fill="yellow"><tspan>hello</tspan></g>
<tspan><g fill="yellow">hello</g></tspan>

除了创建<rect>位于相同位置的元素(我想避免的事情)之外,还有另一种方法可以实现此目的吗?


问题答案:

rect可能是做到这一点的最佳方法(假设您只处理最简单的文本形式)。

tspan在SVG
1.1中本身没有“背景”,背景是在tspan之前绘制的任何东西。有许多情况需要考虑,例如tspan在具有圆形形状的textPath内。另请注意,在所有情况下,它都不像连续矩形那样简单,由于变换,字形定位等原因,单个tspan可以倾斜,旋转并划分为多个相交和不相交的形状。

我可以想到的另一种方法是无需编写脚本即可执行此操作,但是您需要事先知道字符串的宽度(例如,使用等宽字体)。如果有的话,则可以使用Ahem字体添加另一个tspan元素,将其放置在文档中其他tspan之前,并为其赋予x,y位置与要设置“背景”的tspan相同。

否则,执行此操作的方法是通过编写脚本并添加矩形(或带有类似Ahem的字体的tspans)。



 类似资料:
  • 我想为整个SVG文档设置一个默认背景色,例如红色。 上面的解决方案是可行的,但不幸的是style属性的background属性不是标准属性:http://www.w3.org/tr/SVG/styling.html#svgstylingproperties,因此在使用SVG Cleaner进行清理的过程中会将其删除。 这个底色有没有另外一种申报方式?

  • 问题内容: 假设我们有一个非常简单的场景 这是样式: 事情是…当我向其中添加内容时,应该拉下父div,我们需要看到红色背景…问题是,我看不到红色背景充满了所有高度。 问题答案: 当子元素浮动时,它们将从文档流中删除。这样做时,父级将不再具有定义的尺寸,因为子级在技术上不会占用空间。因此,父元素自身折叠。当绝对定位子元素时,也会发生相同的情况。 在这种情况下,我们可以通过添加到父元素来修复它,从而强

  • 问题内容: 如何使用JavaScript 获取任何元素(例如)的背景颜色?我努力了: 问题答案: 与所有包含连字符的css属性一样,它们在JS中的对应名称是删除连字符并使用以下字母大写:

  • 本文向大家介绍使用CSS设置元素的背景色,包括了使用CSS设置元素的背景色的使用技巧和注意事项,需要的朋友参考一下 要设置元素的背景色,请使用background-color 属性。 示例 您可以尝试运行以下代码,以了解如何使用background-color属性:

  • 我有两个推特引导3容器。第一个容器内部有一个简单的图像,第二个容器包含从 The Loop 加载的一些文本。我希望第二个容器与第一个容器稍微重叠一点。 我尝试为第二个容器设置一个负的,为第一个容器设置一个负的。它可以工作,至于移动文本,但是第二个容器的只是不与图像重叠。只有文本会这样做。 看起来好像第二个容器的消失在第一个容器的图像下。 你能帮我一下吗?我希望第二个容器的< code>backgr

  • 问题内容: 我想在其CSS包含特定背景色的情况下选择一堆。我该如何实现? 问题答案: 如果我正确理解问题,则选择器 将不起作用, 因为其中不包含“ background- color”属性。您可以快速进行测试以确认它不匹配任何内容: 给出: 这里有一个片段, 将工作 :