是否有一种结构化语言以合理的方式声明样式,然后可以将其呈现为特定于浏览器的 css 文件,类似于 GWT 对 Javascript 所做的事情?
理想情况下,它应该是一种支持变量的语言,处理浏览器的怪癖和差异(例如 filter:alpha vs opacity),为常见任务(如居中)提供直观的语法,并为功能较弱的浏览器提供一种表达回退的方法。
Sass,就像在 Haml 和 Sass 中一样,有一些你正在寻找的东西。它有变量、数学和其他好东西。
官方版本是基于 Ruby 的,但也有 PHP 和 Python 等其他语言的版本。
它可能不会做你提到的一切,但值得一试。
GWT 动态生成代码的能力及其强大的“延迟绑定”功能绝对可以应用于样式表并允许 CSS 的构建时优化。
现在,根据样式,“GWT 方式”是包含您需要的所有样式,并通过使用“依赖样式名称”来应用它们。但这肯定会导致在不需要的地方包含无用的 CSS。
我知道至少有一次尝试在构建时优化 CSS。这将涉及将多个单独的样式表合并为一个,并删除所有非必要的空白(缩小)。我认为这也可能允许您使用 deffrred 绑定从根本上“优化”不需要的 CSS(例如:浏览器特定样式)。
(再次)回答我自己的问题:Less似乎是迄今为止最有趣的项目之一。CSS 扩展支持变量、mixin(复杂变量)、嵌套规则和简单算术。
您可能想尝试HSS。
感谢您的意见!Sass 和 HSS 在范围上看起来非常相似:简单和块变量、嵌套块、单行注释。HSS 具有作为 CSS 超集的优势。
StyleInjector 看起来更有野心和有趣。通过利用 GWT 的延迟绑定功能并引入 CSS 语法扩展(如条件),这种方法不仅可以轻松定义特定于浏览器的样式,还可以轻松定义特定于语言环境的样式。还能够直接引用其他 GWT 资源,并通过删除和合并选择器自动最小化样式非常酷。我一定会密切关注这个项目。