2

我刚刚下载了 Twitter Bootstrap 来看看 LESS 的实现。我的第一印象是 LESS 似乎是编写 CSS 的好东西,但它破坏了基于浏览器渲染进行快速编辑的能力。

假设我收到了一个我以前从未遇到过的实时站点,它是由其他人构建的,与他们经常记录的一样糟糕,并被要求更改某些元素的属性。该网站有 2000 行 CSS,我最不想做的就是让自己熟悉其中的大部分内容。

传统 CSS,在浏览器窗口中:检查元素:匹配的 CSS 规则:styles.css:1145。在选择的文本编辑器中打开 styles.css 到第 1145 行,进行更改、测试、完成。

LESS,在浏览器窗口中:从 CSS 文件中返回匹配的 CSS 规则,该文件由(在 Bootstrap 中)42 个不同的 LESS 文件的任意组合编译而成。编译后的 CSS 文件中没有任何迹象表明哪个组件 LESS 文件源自该属性。继续在 42 个不同的 LESS 文件中搜索进行更改的适当位置。

因此,当你有时间/熟悉一个项目来从头开始理解它时,LESS 似乎真的很棒——这样你就知道哪个变量声明了在 mixin 中调用的颜色以产生进一步给出的边框类声明中的属性——但如果你是一个不幸的开发人员,他有十分钟的时间从别人的代码中弄清楚如何(更具体地说,是在哪里)更改所有边框上的颜色,则不是那么好。

难道我都搞错了吗?是 LESS 打破了懒惰、快乐的浏览器端快速修复策略,还是有一些我还没有想出的方法来保留快速而肮脏的工作流程?

4

1 回答 1

1

LESS 使用 Node.js 和 Rhino 在客户端(Chrome、Safari、Firefox)和服务器端运行。( http://lesscss.org/ )。所以是的,您也可以在客户端使用它。只要确保你链接你的less样式表rel="stylesheet/less并记住添加less.js到你的HTML中以从less源生成CSS。

一个缺点是像 Firebug 这样的开发人员工具没有对 less 的原生支持。这与 CoffeeScript 的问题相同,目前浏览器中的调试工具非常差。我很确定调试器会发展以支持其他 JS 语言,我不会惊讶地看到类似的样式表语言发生了类似的事情。但是,当这些工具成为主流时,我不会屏住呼吸。

我同意你的想法,虽然 LESS 可能是核心 CSS 开发的好主意,但它也给你的开发堆栈增加了一层复杂性。这样做可能并非在所有情况下都是合理的。

于 2012-06-19T21:35:11.560 回答