1

有什么方法可以将 HTML 元素与 CSS 隔离开来?我正在尝试使 a 及其所有子项在文档中变得“不可见”。

用户能够通知在文档上调用的 css,但我需要确保这不会丢失,我的意思是,没有显示:无,可见性:隐藏,文本缩进:-10000px,左:- 10000px,或任何其他这些技巧。

<div class="foo">
 <a href="#foo">link</a>
 <img src="" />
 <span>bar</span>
</div>

我可以使用 data:text/html;base64 iframe,但文本不会被格式化。

考虑免责声明或徽标。用户可以在我的小部件中包含他自己的 CSS(通过通知 CSS URL),即使用户在他的 CSS 上为该免责声明元素或其任何子项指定 display:none 或 text-indent,我也需要保持该免责声明可见。

我不是想不使用任何样式,我只是想知道是否有任何属性可以屏蔽 <tag/>,例如“-moz-user-select: none;”

4

3 回答 3

1

没有任何东西可以 100% 地工作,但这里有一个在大多数情况下都可以工作的解决方案:

<div class="foo" style="background:#fff !important;color:#000 !important;position:relative !important;display:block !important;visibility:visible !important;opacity:1 !important;float:none !important;left:0 !important;top:0 !important;">
 <a href="#foo" style="background:#fff !important;color:#000 !important;position:relative !important;display:inline !important;visibility:visible !important;opacity:1 !important;float:none !important;left:0 !important;top:0 !important;">link</a>
 <img src="" style="background:#fff !important;color:#000 !important;position:relative !important;display:inline !important;visibility:visible !important;opacity:1 !important;float:none !important;left:0 !important;top:0 !important;" />
 <span style="background:#fff !important;color:#000 !important;position:relative !important;display:inline !important;visibility:visible !important;opacity:1 !important;float:none !important;left:0 !important;top:0 !important;">bar</span>
</div>

基本上,您希望!important为每个不想在style属性中覆盖的样式指定。如果手动完成这是一个巨大的痛苦,就像我之前所说的,可以由精通 CSS 的人解决。

注意:提供的样式并不是一个详尽的列表,只是我能想到的东西。

关于 CSS 特异性

于 2012-04-12T17:59:04.680 回答
1

正如之前的答案所指出的,没有属性可以做到这一点,而且这种!important方法也不起作用,为什么?主要是因为用户可以使用自己的css,如果用户!important在每个样式属性中放置,它会覆盖以前!important的标记属性,这里有一个例子:

Site.css .copyright { 显示:块!重要;/* 这里有其他样式 */ }

Uploaded css .copyright { 显示:无!重要;/* ... */ }

您可以克服它的唯一方法是阅读上传的样式表并删除every !important,在这种情况下,您可以使用!important避免样式属性被覆盖。

编辑:但是您必须主动声明用户可能用来隐藏元素的每个属性。

于 2012-04-12T20:45:33.810 回答
0

不,没有属性可以屏蔽标签。

于 2012-04-12T17:58:40.497 回答