我遇到了一个我正在创建的Web应用程序的问题。在页面的左侧,我有一个可编辑的区域,右侧是实时预览。实时预览区域实际上是一个包含特制字段的HTML文件,可以使用编辑区域进行操作。问题是因为用户HTML可以是他们想要的任何东西。一些CSS可能会流到我的页面的其余部分。用户做这件事并不少见:background:red;在他们的设计中,并导致我的整个页面变红。将父类添加到样式标记中的CSS
所以,解决这个问题(至少是我已经提出的方案)是将用户样式包装到父类中。然后在预览区域中拥有该父类。这样用户样式就不会流入我的设计中。我正在考虑像这样的东西用量少和jQuery:
//psuedo code
less.Compile(".ParentClass { " + $("style").html() + "}");
但是,我找不到我可以使用任何这样的较少库。有谁知道一种方法,我可以将CSS父类添加到标记中的所有元素?
例子:
<div id="Preview">
<style>
div { background: red; }
</style>
<div>I'm red</div>
</div>
将成为:
<div id="Preview">
<style>
#Preview div { background: red; }
</style>
<div>I'm red</div>
</div>
编辑:我知道的风格确实应该在头上。但是,被操纵的html文件实际上将作为电子邮件发送。电子邮件客户端对CSS样式的支持最多只能算是粗制滥造,在某些情况下,最好放在身体中。它令人沮丧,但我必须与我的目标一起工作。
样式标签只能出现在头部。假设它在另一个区域工作,但它不是一个HTML检查与W3C验证 –
@sudharsan同意的程序,但是,这实际上将用于电子邮件客户端(合法而不是垃圾邮件,别担心)。不幸的是,电子邮件客户端对风格标签的支持在头部比头部更好。电子邮件客户端让我难过。 – Piercy