这个例子有点像复活节彩蛋,因为我们的文档中只有一个普通的 HTML 元素。对于任何 HTML 元素,都可以使用 CSS 设置背景图片background-image
。对于这个 CSS 属性,我们通常会提供一个指向图片的链接,但也可以在 CSS 中内嵌一个图片。
通常情况下,你不会这么做,因为你的 CSS 中最终会出现一些乱七八糟的东西。不过,如果我们用 SVG 这样做,就不会那么令人费解了。SVG 代码仍然是字符编码的,所以你仍然会看到一些奇怪的部分。这里的尖括号和 # 关键字必须转义。
<div class="background" />
.background {
background-color: #38755b;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 120 120'%3E%3Cpolygon fill='%230c5c4c' points='120 120 60 120 90 90 120 60 120 0 120 0 60 60 0 0 0 60 30 90 60 120 120 120 '/%3E%3C/svg%3E");
}
如果我们看一下代码内部,可以看到这就是我们在 CSS 中定义的图像。因为默认情况下背景图片是重复的,所以我们只需定义一张图片。你可能还会注意到,这张图片甚至没有设置背景颜色。我们也是在 CSS 中定义的。
还要注意的是,由于该图片没有被定义为 HTML 文档结构的一部分,因此我们还需要设置 xmlns 属性。
<svg
xmlns='http://www.w3.org/2000/svg'
width="50"
height="50"
viewBox="0 0 120 120"
>
<polygon
fill="#0c5c4c"
points="
120 120 60 120
90 90 120 60
120 0 120 0
60 60 0 0
0 60 30 90
60 120 120 120"
/>
</svg>
这是一种只需几行 CSS 代码就能创建背景图案的好方法。
分享: |