Rails + Compass:与直接使用 haml + blueprint 相比的优势

2024-02-09

我有一些在 Rails 项目上使用 haml (+sass) 的经验。我最近开始将它们与 blueprintcss 一起使用 - 我所做的唯一一件事是将 blueprint.css 转换为 sass 文件,并从那里开始编码。我什至有一个轨道发电机 http://github.com/splendeo/splendeo-generators默认情况下包括所有这些。

看起来Compass http://compass-style.org做我所做的事情,以及其他事情。我试图了解其他的东西是什么 - 但文档/教程不是很清楚。

这些是我的结论:

  • 指南针附带内置 sass mixin实现常见的 CSS 习惯用法,例如带有图标或水平列表的链接。我的解决方案不提供类似的东西。 (指南针 1 分)。
  • 指南针有几个命令行选项:您可以创建一个 Rails 项目,但也可以将其“安装”到现有的 Rails 项目上。我猜想,可以对 Rails 生成器进行个性化来完成同样的事情。 (领带)。
  • 指南针有两种模式使用蓝图的方法:“基本”和“语义”用法。我不清楚它们之间的区别。我的轨道生成器只有一种模式,但这似乎足够了。 (领带)
  • 显然,Compass 准备使用其他框架,除了蓝图(例如 YUI)。我找不到太多关于此的文档,而且我对此不感兴趣 - 蓝图对我来说没问题(领带)。
  • Compass 的学习曲线似乎有点僵硬,而且文档似乎也很少。学习可能有点困难。另一方面,我了解自己系统的来龙去脉,并且可以立即使用它。 (我的系统为 1 分)。

有了这个分析,我就犹豫是否要尝试 Compass。

我的分析正确吗?我是否遗漏了任何关键点,或者我是否错误地评估了这些要点?


理想的目标是风格和内容的分离:这并不总是 100% 可能的,但通过使用语义标记可以相当好地完成。 Blueprint 和其他 CSS 框架在这方面完全失败了。

Compass 背后的最初想法是避免 Blueprint 生成的视觉标记污染 HTML:如果您正在编写class="column-4"在你的标记中,那么你不妨把style="width:160px"而是在那里。从语义上讲,它具有相同的含义,并且需要保持相同的重复次数。

Compass 将 Blueprint 类变成这样.column-4放入 mixin 中,您可以将其应用于有意义的选择器:

#sidebar
  +column(4)

这样,您只需在样式表中维护它,而不需要跨多个模板和 HTML 文件。

Compass 具有项目感知能力。它将处理编译整个样式表树,甚至在运行时自动保存compass watch.

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

图片地址是一个可配置的函数,可以处理相对或绝对路径,甚至可以根据需要设置旋转资产主机。

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

一般公用事业为您一直在做的事情提供帮助,但重复次数较少(尤其是跨浏览器问题)。这些是我经常使用的一些基本的:

  • +清除修复 and +pie-clearfix(跨浏览器清除方法)
  • +float确保您不会忘记 IE 前面的 display:inline ...(如果到了放弃旧 IE 的时候,这只是一个单独的更改。)
  • +替换文本隐藏文本并放置图像替换背景。
  • +悬停链接将 :hover 下划线规则添加到基本链接样式

您可以在新版上查看这些内容Compass 文档网站 http://compass-style.org/docs/.

然后,除了内置的蓝图之外,Compass 还为许多其他风格框架提供了工具。请检查一下Susy http://susy.oddbird.net/例如,它是一个 Sass 原生布局框架,而不仅仅是一个 CSS 端口。它专注于灵活和流体网格。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails + Compass:与直接使用 haml + blueprint 相比的优势 的相关文章

  • 设备注册控制器获取零资源的自定义操作

    基本上我想要有两个单独的操作来更改密码和更改电子邮件 而不是只有一个 我已经更新了我的路由以指向继承自 Devise RegistrationsController 的新控制器 我的路线 rb devise for users contro
  • IE8 忽略 td 宽度,适用于 IE7

    有一张表看起来像这样 table width 100 tr td td tr tr td style width 201px td td style width 100 td tr table 在除 IE8 之外的每个浏览器 包括 IE7
  • 如何使用CSS将背景图像放入选择选项标签中

    我有一个从 json 响应接收的国家 地区下拉列表 并且想要在国家 地区名称旁边添加相应的国家 地区国旗图标 也从 json 响应获取图像 我已经尝试了不同的 jQuery 和 bootstrap 插件 但他们所做的是破坏我以前的选择框样式
  • 删除

    好的 我有一个小菜单栏 菜单内的三个元素还有更多的子菜单 但是菜单栏中的元素之间有不必要的间距 而且我创建的子菜单有不必要的背景宽度 我在代码中将其涂成白色以使读者理解 由于这种不必要的宽度 即使鼠标悬停在不可见的宽度上 在本例中为白色 本
  • 如何创建与 ActiveResource 对象的 ActiveRecord 关系?

    假设我正在为一家已经拥有 People 应用程序的出版公司编写一个图书馆应用程序 所以在我的图书馆应用程序中我有 class Person lt ActiveResource Base self site http api people m
  • 数据库分片和 Rails

    在 Rails 中处理分片数据库的最佳方法是什么 分片应该在应用层 活动记录层 数据库驱动层 代理层还是其他层处理 各自的优点和缺点是什么 FiveRuns 有一个名为的 gem数据结构 https github com bpot data
  • 每 2 行后使 html 表格的边框变厚

    我创建了一个包含一些内容的表 其中有 12 行和 2 列 我想显示边框 但每 4 行之后 我想将水平边框设置为比正常情况更粗 怎么做 请在这里帮忙 试试这个选择器 table tr nth of type 4n td border bott
  • 如何从rails控制台将数据添加到数据库

    我有一个User model gt gt u User new gt
  • Rails 3:使用 Simple_form 如何创建一个向specialities#create 发布帖子的表单?

    如何使用 Simple form 创建一个向specialities create 发布帖子的表单 我试过这个
  • 在特定页面上执行 javascript 的正确“Rails”方式

    我试图在特定页面上运行 javascript 而我唯一的解决方案似乎是反模式 我有controller js内部生成的assets javascripts 我在用着gem jquery turbolinks 我的代码类似于以下内容 docu
  • 使用复选框过滤列表

    我有一个电影列表及其评级 在我的页面顶部 我有一个表单 其中提供了一个复选框列表 其中显示了每个可用的评级 G PG 13 等 一旦用户单击复选框并点击提交 我只想显示所选的电影 在我的索引方法中 我有一个名为的实例变量 filtered
  • Sass:@use 出错,未定义变量

    我正在使用 Sass 并且想要使用 use关键字而不是 import 因为 import有很多问题 另外只有dart sass支持这个功能 我将node sass改为dart sass 然而 问题出现了 我原来的代码 import carb
  • 如何在其他div id的悬停中使用div显示块

    如何打开div悬停时标记href tag 这是我在悬停 href 标签上显示 div 标签的代码 Services is id of href tag Services is id of div tag Service hover Serv
  • CSS 继承、别名和其他很酷的东西

    有一天 我随机浏览网页 发现了一些程序 可以让你编写 CSS 别名和其他很酷的东西 我现在不记得了 举个例子 我记得你可以这样做 myclass background color red greenfont 其中 greenfont 在其他
  • 如何使使用 css 调整大小的图像在 IE 中看起来不错?

    当使用 css 宽度 高度或属性宽度 高度缩放图像时 IE6 和 IE7 无法很好地缩放网页中的图像 我不确定它默认使用哪种算法 但这不好 在这些浏览器中缩放时 缩放图像会显示锯齿伪影 幸运的是 有一种方法可以通过简单的 css 规则强制
  • 如何在服务调用后检查 rspec 中的数组更改?

    目标很简单 例如我们有一个数组 name ghost state rejected name donkey state rejected 运行服务调用后UpdateAllUsers 这会将所有用户更改为 accepted name ghos
  • 使用 CSS 的响应式图像

    我发现调整图像大小以使其具有响应能力很棘手 我正在开发一个 php 应用程序来自动将网站转换为响应式版本 我有点被图像困住了 我已经成功地为网站上的每个图像添加了一个包装类 并且可以很好地调整图像的大小 我的问题在于自然小于窗口的图像 例如
  • 主页(网格)上的缩略图现在显得模糊。如何纠正?

    我不知道这看起来是否愚蠢 但从早上开始我就无法纠正这个突然出现在我的博客网站上的错误www candidopinions in http www candidopinions in 我有一个网格视图模板 其中博客文章中的特色图像作为调整大小
  • Rails 3.1 和图像资源

    我已将管理主题的所有图像放入名为 admin 的文件夹内的资产文件夹中 然后我像平常一样链接到它 Ruby image tag admin file jpg CSS logo background url assets images adm
  • 为什么 Rails 中的区域设置充当全局(使用 Thin 时)?

    我刚刚意识到在控制器中设置区域设置的推荐 Rails 方法 before filter set locale def set locale I18n locale params locale I18n default locale end

随机推荐

  • Google Drive API 与 iOS 使用应用程序服务帐户

    我正在致力于实现一个 iOS 应用程序 该应用程序将从 Google Drive 文档中提取内容 该文档对于每个客户来说都是相同的 并且与用户的 Google 帐户完全分开 我按照教程观看了有关如何将 SDK 用于 Xcode 项目的视频
  • 在 C# 中检查字符串是否仅包含数字的最快方法

    我知道如何检查字符串是否仅包含数字的几种方法 RegEx int parse tryparse 循环等 谁能告诉我什么fastest检查方法是 我只需要CHECK值 无需实际解析它 我所说的 数字 特指 ASCII 数字 0 1 2 3 4
  • Magento - 使用更新 XML 删除块

    如何使用布局 xml 文件删除已存在的块 具体来说 我想从名为 top switches 的块中删除名为 currency 的块 它被插入到directory xml 文件中 如下所示
  • 使用 LINQ,如何从列表中查找具有给定属性值的对象?

    我有一堂课叫Questions This Questions有属性QuestionID and QuestionAnswer 迭代此过程时List of Question在 foreach 中 我必须找到 QuestionID 12 如果我
  • Sqlite C++ 中的预准备语句如何工作

    我不知道如何在我的 Sqlite3 代码中实现准备好的语句 include
  • C# pinvoke 封送联合

    我在将 C Union 转换为 C 时遇到一些问题 这是联盟的定义 union Info char varChar 8 short varShort 4 int varInteger 2 float varFloat 2 double va
  • 无法在 Kivy 中查看 tiff 图像

    problem 我可以使用以下命令加载图片Image kivy 中的模块 但由于某种原因 我无法将 tif 文件加载到 kivy 中 当图像源为 pics lugia png 图像加载得很好 但如果来源是 pics snorlax tif
  • java 字段变化监听器

    所以我真的想要某种方法来检测某个对象的场变化 我用谷歌搜索了很长一段时间但没有找到任何东西 所以基本上我需要知道的是对象的某些变量何时发生变化 让我们以这个类为例 public class Example String text test
  • GWT 开发者模式代码服务器

    GWT 开发人员模式嵌入式 http 服务器对我来说很有意义 但我承认我不明白 代码服务器 是什么 让我印象深刻的是 一个 html 文件包含了浏览器在开发过程中使用处理 AJAX 的嵌入式 Jetty 服务器呈现 GWT 应用程序所需的所
  • 在 AngularJS 中使用 ng-repeat 过滤结果 6 到 10(共 100 个)

    我看到limitTo文档中的过滤器 这允许我限制前 5 个或后 5 个结果 但我想设置限制的开始位置 以便我可以显示第二组 5 个结果 有内置过滤器吗 从 Angular 1 4 0 开始 limitTo filter https docs
  • 如何修改子字符串?

    使用排序规则xxx german2 ci它治疗 and ue相同 是否有可能出现所有M nchen突出显示如下 输入示例 M nchen can also be written as Muenchen 输出示例 b M nchen b ca
  • Git - 递归删除文件扩展名

    我试图递归地删除文件扩展名 但无论我尝试什么 它都会失败 谢谢你的任何想法 ubuntu ubuntu laptop hh hh sdk src uboot hh git rm r cached o fatal pathspec src u
  • DirectShow 与 Media Foundation 进行视频捕捉?

    我正在尝试在视频捕获 监控 流媒体应用程序的这两个 API 之间进行选择 但我不确定哪个是最佳选择 一些背景知识 我需要它与各种视频采集卡 适配器一起使用 该应用程序可能会用 C 开发 因此本机 API 至关重要 性能很重要 因为我需要处理
  • 如何检查密码重置令牌是否已过期?

    我正在使用 ASP NET Identity 并且具有基本的忘记密码 重置密码功能 当您填写忘记密码的表单时 它会使用以下命令创建一个重置令牌 userManager GeneratePasswordResetTokenAsync user
  • 为什么 CoreBluetooth 一次又一次地发现相同的外设?

    我已经在 StackOverflow 上查看了类似的问题 但它们都处理由于收到扫描响应数据而对 CBManager 委托的 didDiscover 方法进行第二次调用 我的情况有所不同 我坐在家里的办公桌前 我的应用程序在 iPhone 6
  • 使用 matplotlib 对带有标签的点进行动画处理

    我有一个带有线条的动画 现在我想标记这些点 我试过plt annotate 我尝试过plt text 但标签不动 这是我的示例代码 import numpy as np import matplotlib pyplot as plt imp
  • 如何设置ScrollView内容的大小?

    现在 ScrollView ContentSize 属性是只读的 我该如何设置 ScrollView 内容的大小 在 UIScrollView 中可设置的属性完全相同 但不是 xamarin 形式 我有这个
  • JSON.stringify(response.json()) 和 response.text() 之间的区别

    将响应流转换为 JSON 后 两者是否完全相同 const responseA fetch endpointReturnsJson const textA await responseA text 在平行宇宙里 const response
  • 我们可以在 SVG 模板中渲染 Angular 组件吗?

    看到我们可以将模板文件另存为 svg而不是 html现在我想我可以制作 svg 组件 可以按如下方式使用 main component svg
  • Rails + Compass:与直接使用 haml + blueprint 相比的优势

    我有一些在 Rails 项目上使用 haml sass 的经验 我最近开始将它们与 blueprintcss 一起使用 我所做的唯一一件事是将 blueprint css 转换为 sass 文件 并从那里开始编码 我什至有一个轨道发电机 h