【发布时间】:2016-05-14 00:57:46
【问题描述】:
我想将 CSS 文件中的规则应用于某个 div/类,例如,events.css 的内容仅应用于名为 .events 的类的内容,而不是超出此范围而不需要将类 .events 添加到每个 css 规则的开头。
我认为这是不可能的 - 但你永远不知道。
如果不是,我正在考虑通过在上传/编辑后将 .events 前缀到 CSS 规则来实现相同的效果。我认为这应该是没有问题的,但是有人预见到任何问题吗?
【问题讨论】:
我想将 CSS 文件中的规则应用于某个 div/类,例如,events.css 的内容仅应用于名为 .events 的类的内容,而不是超出此范围而不需要将类 .events 添加到每个 css 规则的开头。
我认为这是不可能的 - 但你永远不知道。
如果不是,我正在考虑通过在上传/编辑后将 .events 前缀到 CSS 规则来实现相同的效果。我认为这应该是没有问题的,但是有人预见到任何问题吗?
【问题讨论】:
我认为这是不可能的
确实如此。除非您将有问题的内容放在 iframe 中。然后你会得到一个完全独立的文档来设置不同的样式。
我正在考虑通过在上传/编辑后将 .events 前缀到 CSS 规则来实现相同的效果。我认为这应该是没有问题的,但是有人预见到任何问题吗?
以自动化方式?您需要能够解析 CSS 输入以确定选择器的开始位置。
这并不像你想象的那么简单:
/* This is my grate CSS
.sausage { color: red; } adds a class rule
/*/ .eggs, .bacon { color: red; }
.potato:before { content: "; }
.beans { content: "; }
是一个难以解析的 CSS 示例。 .eggs、.bacon 和 .potato 开始选择器并需要 .events 前缀。 .sausage 和 .beans 不是。
【讨论】:
如果不是,我正在考虑实现 通过为 .events 加上前缀来达到同样的效果 到 CSS 规则之后 上传/编辑。我在想这个 应该是没有问题的,但是 有人预见到任何问题吗?
这是唯一的方法,应该没问题。
【讨论】:
从维护的角度来看,在 CSS 规则中简单地包含“.event”会更安全。几个月后,您可能已经忘记了在这里为节省一点打字而玩的技巧。
【讨论】:
简而言之,唯一的方法就是在每个规则前面加上.events。
但我会避免自动执行此操作,因为很容易出错,例如手动将.events 添加到规则中,这会使它加倍。如果您想跨页面共享某些样式,例如 .events.special 和 .aboutus.special,那么您需要将它们放在其他位置。
通常最好使用一个样式表而不是每个部分一个样式表,这样用户在访问后续页面时会将其缓存起来。 (您可以在生产环境中对其进行压缩和 gzip 压缩以减少初始下载时间。)
【讨论】:
我会将“.events”类添加到选择器中。作为手动过程执行此操作存在人为错误的风险。这里是partially automating the process of adding a selector to all CSS classes的方式。
您也可以使用这个automatic prefixer,但它似乎不能很好地处理您的选择器之间的空格。
【讨论】: