В пути клипа допустимы только:
- Элементы формы («круг», «эллипс», «линия», «путь», «многоугольник», «полилиния»). , 'rect')
- 'text'
- 'use'
Кроме того, вы можете использовать элементы анимации et c для анимации пути клипа. Однако используются только формы этих элементов . Такие эффекты, как шаблоны, фильтры и т. Д. c, игнорируются.
Единственный способ получить эффект, который вы хотите использовать в качестве обтравочного контура, - это добавить множество элементов <circle>
к вашему <clipPath>
. .
<clipPath>
<circle>
<circle>
<circle>
<circle>
... etc ...
</clipPath>
Но вместо этого вы можете использовать маску. Маски допускают узоры.
.figure {
width: 300px;
height: 300px;
-webkit-mask: url(#img-dotted-mask);
mask: url(#img-dotted-mask);
background-color: #1063B1;
}
<p>This only works in Firefox</p>
<div class="figure"></div>
<svg width="0" height="0">
<defs>
<pattern id="img-dotted-pattern"
viewBox="0 0 1 1"
patternUnits="userSpaceOnUse" x="0" y="0" width="20" height="20">
<rect width="1" height="1" fill="black"/>
<circle cx="0.5" cy="0.5" fill="white" r="0.15"></circle>
</pattern>
<mask id="img-dotted-mask">
<rect width="2000" height="2000" fill="url(#img-dotted-pattern)"/>
</mask>
</defs>
</svg>
Однако inline SVG-маски, примененные к HTML элементам, как мой пример выше, работают только в Firefox. Чтобы маска SVG работала в Chrome, вам нужно будет использовать mask
или mask-image
с внешним URL-адресом или URL-адресом данных (как это сделал Temani в своем ответе).