我在rails项目中使用haml(+ sass)有一些经验。我最近开始使用blueprintcss - 我唯一做的就是将blueprint.css转换为sass文件,并从那里开始编码。我甚至有一个rails generator默认包含所有这些。
似乎Compass完成了我的工作以及其他事情。我试图了解其他东西是什么 - 但文档/教程不是很清楚。
这些是我的结论:
通过这种分析,我很想尝试Compass。
我的分析是否正确?我错过了任何关键点,还是我错误地评估了这些要点?
答案 0 :(得分:25)
理想的目标是风格和内容的分离:它并不总是100%可行,但通过使用语义标记可以很好地完成。蓝图和其他CSS框架完全失败了。
Compass背后的最初想法是避免使用Blueprint生成的可视标记来污染HTML:如果您在标记中编写class="column-4"
,那么您也可以将style="width:160px"
放在那里。在语义上它是相同的含义,并且维持相同的重复量。
Compass将像.column-4
这样的Blueprint类转换为mixin,您可以将其应用于有意义的选择器:
#sidebar
+column(4)
这样,您只需要在样式表中维护它,而不是在许多模板和HTML文件中维护它。
指南针是项目感知的。它将处理编译整个样式表树,甚至在运行compass watch
时自动保存。
指南针提供了一些非常有用的功能,例如:
image_url 是一个可配置的功能,可以处理相对或绝对路径,甚至可以根据需要设置旋转资产主机。
CSS3模块负责处理圆角,阴影等所有特定于浏览器的样式规则。
常规实用程序为您一直所做的事情提供帮助,但重复次数较少(特别是对于跨浏览器问题)。这些是我经常使用的一些基本的:
您可以在新docs site for Compass上查看这些内容。
然后,除了内置的蓝图之外,Compass还提供了许多其他样式框架的功能。例如,请查看Susy,这是一个Sass原生布局框架,而不仅仅是一个CSS端口。它专注于柔性和流体网格。
答案 1 :(得分:5)
'语义模式'指的是使用比css框架附带的更多语义类名的可能性:.article vs .grid_1。我个人认为这是一个很大的选择。
答案 2 :(得分:2)
我不确定这些资源最近是否只显示过,但您是否看到了Compass CSS3 helpers和General utilities - (我认为都有详细记录) - 他们真的加快了速度我的界面建立了很多。
另一个很棒的资源是Compass plugins page。
我个人喜欢将这些实用程序Sass文件复制到rubygem中并手动将它们包含在我的项目的Sass文件中,因为它感觉很奇怪,引用了存储在项目之外的Sass。
答案 3 :(得分:0)
指南针看起来对我来说也是一个很好的解决方案,但在尝试了一个项目后,我并没有真正看到使用它的巨大优势。和你一样,我对蓝图很好,我没有看到需要在haml / sass之上添加另一层。
我最终剥离了该项目的指南针,只是使用蓝图CSS文件的sass版本,然后从那里开始。我将任何自定义/附加样式存储在单独的sass文件中,就是这样。如果你只想保持简单,就不需要指南针或类似的东西。