TL; DR
创建symbol-svg-sprite
并使用svg+use
插入其片段后,我想在#ShadowDOM中使用css-variables
进行SVG presentation attributes
更改示例stroke-width="0"
stroke-width="5"
,transition property
必须有效,问题是stroke-width
值适用于任何事件(:hover:active:focus),而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>
{1}}这可以在
DevTools
<svg>
- <svg> <path d="..."> </svg>
<object></object>
与外部css 可以在CodePen上看到演示
如何让CSS transition
为external-svg-sprites
工作?我已经厌倦了与此作斗争:(
答案 0 :(得分:0)
更新截至2018年9月,除了Firefox
之外,其他地方仍然无法正常工作
进行了研究后发现,这种行为是 bug 。
2018年3月11日,我在Windows 7下测试了浏览器,即: