我试图确定在启动新的Rails 3.1项目时是否应包括Compass。我以前没用过指南针。
Rails 3.1现在直接支持SCSS。Rails 3.1资产管道(通过链轮)现在可以自动编译样式表。而且我可以直接使用CSS框架的SCSS版本,例如Blueprint。
将Compass与Rails 3.1结合使用可以带来什么好处?
我试图确定在启动新的Rails 3.1项目时是否应包括Compass。我以前没用过指南针。
Rails 3.1现在直接支持SCSS。Rails 3.1资产管道(通过链轮)现在可以自动编译样式表。而且我可以直接使用CSS框架的SCSS版本,例如Blueprint。
将Compass与Rails 3.1结合使用可以带来什么好处?
该html5boilerplate指南针插件是一个伟大的节省时间太多,所以基于这些原因,我会用指南针
Bourbon(Thoughtbot的产品)是指南针的轻巧替代品,可与3.1导轨很好地集成在一起。
它具有指南针提供的主要css3 mixins(背景图像,框阴影,边框半径,渐变...)。它还具有帮助按钮样式,“布局化”布局的助手以及其他一些功能。
您可能会错过罗盘所具有的一些强大功能,但是可以用sass的强大功能轻松克服:仅复制/创建您自己的mixin!
升级我的Rails应用程序时,指南针经常让我头疼。我很欣赏波旁威士忌的简单性(尽管它也可能使您头痛…………)
Compass是一个与设计无关的框架-例如,您不必担心用户拥有哪些浏览器。
例如Compass具有附加组件,例如CSS3跨浏览器功能:http : //compass-style.org/reference/compass/css3/ 这样,您可以在.scss文件中指定与浏览器无关的内容
边注:
Rails 3.1处理.scss文件的方式一次只能一次-例如,如果您在一个文件中定义变量,则它们不会被传递到其他.scss文件中。恕我直言,这并不是真正的最佳解决方案。
Compass提供了很多很好的mixin,强大的sprite生成器以及与Blueprint的紧密集成,这意味着您不必
col
在HTML上都使用非语义类。如果您不使用mixins,那么使用Compass并没有太大的好处,但是如果您不使用它们,那么再次使用SCSS并没有太大的好处(嵌套和变量很好,但是mixins有助于保持特定于浏览器的状态在单个位置执行属性)。
但是,我发现蓝图比它的价值更麻烦。我仍然会使用Compass作为mixins,但是现在Rails 3.1和Compass之间的兼容性非常糟糕(您必须跳过一些麻烦而仍然牺牲一些功能)。
在有点相关的注释中,Rails 3.1编译资产的方式相当“破损”。它不考虑社区在最近一两年中如何使用Sass,而是将变量,混合和页面部分分开放置,以便按顺序包含在主文件中。Sprockets加载和编译Sass的“自动”方式使文件彼此解除关联,因此,即使您在中手动定义了加载顺序
application.css
,在文件中设置的变量也不可用于后续加载的文件。