css - 将 Shadow DOM 中的 SVG 路径设置为可见 :hidden

标签 css svg shadow-dom

是否可以将shadow DOM中的SVG路径设置为visible:hidden或display:none?

这是 defs 文件中的 SVG:

<symbol id="plus-minus" viewBox="0 0 16 16">
    <rect y="7" width="16" height="2" class="bar-horizontal"/>
    <rect x="7" width="2" height="16" class="bar-vertical"/>
</symbol>

这是带有 use 标签的 SVG:

<svg class="icon-plus-minus" aria-hidden="true">
    <use xlink:href="#plus-minus"></use>
</svg>

我试图定位“bar-horizo​​ntal”类并在触发操作时隐藏它。

谢谢!

最佳答案

您无法访问用户代理 Shadow DOM 的内容,而只能访问用户创建的内容。

因此,您必须定义 2 个符号,并应用样式 visibility:hidden<use>元素代替。

<svg>
    <symbol id="plus-minus-h" viewBox="0 0 16 16">
        <rect y="7" width="16" height="2"/>
    </symbol>
    <symbol id="plus-minus-v" viewBox="0 0 16 16">
        <rect x="7" width="2" height="16" />
    </symbol>
</svg>
<svg class="icon-plus-minus" aria-hidden="true">
    <use xlink:href="#plus-minus-h" class="bar-horizontal"></use>
    <use xlink:href="#plus-minus-v" class="bar-vertical"></use>
</svg>

关于css - 将 Shadow DOM 中的 SVG 路径设置为可见 :hidden,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44121621/

相关文章:

javascript - 显色不一致

html - 移动 Safari 上的 CSS 剪辑路径就像内容框一样

javascript - IE 和 Firefox 上的 Webcomponents.js 问题

javascript - 可以获得 templateInstance 值但不能将其用于其他函数?

dart - 通过 Javascript 函数传递 Polymer 数据绑定(bind)

html - 具有从阴影创建的边框的剪辑路径的边框半径

javascript - 溢出隐藏添加在删除滚动条的正文标签中

css - WebKit 翻译 + 修复背景附件错误

javascript - 为什么 "onload"对 <circle> 元素不起作用?

Selenium 点击 Highcharts 系列