CSS更改<path>的d属性

use*_*418 13 css svg

我有一个生成的svg路径代码,我想用CSS文件覆盖它来改变svg形状.我可以覆盖除'd'之外的所有属性:

这是生成的代码(我无法直接更改):

<div id="map_outer" style="position: absolute; left: 3px; z-index: 1;">
<svg height="35" version="1.1" width="35" xmlns="http://www.w3.org/2000/svg" style="overflow: hidden; position: relative;"><desc style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">Created with Raphaël 2.1.0</desc>
<defs style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</defs>
<path fill="#cecece" stroke="#808080" d="M503.7,743.8C694,647.1999999999999,636.6,326.74999999999994,348.1,334.09V205.39L120.00000000000003,400.39L348.1,606.19V474.59000000000003C589,469.09000000000003,578,677.3900000000001,503.70000000000005,743.8900000000001Z" stroke-width="40" stroke-opacity="1" fill-opacity="1" transform="matrix(0.05,0,0,0.05,-1.9,-5.7)" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); stroke-opacity: 1; fill-opacity: 1; cursor: pointer;">
</path>
</svg>
</div>
Run Code Online (Sandbox Code Playgroud)

我得到的是覆盖d值的CSS

未知的属性名称

在CSS检查员!:

在此输入图像描述

#map_outer svg path{
    fill: rgb(255, 204, 0) !important;
    d:"M 850 300 C 850 300 350 300 350 300 L 348.1 205.39 L 120 400.39 L 348.1 606.19 L 350 500 C 850 500 850 500 850 500 z" !important;
    stroke-width: 0;
}
Run Code Online (Sandbox Code Playgroud)

bre*_*ial 19

你几乎在这里正确的轨道,你只需要为该属性设置正确的值.它缺少路径('..'):

#map_outer svg path {
    d: path('M 850 300 C 850 300 350 300 350 300 L 348.1 205.39 L 120 400.39 L 348.1 606.19 L 350 500 C 850 500 850 500 850 500 z') !important;
}
Run Code Online (Sandbox Code Playgroud)

  • 一旦Chrome实现d https://bugs.chromium.org/p/chromium/issues/detail?id=652822的正确语法,这将会破坏 (5认同)
  • 它目前仅适用于基于 Chrome 的浏览器,在其他任何地方都无法使用。(但无论如何,@brendonofficial!) (3认同)
  • 哎呀,它仅适用于Chrome,而不适用于FF (3认同)
  • 我不知道那个把戏,不错的。我想要`&lt;script&gt;document.body.onload=function(){document.getElementById("map_outer").getElementsByTagName("path")[0].setAttribute("d", "M 0 0 L 0 50 L 50 50")};&lt;/script&gt;` 方式。 (2认同)