禁用特定页面片段的CSS样式

问题描述:

我在搜索并找到一些类似的帖子,但没有一个回答我的“特殊”问题。禁用特定页面片段的CSS样式

我有什么是页眉和页脚静态风格的页面。在中间(内容)可以是来自用户的一些HTML + CSS。

我不希望有什么是他们定义一些CSS规则,这将陷入困境的页眉,页脚或全身。

使用iframe并不是真正的解决方案。

感谢

+0

你想用这个做什么?你可以提供*一些*属性,但不是全部。或者也许使用GUI界面来调整CSS? – Blender 2011-04-27 22:21:53

YUI3 CSS Reset代码上下文工作。

就包括代码:

<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/3.3.0/build/cssreset/reset-context-min.css"> 

,并添加CSS 用户的CSS,让你的最后评估。然后,给他们这样的类属性重置元素上的CSS:

class="yui3-cssreset" 

只要确保你的声明是尽可能具体,而且他们都是!important

但是,为什么你允许用户提供自己的CSS?你知道IE可以从一个CSS文件解释JavaScript和一些黑魔法CSS属性吗?

这样做并不安全。

+0

用户指定的样式不能简单地使用具有较大权重的选择器,然后是由yui3应用的选择器?另外,他们不能使用!重要的标志直接覆盖这些值吗? – nlaq 2011-04-27 22:19:36

+0

在呈现之前将其过滤掉。我不太喜欢让用户拥有自己的CSS的想法。至少让他们在'

+0

是的,你仍然必须净化他们的CSS。你可能想要在你的答案中包含它。但我很高兴我们都同意,这仍然是,周围,不是一个好主意:) – nlaq 2011-04-27 22:22:46

涉及消毒他们的意见最简单的解决方法是让所有的样式属性的重要标志 - !然后搜索和替换的是,用户可以在他们的自定义CSS已输入的任何重要标志!

下面是有关国旗一些更多的信息:http://www.smashingmagazine.com/2010/11/02/the-important-css-declaration-how-and-when-to-use-it/

一个更简单的解决方法是删除用户输入的所有标签 - 只允许CSS将应用于特定元素的样式属性。

这些解决方案要么远离防弹,但是。用户可以简单地创建绝对定位的元素来掩盖他们希望的网站的任何部分。如果你想停止这一点,你将别无选择,只能智能地解析他们指定的每个样式属性,并删除可能会损害网站布局的样式属性。这是一个非常微妙的操作 - 假设你可以正确地做到这一点,任何你不相信的属性都会降低让他们首先编写自己的样式的实用性。

我认为你必须问自己:你真的相信这些用户自己写CSS和HTML?或者这可能是一个更好的选择来调查textile或降价*?如果你信任这些用户,那么这不应该是一个非问题?我想更多关于这个内容的性质的信息会帮助我给你更合适的解决方案。

*我不能发布一个直接链接到首页,由于*的垃圾邮件预防措施。谷歌搜索“降价”的第一个链接是您可以了解更多信息的地方。抱歉。