Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 轨道&x2B;指南针:相对于使用haml和x2B的优势;直接绘制蓝图_Ruby On Rails_Css_Haml_Sass_Compass Sass - Fatal编程技术网

Ruby on rails 轨道&x2B;指南针:相对于使用haml和x2B的优势;直接绘制蓝图

Ruby on rails 轨道&x2B;指南针:相对于使用haml和x2B的优势;直接绘制蓝图,ruby-on-rails,css,haml,sass,compass-sass,Ruby On Rails,Css,Haml,Sass,Compass Sass,我有一些在rails项目中使用haml(+sass)的经验。我最近开始在blueprintcss中使用它们——我所做的唯一一件事就是将blueprint.css转换为sass文件,并从中开始编码。我甚至有一个默认包含所有这些的 似乎这就是我所做的,还有其他的事情。我试图理解其他的东西是什么——但是文档/教程不是很清楚 以下是我的结论: Compass附带了内置的sass mixin,它实现了常见的CSS习惯用法,例如带有图标或水平列表的链接。我的解决方案没有提供类似的东西。(罗盘为1点) Co

我有一些在rails项目中使用haml(+sass)的经验。我最近开始在blueprintcss中使用它们——我所做的唯一一件事就是将blueprint.css转换为sass文件,并从中开始编码。我甚至有一个默认包含所有这些的

似乎这就是我所做的,还有其他的事情。我试图理解其他的东西是什么——但是文档/教程不是很清楚

以下是我的结论:

  • Compass附带了内置的sass mixin,它实现了常见的CSS习惯用法,例如带有图标或水平列表的链接。我的解决方案没有提供类似的东西。(罗盘为1点)
  • Compass有几个命令行选项:您可以创建rails项目,但也可以在现有rails项目上“安装”它。我想,rails生成器也可以进行个性化处理,以完成同样的任务。(平局)
  • Compass有两种使用blueprint的模式:“基本”和“语义”用法。我不清楚它们之间的区别。我的rails生成器只有一种模式,但似乎已经足够了。(平局)
  • 显然,除了blueprint(例如YUI),Compass还准备使用其他框架。我找不到太多关于这个的文档,而且我对它也不感兴趣——蓝图对我来说没问题(Tie)
  • Compass的学习曲线似乎有点僵硬,文档也显得稀疏。学习可能有点困难。另一方面,我知道我自己系统的细节,可以马上使用它。(我的系统得1分)
有了这个分析,我不敢尝试指南针


我的分析正确吗?“语义模式”指的是使用比css框架附带的更多语义类名的可能性:。article vs.grid_1。我个人认为这是一个巨大的+。

Compass对我来说也是一个很好的解决方案,但在一个项目上试用后,我并没有真正看到使用它对我有什么好处。和你一样,我对blueprint很满意,我认为没有必要在haml/sass上再添加一层


我最终从那个项目中剥离了指南针,只使用了blueprint CSS文件的sass版本,然后从那里开始。我将任何自定义/附加样式存储在单独的sass文件中,仅此而已。如果您只想保持简单,就不需要compass或类似的东西。

我不确定这些资源是否最近才出现,但您是否看到了和(我认为这两个都有很好的文档记录)-它们确实大大加快了我的界面构建速度

另一个伟大的资源是


就我个人而言,我喜欢将这些实用程序Sass文件从rubygem中复制出来,并手动将它们包含在我的项目的Sass文件中,因为引用存储在项目之外的Sass感觉非常奇怪。

理想的目标是将样式和内容分离:并非总是100%可行,但使用语义标记可以很好地实现这一点。Blueprint和其他CSS框架在这方面完全失败

Compass背后的最初想法是避免Blueprint生成的可视标记污染HTML:如果您正在标记中编写
class=“column-4”
,那么您最好将
style=“width:160px”
放在其中。从语义上讲,它的意思是一样的,重复的次数也是一样的

Compass将Blueprint类(如
.column-4
)转换为mixin,您可以将其应用于有意义的选择器:

#sidebar
  +column(4)
这样,您只需要在样式表中维护它,而不需要跨许多模板和HTML文件进行维护

Compass具有项目意识。它可以编译整个样式表树,甚至在运行
compass-watch
时自动保存

compass提供了一些非常有用的功能,例如:

image\u url是一个可配置的功能,可以处理相对或绝对路径,甚至可以在需要时设置旋转资产主机

CSS3模块负责圆角、阴影等所有特定于浏览器的样式规则

通用实用程序为您一直在做的事情提供帮助,但重复次数较少(尤其是跨浏览器问题)。以下是我经常使用的一些基本方法:

  • +clearfix+pie clearfix(跨浏览器清除方法)
  • +float确保您不会忘记在它前面显示:用于IE。。。(如果是时候放弃旧有的旧习惯了,那只是一个简单的改变。)
  • +替换文本隐藏文本并定位图像替换背景
  • +悬停链接将:悬停下划线规则添加到基本链接样式中
你可以在新网站上查看这些


然后,除了内置的蓝图之外,Compass还为许多其他样式的框架提供了工具。例如,请检查一下,这是一个Sass本机布局框架,而不仅仅是一个CSS端口。它专注于灵活和流动的网格。

感谢您的洞察力。我想我会跟随你的脚步,暂时把它放在幕后。一旦他们有了更好的文档/示例,可能会再次尝试使用它。我认为这个答案忽略了使用指南针的全部意义-(查看compass CSS3模块,它非常棒。它有很多现成的解决方案用于跨浏览器网站的编码。这就是我使用它的原因。谢谢解释。有趣的是,我自己无法从网站的文档中推断出来。老实说,我的布局上只有6或7个div,其中有演示类。当然可以如果我可以说“article_body”而不是“span-5 prepend-1”,那就更好了,但是……它不是