下面是一个示例聚合物元素
<dom-module id="custom-dialog">
<style>
#text{
width: 400px;
height: 50px;
position: relative;
background: #fff;
}
p{
position: absolute;
margin: var(--ui-connectionDialog-text-margin, 5% 30%);
font-size: var(--ui-connectionDialog-text-font-size, 18px);
}
</style>
<template>
<!-- local DOM for your element -->
<div id = "text" > <p><content></content></p> </div>
</template>
</dom-module>
以及使用自定义 CSS 设置样式的示例
<style>
custom-dialog.connecting
{
--custom-dialog-text-font-size: 23px;
--custom-dialog-text-margin: 3.8% 30%;
}
custom-dialog.disconnected
{
--custom-dialog-text-font-size: 20px;
--custom-dialog-text-margin: 3.8% 30%;
}
</style>
<body>
<custom-dialog class="connecting">Connecting</custom-dialog>
</body>
我能够将自定义 css 属性与connecting
class 属性一起应用,但是当我使用 js 将自定义元素的类更改为 时disconnected
,不会应用新的 css 属性。事实上,当 class 属性改回 时connecting
,相应的 css 属性也不会应用。
我怀疑这是因为我的浏览器在 shady-dom 模式下运行,并且在多边形填充中存在间隙。
我很想直接将 css 属性应用到<p>
shady-dom 中的元素上,但它想知道是否有适当的方法来处理这个问题。