重置页面某个区域的 CSS?

Reset CSS for a certain area of the page?

提问人:Pekka 提问时间:11/14/2009 更新时间:11/14/2009 访问量:2867

问:

我正在研究CMS。它的功能之一是在所见即所得的编辑器中编辑显示为单个页面的 HTML“块”。

我在CMS中有一个区域,可以预览这些块。

这些块依赖于加载到所见即所得编辑器中的“foundation.css”文件。它做了一些小的重置,定义了默认的字体和文本颜色,总体上非常简单。

显然,CMS带有大量的CSS语句,其中许多语句会影响常规设置,如字体大小,系列,颜色,行高,填充等。

当然,当我尝试在 CMS 页面中显示 HTML 块时,它看起来与仅使用 foundation.css 样式表显示时不同。

谁能想出一种方法来清除所有先前样式定义中 HTML 页面(例如 DIV)中的定义区域?我不能。

  • 显示块并嵌入 foundation.css 的 Iframe 会有所帮助,但我担心用户的工作流程,因为必须渲染 5-10 个 IFrames,然后在加载后通过 JS 调整高度。呸。

  • 我曾考虑过将所有其他 CSS “提升”到一个子类(即调整 CMS 的 CSS),但这涉及接触大量文件,其中一些可能是 PHP 源代码,我宁愿不这样做。

我不认为这有解决方案,但你永远不知道。

HTML CSS 级联过滤

评论


答:

2赞 Dean J 11/14/2009 #1

可用的 CSS Reset 样式表;也许你可以修改这些?

1赞 GSto 11/14/2009 #2

您可以为所有包含所见即所得编辑器代码的 div 一个类,然后重置该 div 中的所有内容。

评论

0赞 Pekka 11/14/2009
是的,这可能是唯一的方法;但是,我希望能够实现更自动化的东西,因为在CMS的某个地方引入的每个CSS设置,我都必须确保重置器也将其重置 - 有时重置为我什至不知道的默认值。
0赞 bobince 11/14/2009
是的,您还需要对内容区域的每个元素进行覆盖,这些元素也可以匹配其他样式表规则,并且覆盖规则需要更大的特异性。真的行不通,除非你把所有东西都撒在灰尘里。!important
0赞 Adam Tolley 11/14/2009 #3

除了GSto所说的之外,您还可以设置一些样式,例如

div.clearCss *
{
  property: value !important 
}

重置所有相关样式属性。 此样式应应用于将 clearCss 设置为其类的元素下的任何内容,因此您只需要将该类应用于父元素。

0赞 Chris 11/14/2009 #4

您是否在 CMS 中使用特定的所见即所得编辑器?我发现 Telerik RadEditor 将允许您在编辑器的实际编辑区域使用特定的样式表。您正在使用的编辑器也可能能够做到这一点。

祝你好运,希望这会有所帮助。

0赞 MaikL80 11/14/2009 #5

如果你以TinyMCE为例,他们也使用iframe,我认为他们和你有同样的问题。我在后端和某些页面上使用它 4 个 iframe。我没有看到任何性能问题。

使用 TinyMCE,可以压缩您需要的功能(在 PHP、JSP、.NET 和 Coldfusion 中),这为您提供了极大的速度提升。

三思而后行,如果您编写了自己的所见即所得编辑器,其他编辑器都经过了充分的测试,并且具有几乎可以满足所有需求的非常好的插件。