html - 用背景图像填充 SVG 路径元素

标签 html css image svg background-image

是否可以设置 background-image对于 SVG <path>元素?

例如,如果我设置元素 class="wall" , CSS 样式 .wall {fill: red;}有效,但是 .wall{background-image: url(wall.jpg)}没有,也没有.wall {background-color: red;} .

最佳答案

您可以通过将背景制作成 pattern 来做到这一点:

<defs>
  <pattern id="img1" patternUnits="userSpaceOnUse" width="100" height="100">
    <image href="wall.jpg" x="0" y="0" width="100" height="100" />
  </pattern>
</defs>

根据你的图片调整宽度和高度,然后像这样从路径中引用它:

<path d="M5,50
         l0,100 l100,0 l0,-100 l-100,0
         M215,100
         a50,50 0 1 1 -100,0 50,50 0 1 1 100,0
         M265,50
         l50,100 l-100,0 l50,-100
         z"
  fill="url(#img1)" />

Working example

关于html - 用背景图像填充 SVG 路径元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59488002/

相关文章:

python - 使用 PIL/Pillow 打开 PNG

html - 类中的 css 类

html - iOS 新窗口滚动偏移错误

css - JavaFX 更改标签中一个单词的颜色

html - 在移动设备上将 flex-item 移动到单独的行

ruby-on-rails - 如何为 Rails Liquid GEM 创建 image_tag 过滤器

html - 带有 anchor 标记的列表项的CSS元素+元素选择器

java - 如何使用 Java 以正确的编码检索 HTML 页面?

html - 将所有表格放在一个 div 中,并将 div 放在中间,并根据设置的高度进行垂直滚动

image - 如何以编程方式识别色情图片?