【发布时间】:2016-12-19 09:38:22
【问题描述】:
我有自己风格的 div。我在其他网站上嵌入了这个 div。
<div id="scoped-div">
<style>
label {
color: green;
}
</style>
<label> Scoped div </label>
</div>
但我遇到了问题,我的 div 样式被网站样式覆盖。我不想使用iframe。除了使用iframe,还有其他方法可以通过外部样式更改来保护我的 div 样式吗?
【问题讨论】:
-
使用更具体的选择器 - 包含元素 ID 的选择器。 (在大多数情况下应该这样做;可能仍然存在站点设法通过
!important或类似的方式覆盖您的样式的极端情况。您也可以为您的所有属性添加!important,但这可能会导致如果不小心处理,您的组件也会出现问题。) -
@CBroe 我用
!important这样的标志写了内联样式:<label style="color:green !important"></label>,但即使这样也可以通过使用样式覆盖:label[style] { color: yellow !important;}写在我的div下面 -
“但即使这样也可以被覆盖”——当然可以——因为它不是你的网站,你不能指望别的.如果您想要样式的绝对独立性,那么您需要将您的内容与父文档完全分开,就像使用 iframe 一样。
标签: css sass less webpack shadow-dom