【发布时间】:2020-07-30 08:53:08
【问题描述】:
我想通过使用 CSS 更改 fill 来更改传单标记图标的颜色。我给了我的图标一个className 并试图用那个className 更改fill,但它不起作用。我用 L.DivIcon 和 L.icon 试过了。
我在我的代码中使用 Vue.js,下面的 JavaScript 代码在 mounted 中。
这是我的代码:
JavaScript:
var marker_box = L.marker([-5,-10], {
icon: L.icon({
className: 'my-box',
iconUrl: require('/Users/.../src/assets/box.svg'),
iconSize: [25, 25],
iconAnchor: [15, 10]
})
}).addTo(map);
CSS:
.my-box{
fill: red;
}
这是我的 svg 图标:
<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24">
<path d="M0 0h24v24H0z" fill="none"/>
<rect width="8.672" height="11.274" x="7.988" y="6.398" ry="0"
fill="#59f" fill-rule="evenodd" stroke="#000109"
stroke-width=".309" paint-order="fill markers stroke"/>
</svg>
【问题讨论】:
-
我不明白你为什么需要一个 svg 图标。您可以简单地添加一个空的
div并设置一个background-color:#4e2828和border: solid black 1px,在这种情况下更改背景颜色会容易得多。 -
欢迎来到 stackoverflow 社区 ;) 现在,具体来说,这应该可以工作
.my-box path {fill: red; }如果你想更改 rect,你需要这样做.my-box rect {fill: red; }只有fill="none"可能有问题所以最后加上 !Important 如果它不起作用。 -
@loicEzt 是的,这可能是一个选项,但我有其他复杂的图标,我想更改其颜色并且无法使用此方法。我只是为这个例子取了一个简单的图标。
-
@GrzegorzT。谢谢! :) 我试过 '.my-box path {fill: red; }' 和 '.my-box rect {fill: red; }' 但它也不起作用.. 而且我不明白,我与 'fill="none" ' 有什么关系?
标签: css vuejs2 colors leaflet icons