fill-rule
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since â¨Ð¼Ð°ÑÑ 2020 г.â©.
ÐÑÑибÑÑ fill-rule ÑказÑÐ²Ð°ÐµÑ Ð°Ð»Ð³Ð¾ÑиÑм, иÑполÑзÑемÑй Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð²Ð½ÑÑÑенней ÑаÑÑи ÑигÑÑÑ.
ÐÑимеÑание:
Ðак аÑÑибÑÑ Ð¿ÑедÑÑавлениÑ, fill-rule можно иÑполÑзоваÑÑ Ð² каÑеÑÑве CSS-ÑвойÑÑва.
ÐÑÐ¾Ñ Ð°ÑÑибÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑименÑн к ÑледÑÑÑим SVG ÑлеменÑам:
ÐÑимеÑ
<svg viewBox="-10 -10 220 120" xmlns="http://www.w3.org/2000/svg">
<!-- ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ ÑвойÑÑва `fill-rule` -->
<polygon
fill-rule="nonzero"
stroke="red"
points="50,0 21,90 98,35 2,35 79,90" />
<!--
ЦенÑÑалÑÐ½Ð°Ñ ÑаÑÑÑ ÑÑиÑаеÑÑÑ Ð½Ðµ вÑ
одÑÑей в ÑигÑÑÑ Ð¸ поÑÑÐ¾Ð¼Ñ Ð½Ðµ заполнÑеÑÑÑ ÑвеÑом
-->
<polygon
fill-rule="evenodd"
stroke="red"
points="150,0 121,90 198,35 102,35 179,90" />
</svg>
ÐÑимеÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ иÑполÑзованиÑ
| ÐнаÑение | nonzero | evenodd |
|---|---|
| ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ | nonzero |
| ÐоддеÑжка анимаÑии | discrete |
ÐÑÑибÑÑ fill-rule пÑедоÑÑавлÑÐµÑ Ð´Ð²Ð° ваÑианÑа опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð²Ð½ÑÑÑенней ÑаÑÑи ÑигÑÑÑ (Ñо еÑÑÑ Ð¾Ð±Ð»Ð°ÑÑи, подлежаÑей заливке):
nonzero
ÐнаÑение nonzero опÑеделÑÐµÑ Ð¿ÑинадлежноÑÑÑ ÑоÑки ÑигÑÑÑ Ðº внÑÑÑенней ÑаÑÑи Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð»ÑÑа Ð¾Ñ ÑÑой ÑоÑки до беÑконеÑноÑÑи в лÑбом напÑавлении, а заÑем пÑовеÑки меÑÑ, где ÑÐµÐ³Ð¼ÐµÐ½Ñ ÑигÑÑÑ Ð¿ÐµÑеÑÐµÐºÐ°ÐµÑ Ð»ÑÑ. ÐаÑÐ¸Ð½Ð°Ñ Ñ Ð½ÑлÑ, каждÑй Ñаз, когда лÑÑ Ð¿ÐµÑеÑÐµÐºÐ°ÐµÑ ÑÐµÐ³Ð¼ÐµÐ½Ñ ÑигÑÑÑ Ñлева напÑаво, пÑоиÑÑ
Ð¾Ð´Ð¸Ñ ÑвелиÑение ÑÑÑÑÑика на единиÑÑ, а когда ÑпÑава налево, Ñо ÑменÑÑение. ÐÑли поÑле подÑÑÑÑа пеÑеÑеÑений ÑезÑлÑÑÐ°Ñ Ñавен нÑлÑ, Ñо ÑоÑка наÑ
одиÑÑÑ Ð·Ð° пÑеделами ÑигÑÑÑ, в пÑоÑивном ÑлÑÑае â внÑÑÑи.
ÐÑимеÑ
<svg viewBox="-10 -10 320 120" xmlns="http://www.w3.org/2000/svg">
<!-- ÐÑименение знаÑÐµÐ½Ð¸Ñ `nonzero` Ð´Ð»Ñ Ð¿ÐµÑеÑекаÑÑиÑ
ÑÑ ÑаÑÑей ÑигÑÑÑ -->
<polygon
fill-rule="nonzero"
stroke="red"
points="50,0 21,90 98,35 2,35 79,90" />
<!--
ÐÑименение знаÑÐµÐ½Ð¸Ñ `nonzero` Ð´Ð»Ñ ÑигÑÑÑ, наÑ
одÑÑейÑÑ Ð²Ð½ÑÑÑи
дÑÑгой ÑигÑÑÑ (два квадÑаÑа, ÑегменÑÑ ÐºÐ¾ÑоÑÑÑ
ÑоÑÑÐ°Ð²Ð»ÐµÐ½Ñ Ð¸Ð· ÑоÑек,
ÑаÑположеннÑÑ
в одном напÑавлении â по ÑаÑовой ÑÑÑелке)
-->
<path
fill-rule="nonzero"
stroke="red"
d="M110,0 h90 v90 h-90 z M130,20 h50 v50 h-50 z" />
<!--
ÐÑименение знаÑÐµÐ½Ð¸Ñ `nonzero` Ð´Ð»Ñ ÑигÑÑÑ, наÑ
одÑÑейÑÑ Ð²Ð½ÑÑÑи
дÑÑгой ÑигÑÑÑ (два квадÑаÑа, ÑегменÑÑ ÐºÐ¾ÑоÑÑÑ
ÑоÑÑÐ°Ð²Ð»ÐµÐ½Ñ Ð¸Ð· ÑоÑек,
ÑаÑположеннÑÑ
в пÑоÑивоположнÑÑ
напÑавлениÑÑ
: Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ квадÑаÑа по
ÑаÑовой ÑÑÑелке, Ñ Ð²ÑоÑого â пÑоÑив)
-->
<path
fill-rule="nonzero"
stroke="red"
d="M210,0 h90 v90 h-90 z M230,20 v50 h50 v-50 z" />
</svg>
evenodd
ÐнаÑение evenodd опÑеделÑÐµÑ Ð¿ÑинадлежноÑÑÑ ÑоÑки ÑигÑÑÑ Ðº внÑÑÑенней ÑаÑÑи Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð»ÑÑа Ð¾Ñ ÑÑой ÑоÑки до беÑконеÑноÑÑи в лÑбом напÑавлении и подÑÑÑÑа колиÑеÑÑва ÑегменÑов ÑигÑÑÑ, коÑоÑÑе ÑÑÐ¾Ñ Ð»ÑÑ Ð¿ÐµÑеÑекаеÑ. ÐÑли ÑÑо ÑиÑло неÑÑÑное, ÑоÑка наÑ
одиÑÑÑ Ð²Ð½ÑÑÑи, еÑли ÑÑÑное, Ñо ÑоÑка ÑнаÑÑжи.
ÐÑимеÑ
<svg viewBox="-10 -10 320 120" xmlns="http://www.w3.org/2000/svg">
<!-- ÐÑименение знаÑÐµÐ½Ð¸Ñ `evenodd` Ð´Ð»Ñ Ð¿ÐµÑеÑекаÑÑиÑ
ÑÑ ÑаÑÑей ÑигÑÑÑ -->
<polygon
fill-rule="evenodd"
stroke="red"
points="50,0 21,90 98,35 2,35 79,90" />
<!--
ÐÑименение знаÑÐµÐ½Ð¸Ñ `evenodd` Ð´Ð»Ñ ÑигÑÑÑ, наÑ
одÑÑейÑÑ Ð²Ð½ÑÑÑи
дÑÑгой ÑигÑÑÑ (два квадÑаÑа, ÑегменÑÑ ÐºÐ¾ÑоÑÑÑ
ÑоÑÑÐ°Ð²Ð»ÐµÐ½Ñ Ð¸Ð· ÑоÑек,
ÑаÑположеннÑÑ
в одном напÑавлении â по ÑаÑовой ÑÑÑелке)
-->
<path
fill-rule="evenodd"
stroke="red"
d="M110,0 h90 v90 h-90 z M130,20 h50 v50 h-50 z" />
<!--
ÐÑименение знаÑÐµÐ½Ð¸Ñ `evenodd` Ð´Ð»Ñ ÑигÑÑÑ, наÑ
одÑÑейÑÑ Ð²Ð½ÑÑÑи
дÑÑгой ÑигÑÑÑ (два квадÑаÑа, ÑегменÑÑ ÐºÐ¾ÑоÑÑÑ
ÑоÑÑÐ°Ð²Ð»ÐµÐ½Ñ Ð¸Ð· ÑоÑек,
ÑаÑположеннÑÑ
в пÑоÑивоположнÑÑ
напÑавлениÑÑ
: Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ квадÑаÑа по
ÑаÑовой ÑÑÑелке, Ñ Ð²ÑоÑого â пÑоÑив)
-->
<path
fill-rule="evenodd"
stroke="red"
d="M210,0 h90 v90 h-90 z M230,20 v50 h50 v-50 z" />
</svg>
СпеÑиÑикаÑии
| Specification |
|---|
| Scalable Vector Graphics (SVG) 2 > # WindingRule > |