代码之家  ›  专栏  ›  技术社区  ›  RaiuProGram

Svg evenoodd=“true”不起作用(用路径在Svg上打孔)

svg
  •  1
  • RaiuProGram  · 技术社区  · 5 月前

    我有这个代码:

    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 270 80">
        <path d="M 230 10 L 220 20 L 220 60 L 230 70 L 250 70 L 260 60 L 260 20 L 250 10 L 230 10" fill="#FF5500"/>
        <path d="M 235 20 L 230 25 L 230 55 L 235 60 L 245 60 L 250 55 L 250 25 L 245 20 L 235 20" fill-rule="evenodd"/>
    </svg>

    我想用第二条路来填补第一条路的空白。 这个洞必须是透明的,而不是黑色的。

    1 回复  |  直到 5 月前
        1
  •  2
  •   myf    5 月前

    正如罗伯特所说, fill-rule 属性仅对给定路径有影响,不影响其周围环境。为了使其工作,路径中必须有“外部”和“内部”路径段 d ata:

    <svg xmlns="http://www.w3.org/2000/svg" viewBox="200 0 270 80">
        <path d="M 230 10 L 220 20 L 220 60 L 230 70 L 250 70 L 260 60 L 260 20 L 250 10 L 230 10
                 M 235 20 L 230 25 L 230 55 L 235 60 L 245 60 L 250 55 L 250 25 L 245 20 L 235 20"
        fill="#FF5500"
        fill-rule="evenodd" />
    </svg>