如何使用 Text 和 ForeignObject 元素在 SVG 中标记字体

已发表: 2022-12-04

在处理可缩放矢量图形 (SVG) 中的文本时,有几个不同的选项可供您使用。 一种方法是使用 SVG 的内置文本功能将文本直接绘制到 SVG 形状中。 这种方法适用于简单的文本标签,但如果您需要做任何更复杂的事情,例如环绕文本或包含超链接,那么您将需要使用不同的方法。 一种流行的方法是将该元素与 foreignObject> 元素结合使用。 foreignObject> 元素允许您在 SVG 中包含 HTML 元素,这让您在标签中包含的内容方面具有更大的灵活性。 这种方法还具有能够使用标准 CSS 设置标签样式的优点,这可以节省大量时间。 在这篇文章中,我们将看看如何使用和 foreignObject> 元素来标记 SVG 中的字体。 我们还将了解如何使用 CSS 设置标签样式,以及如何通过添加 ARIA 标签使标签更易于访问。

如何在 Svg 中嵌入字体?

如何在 Svg 中嵌入字体?
图片来源 – birdfont.org

要在SVG 文件中嵌入字体,首先需要在 svg 文件中定义 @font-face 规则。 然后,您可以使用 font-family 属性在 SVG 中使用该字体。

我们的公司品牌包含一种名为 metropolis 的字体,但外部用户(他们无权访问这些文件)访问的内容需要 .svg 文件。 有一种方法可以保存公司字体文件。 Times New Roman 是浏览器中的默认字体。 无法将字体放入 Inkscape 中。 无论如何,您都需要第二台机器来安装字体。 如果您使用的是浏览器,或者如果您添加了 <img> 标签,您可以检查 svg 文件的性能。 还有其他几种方法可以执行此程序。

您可以从我在这里发布的两个原始文件中复制格式。 顾名思义,它本质上是一样的:您使用的是安装了字体的系统。 必须指定字体系列以及svg 元素的线条样式。

您可以将文本放入 Svg 中吗?

您可以将文本放入 Svg 中吗?
图片来自 – etsystatic.com

使用 text> 元素时,您可以创建一个以文本为源的图形元素。 可以应用您用于文本的任何类型的渐变、图案、剪切路径、蒙版或滤镜,就像任何其他类型的SVG 图形元素一样。 在 SVG 中包含文本的元素不会出现在 text> 元素中。

两全其美的方法是使用SVG 文本。 它具有与其他图形元素相同的外观和感觉,允许您添加笔划并使用您喜欢的笔划和填充填充空间。 可以选择它、复制它并将它粘贴到其他地方。 屏幕阅读器可以阅读文本,搜索引擎可以找到它。 (0,0) 点通常位于框的左下角,但更常见的是沿着左边缘找到它。 为了每个em生成特定数量的坐标,EM框应该被分成若干个em。 这个数字是字体的典型特征,列在字符表中。

文本以与其他SVG 元素相同的方式呈现。 填充、描边,甚至重复使用来自多个元素的文本。 在这个例子中,我在标签中创建了一个 *.text* 元素。 为文本定义视口位置的 X 和 Y 属性已添加到其中。 该元素的定位是独一无二的,因为它允许您移动所有文本。 我们将讨论您可以做的一些事情来改进它的显示方式。 感谢您花时间阅读有关字形和字体的一些信息。 尽管如此,有一个坚实的基础有助于我们以后的理解。

这些元素让我们可以在使用 SVG rect> 和 text> 元素创建的矩形内写入文本。 这是创建标签和其他基于文本的图形的绝佳工具。 要创建基于文本的 SVG 图形,我们必须首先创建一个矩形和一个文本元素。 您可以使用绘制矩形和绘制文本主题了解有关绘制矩形和绘制文本的更多信息。 一旦我们设置好了这些,我们就可以开始写我们的文本了。

如何将文本放入 Svg 路径中​​?

如何将文本放入 Svg 路径中​​?
图片来源 – pinimg.com

有几种方法可以做到这一点,但最常见的是使用文本元素。 您可以使用 x 和 y 属性定位文本元素。 然后,要将文本放在曲线上,您可以使用 textPath 元素。 textPath 元素需要对路径元素的引用。 然后,您可以使用 startOffset 属性来控制文本在路径上的开始位置。

SVG 中的文本可以随意放置。 现在可以以多种方式显示文本。 创建带有路径的元素遵循定义已定义元素的路径,并且在 defs 标签内很简单。 在下面的第一个示例中,我使用文本路径 ID 来创建线性路径。 您可以设置 startOffset 属性以在初始文本位置偏移路径的开始。 您可以将长度定义为百分比,也可以定义为数字。 该数字表示当前坐标系与后者测量的距离之间的距离。

如果你不使用 startOffset,你甚至可以用同样的方式来做。 值 x 用于指示文本与路径平行和垂直的位置。 创建路径是最困难的步骤,但添加文本是最简单的。 如果您习惯于使用SVG 路径,那么最好的办法就是玩得开心。 下周,我将复习剩余的属性,最后向您展示一条弯曲的路径。


Svg 文本字体

Svg 文本字体
图片来源 – monogramsvg.com

SVG 文本字体是一种简单、干净、时尚的字体,非常适合任何网站或文档。 SVG 文本字体也易于阅读,非常适合任何需要快速阅读的文档。

它于 1999 年首次推出,作为设计人员使用他们想要的任何字体创建图形并使它们在浏览器中正确显示的一种方式。 18 年后,SVG 对字体的支持如何?让字体在其中正常工作的最佳实践是什么? 使用网络安全字体可确保 SVG 中使用的字体在大多数主要系统中显示。 网络安全字体可供任何人下载和使用,并为所有平台和系统共享。 由于越来越多的服务提供商(如 Google 字体、Font Squirrel 等),您现在可以在 SVG 中使用网络字体。

Svg 中字体的好处

这些只是可缩放矢量图形 (SVG) 字体。 因此,您无需下载单独的字体文件然后将其嵌入到可缩放矢量图形 (SVG) 文件中,而是可以自己创建可缩放矢量图形 (SVG) 字体。 因为 SVG 字体可以在任何支持它们的平台上使用,包括台式电脑、手机,甚至像 Inkscape 这样的矢量绘图应用程序,它们几乎可以在任何平台上使用。 尽管 SVG 中的字体仍处于早期开发阶段,但有一些独特的功能使它们有别于其他字体。 使用 SVG 字体时,您可以从实际嵌入到字符中的各种颜色、渐变或图案中进行选择。 因此,SVG 字体可用于创建传统字体文件无法实现的复杂、复杂的设计。 如果你想创建丰富且有质感的 SVG 设计,你应该考虑使用 sva 中的字体。

Svg 文本属性

SVG 文本属性使您可以控制SVG 文档中文本的外观。 您可以在元素上设置以下属性:alignment-baseline, baseline-shift, clip, clip-path, color, cursor, direction, display, dominant-baseline, fill, fill-opacity, font, font-family, font-size , 字体大小调整, 字体拉伸, 字体样式, 字体变体, 字体粗细, 字母间距, 不透明度, 溢出, 指针事件, 形状渲染, 描边, 描边-dasharray, 描边-dashoffset, 描边-linecap、stroke-linejoin、stroke-miterlimit、stroke-opacity、stroke-width、text-align、text-anchor、text-decoration、text-rendering、unicode-bidi、visibility、word-spacing、x、y。

什么是 Svg 属性?

元素属性可用于指定应如何根据其上下文处理或呈现 SVG 元素。 以下是 SVG 中所有可用属性的列表,以及参考文档的链接,可帮助您了解哪些属性支持哪些元素,以及它们如何工作。

Svg 字体系列不工作

如果您在使用 svg 字体系列时遇到问题,可以检查一些事项。 确保您使用的是正确的字体系列名称,并且您的系统上安装了该字体。 如果您仍然遇到问题,请尝试使用不同的字体系列名称。

Svg 图像:如何在网页和打印布局中使用它们

相对于.JPG图片,可以在网页中使用,。 SVG 图像可用于打印布局。 如果你想在网页中使用 SVG 图像,你需要包含一个 sva 文件。 要在打印布局中使用 svg 图像,您需要一种支持它们的字体。 您可以在任何支持 提供的字体的网络浏览器中使用 SVG 图像。 尽管如果您使用的浏览器不支持 SVG 图像,您可能无法正确看到它们,但它们应该仍然可见。 如果是这种情况,您可以尝试使用网络安全字体或 Google 网络字体。 因为大多数浏览器都支持这些字体,所以您的 sva 图像通常应该可以正确呈现。

Svg 文本颜色 Css

可以使用 CSS 中的“填充”属性设置SVG 文本元素的颜色。 默认情况下,颜色是从父元素继承的。

在 CodePen 中,您可以在 HTML 编辑器的上下文中编写任何需要的内容,包括基本 HTML5 模板中的标头和标签。 CSS 可以从 Internet 上的任何样式表应用到您的 Pen。 供应商前缀通常应用于必须可操作的属性和值。 您的 Pen 可以通过可以从 Internet 上的任何位置创建的脚本来控制。 当您将 URL 添加到它时,我们将按照您首先拥有它们的顺序添加它,在 Pen 中的 JavaScript 之前。 在申请之前,我们将尝试处理包含预处理器文件扩展名的脚本。

如何使用 Css 更改 Svg 元素的颜色

如果将 fill=”currentColor” 添加到svg 标签,将设置 svg 标签内内容的颜色。 如果您有此关键字(而不是固定颜色),稍后可以使用 CSS 更改颜色。 全局颜色属性可用于为 SVG 文件中的所有元素指定默认颜色。

如何在 Svg 路径中​​添加文本

要创建遵循路径的 SVG 文本,您可以使用 *textPath> 元素和您在 defs 标签中定义的路径。 可以使用 *textPath 标签的“textPath”部分中的 xlink:href 属性来引用该路径。 您会注意到在 SVG 2.0 中,没有 xlink: 而是将路径称为 href。

Svg 文字换行

SVG 文本环绕是可缩放矢量图形 (SVG) 格式的一项功能,它允许文本围绕图形环绕。 这对于创建基于文本的徽标或向图像添加标题非常有用。 所有主要浏览器都支持文本换行功能。

简而言之,无论您在 HTML 编辑器中编写什么,都会存储在基本 HTML5 模板的 HTML5 正文中。 CSS 可以从 Internet 上的任何样式表应用到您的 Pen。 如果你想要最好的跨浏览器支持,你应该在属性和值上使用供应商前缀。 您可以创建一个脚本,您可以使用 Pen 在 Internet 上的任何地方使用该脚本。 如果您在此处输入一个 URL,它将按照您拥有它的其他文件在 Pen 中的 JavaScript 中的顺序添加。 我们将尝试处理您链接的脚本的文件扩展名,以便在申请前对其进行处理。

Svg 文本没有宽度和高度

为什么 dosvg 有宽度? 创建sva 文本时,无法指定其宽度或高度。

Svg 文字大小

这个问题没有明确的答案,因为它在很大程度上取决于特定 SVG 文件的外观和感觉。 但是,一般情况下,通常建议使用相对字体大小(例如 em 单位)以确保在调整 SVG 文件大小时文本适当缩放。