【发布时间】:2018-08-20 15:15:11
【问题描述】:
背景:
我正在运行一个快速服务器,其中包含指向我所有静态文件的路由。
在静态文件中,我有一个充满地图.svg 的文件夹。
在客户端 (React),我获取地图并将它们添加到组件中。
问题:
我需要重写.svg,并将其添加到它们的路径属性中:fill=url(#some_flag)。
Svg 之前:
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="1024pt" height="1024pt" viewBox="0 0 1024 1024"
preserveAspectRatio="xMidYMid meet">
<g transform="translate(0,1024) scale(0.1,-0.1)"
fill="#000000" stroke="none">
<path d="... numbers...-78 -28 -115 "/>
</g>
</svg>
Svg 之后:
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="1024pt" height="1024pt" viewBox="0 0 1024 1024"
preserveAspectRatio="xMidYMid meet">
<g transform="translate(0,1024) scale(0.1,-0.1)"
fill="#000000" stroke="none">
<path d="... numbers...-78 -28 -115"
fill="url(#some_flag)"/> <!--THE ADDED ATTRIBUTE -->
</g>
</svg>
我想到了几个方向:
Pure Javascript:
setAttributeofpath,这意味着我必须给每个路径一个 id?不知何故用 CSS 穿透
.svg? 我试过了,它不可能覆盖内联 SVG 属性
您以前处理过它吗(当然...)?我有哪些选择?
【问题讨论】:
-
即使没有 ID 也可以在 DOM 中获取元素
-
谁说你不能:)?我只是大声思考什么是最好的做法。当然,您几乎可以定位 DOM 内的任何内容。但最好保持简单、干净和健壮。