SVG、文本、固定宽度/高度的字体

2024-04-03

我试图让 SVG“文本”元素适合 svg“矩形”元素。例如在下面的示例中,我使用了 5 个字符的等宽文本,字体大小为 100px,并且我希望有一个靠近文本的边框。

但文本右侧有一个空白。

<svg xmlns="http://www.w3.org/2000/svg" height="200" width="1000">
    <text x="10px" y="110px" style="font-family:monospace;font-size:100px;">HELLO</text>    
    <rect x="10px" y="10px" width="500px" height="100px" style="stroke:blue;fill:none;"/> 
</svg>

我应该为“text”元素使用什么 CSS 选择器?

注意:我不想使用路径上的文本方法。只是具有固定大小的字体。

Thanks;


字体的大小决定了它的大小height,不是它的宽度;而且字符很少是方形的。

据我所知,没有办法通过 CSS 可靠地确定等宽文本的宽度。

嗯,CSS3 有ch unit http://www.w3.org/TR/css3-values/#ch-unit,这是宽度0特点。这适用于等宽文本。但 SVG 不支持它。

当然,您可以设置固定的像素宽度。 300 像素的宽度适合我。但是,如果其他人使用不同的等宽字体,则固定宽度可能会被关闭。如果您添加font-family:monospace;font-size:100px; on the <rect>您也可以设置矩形的宽度ems。但我不认为这更可靠。

但是,您可以使用脚本。您可以使用getComputedTextLength() http://www.w3.org/TR/SVG/text.html#__svg__SVGTextContentElement__getComputedTextLength获取 a 的文本长度文本元素 http://www.w3.org/TR/SVG11/text.html#TextElement:

<script type="text/javascript">
document.getElementById('rect').setAttribute(
    'width',
    document.getElementById('text').getComputedTextLength()
);
</script>

至少在 Opera 10、Firefox 3.5 和 Safari 4.0 中可以将其添加到 SVG 末尾(并添加适当的元素 ID)。

当你这样做时,你可以使用getBBox()同样,获取文本元素的边界框,以便您可以设置矩形的高度以匹配字体大小,以防您决定更改字体大小。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SVG、文本、固定宽度/高度的字体 的相关文章

  • chrome 中选择选项元素的额外填充

    我有一个选择元素 用户可以在其中选择分类和描述 仅在 Chrome 浏览器中 我有一个额外的填充 无法使用 padding 0 或其他 css 标签删除它 Chrome 的屏幕 https i stack imgur com m3iIb p
  • 重新创建 CSS3 过渡三次贝塞尔曲线

    在 CSS3 过渡中 您可以将计时函数指定为 cubic bezier 0 25 0 3 0 8 1 0 在该字符串中 您仅指定曲线上点 P1 和 P2 的 XY 因为 P0 和 P3 始终分别为 0 0 0 0 和 1 0 1 0 根据苹
  • 从字体到跨度(大小和颜色)和背面的正则表达式(VB.NET)

    我正在寻找一个正则表达式 可以将我的字体标签 仅具有大小和颜色属性 转换为具有相关内联CSS的span标签 如果有帮助的话 这将在 VB NET 中完成 我还需要一个正则表达式来实现相反的效果 下面详细说明的是我正在寻找的转换示例 font
  • Gmail 无法在电子邮件上正确呈现字体

    我已经建立了一个 html 电子邮件并使用了 Google 字体 我已使用以下方法将字体包含在 head 标签中 if mso endif 并使用字体 即我这样做了
  • CSS使背景图像使用字体字符

    我想使用字体字符 例如来自 font awesome 作为输入元素的背景图像
  • 如何在日期选择器中设置不在当前月份的单元格的样式

    我目前正在为我的 JavaFX 应用程序制作注册表 问题是 当日期选择器中的单元格不在页面的月份上时 我想让该单元格变灰 让我们看看我当前的日期选择器 我的日期选择器 正如您所看到的 我希望下个月的日期 27 日 28 日 30 日以及 1
  • 如何在bootstrap中默认隐藏侧边栏?

    我在这里有一个很好的参考 作为 Bootstrap 在设计 Web 表单应用程序时的侧边栏 http startbootstrap com template overviews simple sidebar http startbootst
  • 如何强制折断不可折断的字符串?

    我有一个根据数据库中包含的数据生成的 HTML 页面 数据库有时包含浏览器无法分解的长字符串 因为这些字符串不包含可分解的字符 空格 点 逗号等 有没有办法使用 html css 甚至 javascript 来解决这个问题 看到这个link
  • 如何使用网格分割图像并保留透明度边界框

    我有一些 png 图像 我想将其分成几个部分 例如按网格或大小 但每个部分应具有与原始图像相同的边界框 透明度 Example 将图像分成两部分 原来的 200 89 Output 部分 1 png 200 89 第2部分 png 200
  • 水平对齐输入字段

    我正在尝试获取一个输入字段 并且它与同一水平线上的关联提交按钮相关 但事实证明这是一个挑战 这是我的代码
  • 如何在文本区域中使用除“文本插入符号”之外的透明字体?

    我有一个简单的文本区域 我需要制作透明字母 同时允许文本插入符可见 当我应用以下规则时 我会得到隐形插入符 textarea background transparent opacity 0 当我键入不可见文本时 我需要看到文本插入符移动
  • 将父容器扩展至 100% 高度以容纳浮动内容

    我正在为一个客户项目而苦苦挣扎 我的全部divs 没有绝对定位 height 100 for html body 和容器divs 但静态内容未达到其内容 在 910 像素处 我可以将溢出属性更改为auto 并且背景会继续向下到内容的末尾 但
  • R 中 SVG 图形的最佳设备? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想从 R 导出 SVG 图形 似乎有两种选择 RSvgDevice 和 Cairo 有人可以对这些包发表评论吗 是默认的还是明显比另一个
  • 单屏上支持多种语言的 Android 字体

    我是安卓新手 我正在实施一个应用程序 该应用程序将采用英语和乌尔都语两种语言 基本上会有一些阿拉伯语文本 其含义将根据用户选择的语言为英语或乌尔都语 我想更改阿拉伯语文本的字体 如果我在整个应用程序中应用字体 它也会改变乌尔都语和英语的外观
  • Textmate“注释”命令对于 css 代码无法正常工作

    当我在 TextMate 中切换 CSS 源代码的注释时遇到一些问题 Using the shortcut CMD I activate the Comment Line Selection command from the source
  • WordPress 包含 SVG 文件错误

    我使用 PHP 和 WordPress 在本地主机上 我可以毫无问题地包含 SVG 文件 但在实时服务器上 我尝试包含一个 SVG 文件以便能够使用 CSS 对其进行样式设置 我收到此错误消息 Parse error syntax erro
  • 如何并排放置两个

    我有两个 div 我想要并排放置的元素 如下所示 navigation content 我想要导航 div 根据需要尽可能大 但不能更大 收缩以适应行为 内容 div 然后应该填充剩余的空间 如何在不指定百分比 例如 20 80 的情况下使
  • 如何在背景剪辑中包含文本装饰:文本;影响?

    我在用 webkit background clip text border and color transparent在锚标记上 下划线似乎永远不可见 我想要的是将文本装饰包含在背景剪辑中 这是我的CSS background clip
  • 覆盖并重置 CSS 样式:auto 或 none 不起作用

    我想覆盖为所有表定义的以下 CSS 样式 table font size 12px width 100 min width 400px display inline table 我有一个特定的表 其类名为 other 最后的餐桌装饰应该是这
  • 我可以停止 :hover 应用于元素吗?

    假设我有一些 CSS button hover font weight bold 我怎样才能防止 hover随意应用样式 我的目标用例是当元素被禁用时 例如 使用这个 HTML

随机推荐

  • 有没有办法获得 typeof Func

    简洁版本 我们可以得到typeofFunc
  • R 2.14 字节编译 - 为什么不呢?

    为什么我不对我安装的所有软件包进行字节编译 字节编译是否会产生一些后果 使其成为需要考虑的决定 一个缺点是您无法调试字节编译的代码 另一方面 一旦 代码已准备好用于生产 理论上您不需要它 如果需要 您可以重新安装它而不进行字节编译
  • google.script.run.withSuccessHandler 不返回值

    这让我抓狂 代码昨天还可以工作 但现在不行了 我尝试再次检查所有语法 但问题仍然存在 来自 Google Sheets 的此服务器端请求显示服务器端的值 Logger log 但返回null在客户端 function supervisorL
  • perl,使用 IO::Select 和 IO::Socket::INET 读取阻塞

    该服务器工作正常 但如果我这样做 bash echo n abcd sleep 50 echo efgh 数控本地主机 9090 服务器阻塞 50 秒 在我的完整代码中 我有不止一个IO Select INET 我有另一个套接字侦听其他端口
  • 生成访问令牌并通过 Azure API 管理针对 IdentityServer4 进行验证

    我有一个外部端点 它将访问 Azure API 网关 并将其路由到受 IdentityServer4 授权保护的后端 API 如果我使用来自 IdentityServer 的交互式 UI 通过 Postman 客户端访问它 我就会获得访问令
  • 如何在nmake中转义空白

    我正在尝试使用 nmake 调用 MSTest TEST VS90COMNTOOLS IDE MSTest exe test TEST testcontainer Test dll 当我运行 nmake 时我得到 nmake test C
  • 0x800a1391 - JavaScript 运行时错误:“WinJS”未定义

    我已经从下载了代码CodePlex http codeshow codeplex com 然后我安装 live telerik 等的 sdk 安装后我运行代码并收到以下错误 0x800a1391 JavaScript runtime err
  • 从node.js访问memcached的简单方法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想知道是否有一个好的驱动程序或本机实现可以将 node js 直接连接到 memcached 这是我使用几个node memcach
  • 如何通过 Google BigQuery 的 Python 客户端库设置现有表过期?

    使用官方的Google BigQuery 的 Python 客户端 https googleapis dev python bigquery latest index html似乎没有办法设置桌子expires 或其他属性 上existin
  • 如何管理访问 Django REST API 的权限?

    我正在构建一个公开 REST API 的 Django 应用程序 用户可以通过该 API 查询我的应用程序的模型 我正在按照说明进行操作here http www django rest framework org tutorial qui
  • UJS、AJAX、Rails 4、form_for collection_select 将值传递到方法并将值返回到表单

    我对 Rails 非常陌生 因此在一起处理 AJAX UJS 和 Rails 时遇到很多困惑 我查看了railscast 几个SO答案 尝试了freenode上的 rubyonrails IRC频道 唉 我还是被困住了 无论如何 这是我的问
  • MVC 和 WebForms 之间共享大师 - 处理

    我们有一个大型遗留应用程序 我们希望开始使用 MVC 来实现新功能 为此 我们添加了自定义路由 例如 routes IgnoreRoute allaspx new allaspx as pmh x 我们希望在旧的 WebForms 和新的
  • 闪烁动画WPF

    我有这个动画 一种闪烁动画 这样当单击按钮时 矩形就会 闪烁 我已经写了一个动画代码 只是想知道是否有更好的方法来实现这个动画 有什么建议么 代码如下
  • Math.Tan() 接近 -Pi/2 在 .NET 中错误,在 Java 中正确?

    我的单元测试失败了Math Tan PI 2 在 NET 中返回错误版本 预期 值取自 Wolfram 在线 使用 Pi 2 的拼写常数 自己看看here http www wolframalpha com input i tan 28 1
  • 如何在 IntelliJ 中移动工具栏?

    如何将 IntelliJ 中的工具栏从右上角移动到左上角 单击主菜单 查看 工具栏
  • JQuery 设置本地存储变量

    我在获取本地存储变量来存储正确的值时遇到一些问题 它的要点是我想显示局部变量的内容 然后如果用户单击 它会从 xml 文件中提取数据 并将其保存到局部变量中 问题是 它没有正确保存到局部变量 我尝试了多种语法来让它工作 但我没有想法 它的测
  • 有元数据驱动的 UI 示例代码吗?

    我正在设计一个使用元数据驱动 UI 的 net windows 窗体应用程序 除了寻找http msdn microsoft com en us library ms954610 aspx http msdn microsoft com e
  • 通过 javascript 录制网站的内部音频

    i made 这个网络应用程序 https sky music herokuapp com songComposer html为了创作音乐 我想添加一个功能来将作品下载为 mp3 wav whateverFileFormatPossible
  • java.lang.OutOfMemory错误:

    我正在尝试根据从数据库检索的字节创建视频文件 该程序在几个小时前就运行良好 上传大文件后 当我尝试检索它时 它会产生错误java lang OutOfMemoryError 我的代码是 conn prepareConnection Stri
  • SVG、文本、固定宽度/高度的字体

    我试图让 SVG 文本 元素适合 svg 矩形 元素 例如在下面的示例中 我使用了 5 个字符的等宽文本 字体大小为 100px 并且我希望有一个靠近文本的边框 但文本右侧有一个空白