没有fill捕获指针事件所以它失败了.
简单的透明填充可以纠正它.
polygon {
stroke-width: 1;
stroke: red;
fill: transparent;
}
polygon:hover {
fill: red;
}Run Code Online (Sandbox Code Playgroud)
<svg viewBox="0 0 999 799">
<polygon points="445,161 345,174 500,10" />
<polygon points="445,161 345,174 500,270" />
</svg>Run Code Online (Sandbox Code Playgroud)
正如Robert Longson所说
pointer-events: visible是首选和高效的解决方案.
polygon {
stroke-width: 1;
stroke: red;
fill: none;
pointer-events: visible;
}
polygon:hover {
fill: red;
}Run Code Online (Sandbox Code Playgroud)
<svg viewBox="0 0 999 799">
<polygon points="445,161 345,174 500,10" />
<polygon points="445,161 345,174 500,270" />
</svg>Run Code Online (Sandbox Code Playgroud)