javascript - 跨阴影 DOM 边界的 CSS 选择器
问题描述
我有一个分层的 CSS 类选择器,我想知道如果类层次结构跨越阴影 DOM 边界,声明的样式是否也适用。CSS 选择器如下所示:
.section .row .col {
color: #f00;
}
然后我还有一些包含自定义元素的 HTML 标记...
<div class="section">
<my-element></my-element>
</div>
...并且该元素也有一些标记:
<div class="row">
<div class="col">
Some red content
</div>
</div>
我正在使用 Polymer3,DOM 在渲染时看起来非常好,并且my-element
在 div 部分下方设置为阴影 DOM。一切正常,但内部内容my-element
并不像预期的那样是红色的。我还确保在自定义元素中也导入了样式表(ES6 模块),但似乎无法在影子 DOM 中正确选择类层次结构。DOM 在浏览器控制台中看起来像这样:
<div class="section">
#shadow-root (open)
<div class="row">
<div class="col">
Some red content
</div>
</div>
</div>
所以我在这里做错了什么,或者这实际上是预期的行为,因为我们不想通过影子 DOM 的封装来泄露 CSS 样式?
解决方案
CSS 隔离是 Shadow DOM 的预期行为。
在自定义元素的 Shadow DOM 的 HTML 代码中添加<link rel="stylesheet">
要应用的 CSS 文件的元素。
推荐阅读
- python - 如何为 python 3.6.8 安装 selenium
- airbrake - Airbrake 控制面板 - 更改部署标签颜色
- java - 是否可以从 JCuda 将数据发送到定义为 Union 的 GPU 内存?
- c# - 我有一个问题和一个错误。C# CS8180
- java - 每次我点击 Space 时,Libgdx 跳跃和碰撞方法都不起作用
- python - 在 PPT 占位符中适合图片
- php - 会话变量在每次页面重新加载时销毁
- angular - 在Angular 7中使用变量作为参数的ngx-translate
- javascript - 在表单验证中包含数字签名
- python - Glumpy错误'OSError:[WinError 126]找不到指定的模块'