【问题标题】:CSS Best practices when starting a new project开始新项目时的 CSS 最佳实践
【发布时间】:2011-10-27 02:24:10
【问题描述】:

我想知道在开始处理大型项目的 CSS 时,最好的方法是什么?因为我在大多数大型项目(如 wordpress)中看到它们将所有共享相同属性的类捆绑在一起,但是,你怎么能事先知道它们会匹配,或者是编程后的微工作?

无论如何,只是想知道对类、ID 等进行分组的最佳做法,以及这种方式的行业标准方法是什么。

【问题讨论】:

  • 我认为最重要的是 DRY 代码。从长远来看,使用 Less.app 或类似的东西来更轻松地管理 CSS 会让事情变得更好。
  • 我使用SASS。我再也不会心甘情愿地触碰“普通”的 CSS。它使这些决策“更自然”,并且可以极大地促进布局/维护。
  • @djilumely DRY 代码是什么意思?

标签: css project standards


【解决方案1】:

CSS 框架

对于大型项目,您可能需要在“常规”css 之上的额外功能,例如嵌套、继承和混合。其中任何一个都应该完成工作:

性能优化

此外,您还需要进行自动性能优化(源文件的连接、缩小和压缩),请查看:

或任何适合您的开发平台的东西。

命名

许多大型网站在类名上使用某种前缀来将样式类与脚本类分开。例如:

<div class="navigation dynHomepageNav">(...)</div>

dyn* 类在脚本中用作选择器,而navigation 类用于样式。好处是您可以让编码人员在不涉及设计的情况下重构脚本,而设计人员可以更改模板而不用担心破坏功能。

但是,使用现代 Javascript 框架和 HTML5,您可以做得更好;对 ID 和类使用语义命名,使用这些 ID 和类应用样式,并对所有脚本挂钩使用 data-* 属性。示例:

<section class="navigation" data-hook="homepageNav">(...)</div>

您将使用类标识符设置样式:

.navigation {
  border: 1px dotted #9c9;
  padding: 12px;
}

以及使用数据挂钩的脚本(使用James Padolsey's data selector attribute for jQuery):

$('section:data(hook="homepageNav")').fadeIn();

它可能不像老式的 use-semantic-classes-for-everything 方法那样简洁或看起来那么熟悉,但它会创建样式和行为属性的巧妙分离,一旦你拥有 50.000,你就会欣赏HTML 行,你需要修改设计。

【讨论】:

  • 您在上一个 Naming 部分中提出了一个很好的观点,但是如果您有很多课程在浮动,那么事情可能会变得非常混乱。
  • 另外,我很惊讶你没有在你的 CSS 框架中提到 LESS。
  • @JamWaffles:啊当然,LESS 只是让我忘记了。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-22
  • 2011-03-12
  • 2014-11-02
  • 1970-01-01
相关资源
最近更新 更多