TL; DR
创建symbol-svg-sprite
并使用svg+use
插入其片段后,我想在#ShadowDOM中使用css-variables
进行SVG presentation attributes
更改例如stroke-width="0"
中的stroke-width="5"
,并且transition property
必须正常工作,问题是stroke-width
值在任何事件都有效(:hover:活跃:焦点)和transition
没有。
<svg style='display:none;' xmlns="http://www.w3.org/2000/svg">
<symbol id='symbol-id' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 23 20">
<path style='transition-duration: var(--custom-duration); transition-property: var(--custom-property);' stroke="var(--custom-stroke)" stroke-width="var(--custom-stroke-width)" fill="cyan" d="long..."
</symbol>
</svg>
<svg>
<use class="use-class" xlink:href="../transition-error.svg#symbol-id"></use>
</svg>
svg
outline 1px solid black
width 250px
height 250px
.use-class
--custom-stroke-width 0
--custom-duration .5s
--custom-property all
.use-class:hover
--custom-stroke-width 2
--custom-stroke blue
--custom-duration 2500ms
--custom-property all
当你悬停svg容器时,变量的值发生变化,冲程stroke-width 0
顺利流入stroke-width 2
- 这种情况发生但没有transition
虽然transition
分配给<path>
这可以在DevTools中看到
<svg>
- <svg> <path d="..."> </svg>
<object></object>
与外部css可以在CodePen上看到演示
如何让CSS transition
为external-svg-sprites
工作?我厌倦了打这个:(
更新截至2018年9月,除了Firefox之外,这仍然不起作用
进行了研究后发现,这种行为是一个错误。
在2018年3月11日的Windows 7浏览器测试中,即:
不起作用,是一个错误
除了
我将非常感谢那些补充以下工作状况信息的人: