题
我正在研究CMS。它的功能之一是Wysiwyg编辑器中HTML“块”的编辑,该编辑显示为单个页面。
我在CMS中有一个预览这些块的区域。
这些块依赖于加载到Wysiwyg编辑器中的“ Foundation.css”文件。它进行一些小重置,定义默认字体和文本颜色,总体上非常简单。
显然,CMS带有大量的CSS语句,其中许多都会影响字体尺寸,家庭,颜色,线条高,桨等等一般设置。
自然,当我尝试在CMS页面中显示HTML块时,它看起来与仅使用Foundation.css样式表显示时看起来不同。
有人可以想到一种从所有以前的样式定义中清洁HTML页面(例如DIV)中定义区域的方法吗?我不能。
显示块和嵌入粉底的iframe会有所帮助,但是我担心在必须渲染5-10个IFRAME时用户的工作流程,然后在加载后通过JS进行调整。 y
我已经考虑过将所有其他CSS升级到子类(即调整CMS的CSS),但这将涉及触摸很多文件,有些可能是PHP源代码,我宁愿不这样做。
我认为这没有解决方案,但您永远不会知道。
解决方案
您可以将包含Wysiwyg编辑器代码的所有DIV提供一个类,然后重置该Div内部的所有内容。
其他提示
有 CSS重置 可用样式表;您可以修改这些?
加上GSTO所说的内容,您可以设置一些样式
div.clearCss *
{
property: value !important
}
所有相关样式属性重置。此样式应适用于具有ClearCSS集类别的元素下的任何内容,因此您只需要将该类应用于父元素即可。
您是否在CMS中使用特定的Wysiwyg编辑器?我发现Telerik Radeditor将允许您在编辑器的实际编辑区域使用特定的样式表。您正在使用的编辑也许也可以做到这一点。
祝你好运,希望这能帮到你。
如果你服用 Tinymce 例如,他们还使用一个iframe,我认为他们遇到了与您相同的问题。我在后端和某些第4页IFRAME中使用它。我看不到任何性能问题。
借助Tinymce,可以压缩所需的功能(在PHP,JSP,.NET和ColdFusion中),这为您提供了很好的速度。
三思而后行,您编写自己的Wysiwyg编辑器,其他编辑者经过了很好的测试,几乎可以满足所有需求。