Colors 为什么传单setStyle({color:";FFFFFF";})使事物变黑而不是变白?

Colors 为什么传单setStyle({color:";FFFFFF";})使事物变黑而不是变白?,colors,leaflet,Colors,Leaflet,我有一个给定的多边形图层,我在上面调用setStyle(style),样式是{“color”:“FFFFFF”,fillColor:“ffffffff”}。在调用之后,该特性有我在创建期间给它的默认颜色(即使这不是该图层在调用setStyle()之前的样式) 我不确定我可以在这里分享什么代码来演示这个问题,它实际上只是一个函数调用。有人知道为什么会发生这种情况吗?我应该检查哪些东西来诊断发生了什么 编辑: chrome开发工具的屏幕截图显示了正在进行的操作。左侧的黑色多边形现在应该设置为白色,但

我有一个给定的多边形图层,我在上面调用
setStyle(style)
,样式是
{“color”:“FFFFFF”,fillColor:“ffffffff”}
。在调用之后,该特性有我在创建期间给它的默认颜色(即使这不是该图层在调用
setStyle()
之前的样式)

我不确定我可以在这里分享什么代码来演示这个问题,它实际上只是一个函数调用。有人知道为什么会发生这种情况吗?我应该检查哪些东西来诊断发生了什么

编辑:

chrome开发工具的屏幕截图显示了正在进行的操作。左侧的黑色多边形现在应该设置为白色,但它改为灰色(创建时的原始颜色)


TL;DR:您使用的是
颜色:“FFFFFF”
,但您应该使用
颜色:“\FFFFFF”
,或
颜色:“白色”


“FFFFFF”
字符串不再有效

曾几何时,浏览器在CSS颜色定义时使用回退技术。如今,这种行为似乎在大多数浏览器中被弃用,因为浏览器将回退到他们选择的颜色

传单正在将颜色传递到SVG路径(或画布绘制调用),例如

…将在DOM上生成一个SVG元素,如下所示

<path class="leaflet-interactive" stroke="FFFFFF" stroke-opacity="1" stroke-width="10" stroke-linecap="round" stroke-linejoin="round" fill="FFFFFF" fill-opacity="1" fill-rule="evenodd" d="M304,405a100,100 0 1,0 200,0 a100,100 0 1,0 -200,0 "></path>

…浏览器无法理解这些颜色,很可能会退回到无笔划和黑色填充,如下所示:

这并不是SVG元素所独有的;试试这个,它将返回到透明背景和黑色文本:


我应该是青色背景上的红色文本
这可能是您的代码中的一个结构性问题,即在调用
setStyle
的地方,是否也调用了一些其他函数来重置样式。您能否提供相关代码的代码沙盒/代码笔,以便我们可以查看并尝试诊断该问题?有很多问题移动部件以尝试在代码笔中重新创建安装程序,但我可以从chrome开发工具中看出,它是100%将其设置为该精确函数调用中的默认值。没有其他任何东西同时调用任何类似的函数,或者在我更改它之后。Hmmm,如果没有看到更多代码,很难说出为什么它的行为不是expected。你确定用作参数的
style
对象是你认为的吗?是的。我将上传一个devtools的屏幕截图,以更好地显示发生了什么。看起来你正在设置
MapController
本身的
style
属性……你可以在那里看到你想要的值。什么是
MapController.getLayer
?它似乎没有返回您试图影响的
drawLayer
?就是这样!我知道我必须缺少一些简单的东西,否则传单中的某些内容会出错。感谢您的关注,我已经在程序中使用了“for”作为其他颜色,只是没有注意到我在是这个吗
<path class="leaflet-interactive" stroke="FFFFFF" stroke-opacity="1" stroke-width="10" stroke-linecap="round" stroke-linejoin="round" fill="FFFFFF" fill-opacity="1" fill-rule="evenodd" d="M304,405a100,100 0 1,0 200,0 a100,100 0 1,0 -200,0 "></path>