svg 相关问题

可缩放矢量图形(SVG)是一种基于XML的二维矢量图形格式,也可以在HTML中使用。不要仅仅因为您的项目使用SVG而添加此标记。相反,如果您的问题是关于SVG或与其密切相关的问题,请添加标记,例如如何使用SVG实现某些功能。

flutter:使用 svg 来实现持久的导航栏项目

列表_navbarItems = [ 持久底部导航栏项目( 图标:SvgPicture.asset( '图片/sofa_home.svg', 宽度:22, ), activeColorPrimary:ColorsConst.yellow, 标题:“家”, inactiveColorPrimary:ColorsCo...

回答 1 投票 0

使用 svg-captcha npm 验证验证码

我正在使用 svg-captcha 库(链接 npm),但是我找不到验证从用户发送到服务器的验证码的方法。 现在我可以用它来生成验证码并返回客户端。 这是我的代码: 应用程序....

回答 2 投票 0

SVG 文件未用作 CSS 遮罩

我想使用 SVG 文件作为某些图像的蒙版。然而,它并没有被使用,而是隐藏了整个图像。我单独包含它是为了检查路径是否错误,但作为图像......

回答 1 投票 0

将 svg 图像添加到资产 Swift xcode 后会翻转

所以,我有一张图像,当我打开它时 - 看起来不错 但是当我将它添加到项目中时,它变得颠倒了 我尝试向项目添加一个颠倒的图片(因此它再次旋转并变成......

回答 1 投票 0

无法将 SVG 移动到屏幕中央

因此,正如标题所示,当单击 SVG 的部分内容但没有成功时,我尝试将其移动到屏幕中心。 我不知道为什么会发生这种情况,因为我在不同的地方尝试过......

回答 2 投票 0

如何使用 svg 路径作为图标

我想要一个 svg 作为图标,但我不想将其作为单独的文件引用,如下所示: 我想要一个 svg 作为图标,但我不想将其作为单独的文件引用,如下所示: <link rel="icon" href="images/favicon.svg" sizes="any" type="image/svg+xml"> 我想将从 bootstrap 获得的这个图标作为图标,而无需下载它: <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-alarm-fill" viewBox="0 0 16 16"> <path fill-rule="evenodd" d="M6 .5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1H9v1.07a7.001 7.001 0 0 1 3.274 12.474l.601.602a.5.5 0 0 1-.707.708l-.746-.746A6.97 6.97 0 0 1 8 16a6.97 6.97 0 0 1-3.422-.892l-.746.746a.5.5 0 0 1-.707-.708l.602-.602A7.001 7.001 0 0 1 7 2.07V1h-.5A.5.5 0 0 1 6 .5zM.86 5.387A2.5 2.5 0 1 1 4.387 1.86 8.035 8.035 0 0 0 .86 5.387zM11.613 1.86a2.5 2.5 0 1 1 3.527 3.527 8.035 8.035 0 0 0-3.527-3.527zM8.5 5.5a.5.5 0 0 0-1 0v3.362l-1.429 2.38a.5.5 0 1 0 .858.515l1.5-2.5A.5.5 0 0 0 8.5 9V5.5z"/> </svg> 有办法做到这一点吗? 仅在 CSS url 中才需要转义 < 和 >。唯一需要转义的字符是颜色符号和链接中的# fill="currentColor" 什么也不做;仅当您在 <body> 中使用 SVG 时 sizes属性不是必需的,在我的实验中 并且不再需要 type 属性 说文档。 那些 Bootstrap 图标臃肿,可以通过增加路径和更改 viewBox 来变小 制作 HTML 文件:(在 SVG 中添加换行符仅用于演示目的) ##基本代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <link rel="icon" href="data:image/svg+xml,YOUR SVG HERE" /> </head> <body></body> </html> 完整代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 160'> <path d='M55 5a5 5 90 015-5h40a5 5 90 010 10h-10v11a70 70 90 0135 123l8 8a5 5 90 01-7 7l-9-9 a70 70 90 01-37 11a70 70 90 01-37-11l-9 9a5 5 90 01-7-7l8-8a70 70 90 0135-123v-11h-10 a5 5 90 01-5-5z m-46 49a25 25 90 1135-35a80 80 90 00-35 35z m126-44c-8 0-14 3-19 9a80 80 90 0135 35a25 25 90 00-16-44z m-50 40a5 5 90 00-10 0v39l-15 29a5 5 90 109 5l15-30a5 5 90 001-2v-40z'/> </svg>" /> </head> <body></body> </html> 尝试使用数据 URL。 <link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' class='bi bi-alarm-fill' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M6 .5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1H9v1.07a7.001 7.001 0 0 1 3.274 12.474l.601.602a.5.5 0 0 1-.707.708l-.746-.746A6.97 6.97 0 0 1 8 16a6.97 6.97 0 0 1-3.422-.892l-.746.746a.5.5 0 0 1-.707-.708l.602-.602A7.001 7.001 0 0 1 7 2.07V1h-.5A.5.5 0 0 1 6 .5zM.86 5.387A2.5 2.5 0 1 1 4.387 1.86 8.035 8.035 0 0 0 .86 5.387zM11.613 1.86a2.5 2.5 0 1 1 3.527 3.527 8.035 8.035 0 0 0-3.527-3.527zM8.5 5.5a.5.5 0 0 0-1 0v3.362l-1.429 2.38a.5.5 0 1 0 .858.515l1.5-2.5A.5.5 0 0 0 8.5 9V5.5z'/%3E%3C/svg%3E" sizes="any" type="image/svg+xml">

回答 2 投票 0

使用 RTL 语言时,Safari 渲染 svg 文本 tspan 的位置错误

当文本为 RTL 时,Safari 会忽略带有 的 tspan 位置并反转它们。 这是片段: <svg height="240" viewBox="0 0 120 120" xmlns="http://www.w3.org/2000/svg"> <!-- Border --> <rect width="120" height="120" style="stroke:pink;fill:white;stroke-width:3;" /> <path d="M60,5 L60,115 M5,60 L115,60" stroke="pink" /> <g transform="translate(60,0)"> <text x="60" y="60" tabindex="0" focusable="true" style="fill: rgb(96, 94, 92); font-family: 'Segoe UI', wf_segoe-ui_normal, helvetica, arial, sans-serif; font-size: 12px; text-anchor: middle;"> <tspan x="0" dy="0">دولة الإمارات العربية</tspan> <tspan x="0" dy="20" style="fill: lightsalmon">المتحدة</tspan> <title>دولة الإمارات العربية المتحدة</title> </text> </g> <style> <![CDATA[ text { font-weight: bold; } ]]> </style> </svg> 这是它在 Chrome 和 Firefox 中的样子: 但这就是它在 Safari 中的样子: Safari 似乎忽略了第二个 dy 的 tspan 属性,并且可能首先定位。这是 Safari 渲染引擎的问题还是有什么办法可以解决这个问题? ][3]][3] State 2023:显然,是一个 webkit(核心)问题(并非特定于 safari 的 webkit 实现) 我可以在使用这些基于 webkit 的浏览器运行 linux mint 的虚拟机中重现此错误: 网络/顿悟 绿 您应该报告的错误: Webkit 错误报告 苹果Safari 有关从右到左问题的相关 webkit 错误报告: “带有希伯来语文本的 SVG 错误移动” 解决方法:在“线”之间插入从左到右标记<tspan>: svg { height: 20em; font-family: sans-serif; } tspan { direction: rtl; } <svg viewBox="0 0 120 120" xmlns="http://www.w3.org/2000/svg"> <rect width="120" height="120" style="stroke:pink;fill:white;stroke-width:3;" /> <path d="M60,5 L60,115 M5,60 L115,60" stroke="pink" /> <text x="60" y="60" style="fill: rgb(96, 94, 92); font-family: 'Segoe UI', wf_segoe-ui_normal, helvetica, arial, sans-serif; font-size: 12px; text-anchor: middle;"> <tspan x="60" y="60" dy="0">دولة الإمارات العربية</tspan> <!-- left-to right mark --> <tspan dx="-0.5em" class="br">&#x200E;</tspan> <tspan x="60" dy="20" style="fill: lightsalmon">المتحدة</tspan> </text> </svg> 我们实际上是在伪线 <tspan> 元素之间从 从右到左切换到 从左到右。 dx="-0.5em"补偿了引入的额外空间(...尽管从右到左的标记/字符不应该占用任何空间)。 另请参阅 “如何在 SVG 中分隔从右到左的文本,且中间不包含英文字母?” 我不知道正确的行为应该是什么,但 Safari 显然对此有自己的想法。无论如何,如果您将每个 <tspan> 放入其自己的 <text> 元素中,它似乎可以在各种浏览器上实现您所期望的效果。 <svg height="240" viewBox="0 0 120 120" xmlns="http://www.w3.org/2000/svg"> <!-- Border --> <rect width="120" height="120" style="stroke:pink;fill:white;stroke-width:3;" /> <path d="M60,5 L60,115 M5,60 L115,60" stroke="pink" /> <g transform="translate(60,0)"> <text x="60" y="60" tabindex="0" focusable="true"> <tspan x="0" dy="0">دولة الإمارات العربية</tspan> <title>دولة الإمارات العربية المتحدة</title> </text> <text x="60" y="60" tabindex="0" focusable="true"> <tspan x="0" dy="20" style="fill: lightsalmon">المتحدة</tspan> </text> </g> <style> <![CDATA[ text { font-weight: bold; fill: rgb(96, 94, 92); font-family: 'Segoe UI', wf_segoe-ui_normal, helvetica, arial, sans-serif; font-size: 12px; text-anchor: middle; } ]]> </style> </svg> 总的来说,我经常发现 Safari 的 <tspan> 行为粗略。如果可以的话,我发现将文本元素保留在自己的 <text> 元素中,并将位置和样式直接附加到这些元素上更可靠。

回答 3 投票 0

如何从网站抓取 SVG 图像文件到 Excel 或桌面?

我想构建一个桌面背景(或Excel文件,然后是背景),从各个网站抓取免费信息并每天更新(或将来,更定期地在...

回答 1 投票 0

将自定义 SVG 图标添加到 Fluent UI 命令栏项目

我有多个命令栏项目需要自定义 SVG 图标,但无论我做什么,我都无法让这些图标为我的生活服务。 这是我注册为图标的 SVG: 注册图标({ 我...

回答 1 投票 0

React 中不显示多条折线

我正在尝试创建一个应用程序来练习绘制汉字。我正在使用 svg 来绘制线条。我可以画一条折线,但它都是相连的。我需要绘制多条单独的线。我正在使用...

回答 1 投票 0

页面加载期间SVG动画优先级

在页面加载期间,我的网站上有一个 SVG 动画叠加层。当所有内容加载完毕后,它会被隐藏。如何让动画运行流畅?我宁愿加载时间长一点,也不愿...

回答 1 投票 0

为什么我的 Javascript 在尝试切换类时不起作用?

当我尝试应用这段代码时,它本身运行得很好, 当我尝试应用这段代码时,它本身运行得很好, <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>SVG Toggle Class</title> <style> .ces-smiley { cursor: pointer; transition: stroke-width 0.3s, stroke 0.3s; } .selected { stroke-width: 2; stroke: red; } .inactive { /* Define your inactive styles here */ opacity: 0.5; } </style> </head> <body> <div class="ces-smileys"> <svg class="ces-smiley-zma ces-smiley inactive" height="100" viewBox="0 0 100 100" width="100" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="green"></circle> </svg> <svg class="ces-smiley-mak ces-smiley inactive" height="100" viewBox="0 0 100 100" width="100" xmlns="http://www.w3.org/2000/svg"> <rect x="10" y="10" width="80" height="80" stroke="black" stroke-width="3" fill="blue"></rect> </svg> <svg class="ces-smiley-neu ces-smiley inactive" height="100" viewBox="0 0 100 100" width="100" xmlns="http://www.w3.org/2000/svg"> <polygon points="50,5 90,90 10,90" stroke="black" stroke-width="3" fill="yellow"></polygon> </svg> <svg class="ces-smiley-moe ces-smiley inactive" height="100" viewBox="0 0 100 100" width="100" xmlns="http://www.w3.org/2000/svg"> <ellipse cx="50" cy="50" rx="40" ry="20" stroke="black" stroke-width="3" fill="orange"></ellipse> </svg> <svg class="ces-smiley-zmo ces-smiley inactive" height="100" viewBox="0 0 100 100" width="100" xmlns="http://www.w3.org/2000/svg"> <line x1="10" y1="10" x2="90" y2="90" stroke="black" stroke-width="3"></line> </svg> </div> <script> // Select all SVG elements with the class "ces-smiley" var svgs = document.querySelectorAll('.ces-smiley'); // Add click event listener to each SVG element svgs.forEach(function(svg) { svg.addEventListener('click', function() { // Remove the 'selected' class from all SVG elements svgs.forEach(function(svg) { svg.classList.remove('selected'); svg.classList.add('inactive'); // Add 'inactive' class to all SVGs }); // Add the 'selected' class to the clicked SVG element and remove 'inactive' class this.classList.remove('inactive'); this.classList.add('selected'); }); }); </script> </body> </html> 到我的网页:https://www.salland.nl/?bctest 代码不起作用(要查看代码在哪里使用,您首先必须单击左侧的紫色按钮,然后单击之后的表格,然后您会看到我想要切换的课程(笑脸)) 我安慰了 Chat GPT,检查了所有的类、控制台并在网上寻找答案,希望能找到一些东西来帮助我修复它。到目前为止还没有成功。 试试这个代码: var svgs = document.querySelectorAll('.ces-smiley'); svgs.forEach(function(svg) { svg.addEventListener('click', function() { svgs.forEach(function(svg) { svg.classList.remove('selected'); }); this.classList.add('selected'); }); }); .ces-smiley { cursor: pointer; transition: stroke-width 0.3s, stroke 0.3s; opacity: 0.5; } .ces-smiley.selected { stroke-width: 2; stroke: red; opacity: 1; } <div class="ces-smileys"> <svg class="ces-smiley-zma ces-smiley" height="100" viewBox="0 0 100 100" width="100" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="green"></circle> </svg> <svg class="ces-smiley-mak ces-smiley" height="100" viewBox="0 0 100 100" width="100" xmlns="http://www.w3.org/2000/svg"> <rect x="10" y="10" width="80" height="80" stroke="black" stroke-width="3" fill="blue"></rect> </svg> <svg class="ces-smiley-neu ces-smiley" height="100" viewBox="0 0 100 100" width="100" xmlns="http://www.w3.org/2000/svg"> <polygon points="50,5 90,90 10,90" stroke="black" stroke-width="3" fill="yellow"></polygon> </svg> <svg class="ces-smiley-moe ces-smiley" height="100" viewBox="0 0 100 100" width="100" xmlns="http://www.w3.org/2000/svg"> <ellipse cx="50" cy="50" rx="40" ry="20" stroke="black" stroke-width="3" fill="orange"></ellipse> </svg> <svg class="ces-smiley-zmo ces-smiley" height="100" viewBox="0 0 100 100" width="100" xmlns="http://www.w3.org/2000/svg"> <line x1="10" y1="10" x2="90" y2="90" stroke="black" stroke-width="3"></line> </svg> </div>

回答 1 投票 0

在 Avalonia 中绘制 svg 图标

我在使用 FluentAvalonia v2.0.5 框架在 avalonia v11.0.6 中渲染 SVG 图标时遇到一些问题。 示例 svg: 我在使用 FluentAvalonia v2.0.5 框架在 avalonia v11.0.6 中渲染 SVG 图标时遇到一些问题。 示例 svg: <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12.3101 16H16.3101M12.3101 16H5.31006C4.77963 16 4.27092 15.7893 3.89584 15.4142C3.52077 15.0391 3.31006 14.5304 3.31006 14V6C3.31006 5.46957 3.52077 4.96086 3.89584 4.58579C4.27092 4.21071 4.77963 4 5.31006 4H19.3101C19.8405 4 20.3492 4.21071 20.7243 4.58579C21.0993 4.96086 21.3101 5.46957 21.3101 6V8.24454M12.3101 16V20M12.3101 20H16.3101M12.3101 20H8.31006" stroke="#202020" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> 代码使用: xmlns:ui="using:FluentAvalonia.UI.Controls" <ui:FAPathIcon Data="M12.3101 16H16.3101M12.3101 16H5.31006C4.77963 16 4.27092 15.7893 3.89584 15.4142C3.52077 15.0391 3.31006 14.5304 3.31006 14V6C3.31006 5.46957 3.52077 4.96086 3.89584 4.58579C4.27092 4.21071 4.77963 4 5.31006 4H19.3101C19.8405 4 20.3492 4.21071 20.7243 4.58579C21.0993 4.96086 21.3101 5.46957 21.3101 6V8.24454M12.3101 16V20M12.3101 20H16.3101M12.3101 20H8.31006" /> 预期输出: 实际输出: 据我了解,问题是我无法将填充设置为“无”作为渲染规则,而且我不知道如何实现这一点。 问题是我如何在 avalonia 中绘制此类或类似的 svg 图标。 我安装了 Avalonia.Svg.Skia 软件包以便在 Avalonia 项目中使用 Svg 图像。 您可以轻松地在 Rider 或 Visual Studio 等现代 IDE 中添加此包。 安装后,您可以在 Avalonia 应用程序中使用 Svg 图像,如下所示: <Svg Path="/Assets/__AJ_Digital_Camera.svg"/> 该软件包还支持许多其他功能,您可以查看上面的链接以获取更多有用的信息。

回答 1 投票 0

修改SVG路径厚度

我想修改 bootstrap 4 复选框勾选 SVG 路径编号,但我不知道如何修改这些数字来实现此目的。 ...

svg
回答 2 投票 0

在NextJS中,引用包含SVG的外部npm包时如何构建?

我的 nextjs 项目(我们称之为 TheHost)引用了另一个 npm 包(我们称之为 ThePackage)。 在 TheHost 中定义时,SVG 加载正常,但导入 ThePackage 失败,因为 next 尝试

回答 2 投票 0

将 SVG 节点(Macaw)转换为 NSImage Swift4 / Cocoa

我正在尝试将 Macaw SVG(节点)转换为 NSImage。我能够在 Macaw 论坛上找到 IOS 的示例代码,但无法使其在 Cocoa 中运行。 金刚鹦鹉里有参考文献

回答 2 投票 0

根据 MAUI 中的滑块值动态更改图像中的水位

我正在开发一个 MAUI(Microsoft .NET 多平台应用程序 UI)应用程序,其中有一张代表一杯水的图像。我想根据...

回答 1 投票 0

如何将 Font Awesome IconDefinition 转换为 Kendo UI SVGIcon

Kendo UI 最近刚刚在其小部件中默认使用 SVG 图标(链接),但他们的图标选择不是很好。我想改用 FontAwesome 图标,但它们有差异...

回答 2 投票 0

使用变换使 SVG 可缩放

我正在尝试使用鼠标使 SVG 的一部分可拖动和缩放,但失败了。拖动有效,但缩放不起作用。我基本上从这里窃取了大部分代码。 var makeDraggable = (

回答 1 投票 0

SVG 中的文本元素可以完美地定位自身,尽管有固定值

我正在查看 circliful.js 的源代码,发现了以下代码行: ' 我正在查看 circliful.js 的源代码,发现了以下代码行: '<text class="timer" text-anchor="middle" x="' + textX + '" y="' + textY + '" style="font-size: ' + settings.percentageTextSize + 'px; ' + additionalCss + ';' + settings.textAdditionalCss + '" fill="' + settings.fontColor + '">0%</text>' 假设textX和textY的值分别是常数175和35,为什么当圆的宽度改变时,图标的位置保持不变? 基本上,上面的代码行是您在this Fiddle中看到的百分比值,您在小提琴中看到的50%是上面的代码行。 所以当我有以下 CSS 时: #circli { max-width: 400px; } 尽管 175 和 35 的值恒定,但 50% 的位置仍然位于同一位置,如果我像这样更改 CSS: #circli { max-width: 200px; } 尽管 50% 和 175 具有恒定值,但 35 的位置仍然相同。为什么会这样? SVG 中的元素是在恒定坐标系中定义的。您所做的只是更改 SVG 内部的 <div> 的大小。 SVG 会自动缩放以适合 div。 SVG 正在缩放,因为它有一个 viewBox。 viewBox 告诉渲染器 SVG 文档的限制是什么,并触发自动缩放。如果它没有 viewBox,它就不会自动调整大小。

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.