Таким образом, у меня есть 2 элемента SVG на моей странице: один с путем и другой с фильтром (я сделал это, чтобы иметь возможность применить этот фильтр к нескольким SVG
<svg xmlns="http://www.w3.org/2000/svg" version="1.0" viewBox="0 0 1 1 " class="filter-target">
<path filter="url(#glow)" d="M 0,0 v 1 h 1 v-1 h-1 z" />
</svg>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 1 1" class="filter-source">
<defs>
<filter id="glow">
<feFlood flood-color="rgb(0,0,255)" in="SourceAlpha" result="makeBlue" />
<feMerge>
<feMergeNode in="makeBlue"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
</defs>
</svg>
Все было хорошо, но потом я решилчтобы скрыть второй SVG для предотвращения проблем с макетом, поэтому я создал следующий CSS:
.filter-source {
display: none;
}
.filter-target {
width: 40px;
height: 40px;
border: 1px red dashed;
}
В результате атрибут path
с filter
также исчез, так же, как браузер полностью удалил второй SVG вместо того, чтобы скрыть.
Получил тот же эффект на Chrome 76 и Firefox 60 под Linux.
Это ошибка или спецификация?
Fiddle здесь