【问题标题】:prevent css from getting overriden防止css被覆盖
【发布时间】:2018-06-27 16:13:02
【问题描述】:

我有一个使用 Telerik 控件的 asp.net Web 表单项目。

我的问题

在一个地方我需要从数据库中加载 html 数据,它包含大量的 css、图像和 html。

这是我的代码。

<telerik:RadLabel ID="ProdDetails" runat="server" Text='<%# (HttpUtility.HtmlDecode((string)Eval("HtmlBody"))) %>'></telerik:RadLabel>

它工作正常,但有时这个数据库 html css 会覆盖站点 css,因为该站点变得不稳定。

那么,有没有我的网站 css 不能被传入的 html 覆盖。

在否决或接近投票之前,如果有任何遗漏、错误或需要,请告诉我..

【问题讨论】:

  • 您是否允许呈现任意用户生成的 HTML 和 CSS?在很多方面都有风险。如果它碰巧覆盖了你的,那可能只是运气不好。您可以考虑重新命名所有标准 CSS 类等,这是其他代码不太可能使用的前缀。
  • 是的,我正在加载亚马逊打印,它们包含很多 css,我不知道要更改什么,因为它不能修复哪个 css 被覆盖。
  • 在这种情况下改变你所拥有的一切。如果您的应用程序被称为“showpicturesapp”,那么可能会在所有 CSS 类和 ID 前加上“show-pictures-app-”,因此其他地方的 CSS 几乎没有机会拥有相同的类。这并不是说它仍然不能通过将 !important 放在它们旁边等来覆盖特定的 properties,但希望前缀意味着它们不会被应用于相同的元素并且不会成为问题。
  • 我在考虑使用 iframe
  • 在这种情况下将其作为答案发布,您可以回答自己的问题并接受答案。那么以后遇到这个问题的任何人都会清楚地看到一个有效的解决方案。

标签: html css asp.net telerik


【解决方案1】:

我知道,这个问题的方式有点不对,但在一般实践中,任何人都会遇到这种问题。

所以,在浪费了一整天的时间寻找合适的方法来处理它之后,我终于找到了一些不需要更新站点 css 或任何其他部分的东西。

这是一个iframe

是的,而不是在 div 中渲染 html 或任何其他元素在 iframe

中渲染它

看看我为我所做的工作。

<iframe frameborder="0" border="0" cellspacing="0" width="100%" 
  height="400px"  runat="server" id="test" 
  srcdoc='<%# (HttpUtility.HtmlDecode((string)Eval("HtmlBody"))) %>'>
</iframe>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-03
    • 1970-01-01
    • 2019-07-14
    • 2017-12-19
    • 2021-02-08
    • 2020-07-23
    • 2018-11-18
    • 1970-01-01
    相关资源
    最近更新 更多