写点什么

Sass 3 兼容 CSS3,支持选择器继承

  • 2010-05-25
  • 本文字数:1110 字

    阅读完需:约 4 分钟

当 InfoQ 上一次在网站上发表 Sass 样式表语言访谈的时候,项目维护者 Nathan Weizenbaum 就已经承诺未来的 Sass 将会在当前语法的基础上增加对类 CSS 的括号语法的支持。现在,Haml/Sass 3已经基本完成,预期发布时间是五月十号,其主要特性便是在 Sass 语法上的改变:

毫无疑问第三版的焦点将会集中在 Sass 上。但是我们也会将部分精力放在 Haml 上。不过考虑到兼容性,当前我们肯定会继续使用代码稳定的 2.4 版。

新 Sass 语法叫做 SCSS(Sassy CSS),它是 CSS3 的一个超集

这就是说它 100% 兼容 CSS3:每一个有效的 CSS3 文件也是有效的 SCSS 文件。不仅如此,它还支持我们能够找到的所有扩展,甚至包括一些非标准语法,例如微软的 expression() 函数和 filter 属性。

Sass 使用变量、操作、嵌套选择器(selector)和 Mixin 来增强样式表,这些基本功能在新版本没有任何改变。 Sass 修改后的语法希望能够尽量减少和 CSS 语法的差异,以吸引更多的用户使用。修改语法的另一个好处是可以使得 CSS 工具更容易支持 Sass。 Sass 的旧有语法将会继续存在并且能够为旧版本用户提供良好兼容性。但是,将 SCSS 和 CSS3 强制兼容付出的一个代价就是不得不废弃 Sass 的一些句法特性:变量前缀的“!”号(现在使用的是“$”号)以及赋值时候的“=”号(现在是使用“:”号)。处理引号中用于显示的字符串的语法也改变了。

另外一个 Sass 的新特性是 @extend 指令,这个指令允许一个选择器继承任意选择器的所有样式

设计网页的时候经常会遇到这样的情况:一个类可能除了自己的样式外,还需要其他类的所有样式。处理这种情况最常用的办法是在 HTML 中使用一个泛化的类和一个特化的类。

不幸的是,这就意味着我们不得不一直牢记同时使用(例如).error 和.seriousError。这将会导致沉重的维护负担,诡异的 bug 以及无效样式。

@extend 是通过插入扩展选择器(例如.seriousError)发挥作用的,无论这个扩展选择器(例如.error)在样式表的何处出现。

迄今为止, xCSS 是所有 CSS 编译器中对选择器完全继承特性支持最好的。但是,完全继承中最重要的一块仍然不被 xCSS 支持:.seriousError 只能选择器恰好是.error 的时候才能继承,而选择器是.error.instrusion 或者.admin.error 则无法继承。

Sass 3 同样也支持源文件在 CSS、Sass 和 SCSS 之间相互转换,并且支持将 Sass 2 语法转换为 Sass 3 语法。

Sass::Plugin 是一个在 Sass 文件更改时候自动更新 CSS 文件的工具,在新版本中性能会做出巨大提升。不仅如此,使用–watch 参数,在 sass 命令行中可以启用自动升级功能。

Haml 的改变包括 HTML5 自定义数据属性的生成和多行语法的简化。

查看英文原文: Sass 3 Delivers CSS Compatibility, Selector Inheritance

2010-05-25 20:542298
用户头像

发布了 90 篇内容, 共 38.7 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

有哪些类似于jobleap.cn的职业发展相关平台

Y11

求职 找工作 就业 失业

基于Pytorch Gemotric在昇腾上实现GAT图神经网络

永荣带你玩转昇腾

鸿蒙版《智慧农业APP》通过华为云IoT平台实现软件硬件互联

九九花开

物联网 华为云IoT平台 鸿蒙5.0 HarmonyOS NEXT

重磅预告!《AI融合高等教育白皮书》即将发布,专家集聚解读先行探索,邀您共同见证

ModelWhale

人工智能 AI+学科白皮书 人工智能通识教育 人工智能教育

淘天集团多项最新AI技术成果亮相TongAI大会,三篇论文入选Poster展示

新消费日报

开源鸿蒙智能手表生态暨新品发布:开启穿戴产业新纪元

极客天地

Amoro + Flink CDC 数据融合入湖新体验

Apache Flink

大数据 flink 实时计算 Flink CDC

【FAQ】HarmonyOS SDK 闭源开放能力 —Account Kit(4)

HarmonyOS SDK

harmoyos

信创 CDC 实战 | OGG、Attunity……之后,信创数据库实时同步链路如何构建?(以 GaussDB 数据入仓为例)

tapdata

GaussDB 实时同步 StarRocks 实时数仓 Doris 实时同步 数据同步方案 TapData 数据集成

《算法导论(第4版)》阅读笔记:p134-p155

codists

算法

案例解读:CST如何直接导入弯折后的PCB

思茂信息

cst CST软件 CST Studio Suite

【等保知识】过等保单位如何选择备案地?新政策依据是什么?

行云管家

等保 等级保护 等保测评

国产CPU品牌汇总以及作用简单介绍

行云管家

信创 国产化

HarmonyNEXT手动申请权限以及使用系统控件获取地址坐标的案例(区别)

九九花开

前端 鸿蒙5.0 HarmonyNEXT5.0 鸿蒙地理坐标获取 HarmonyOSNEXT权限申请

网易伏羲亮相YEF2025大会:聚焦AI创新,CCF-网易雷火联合基金二期申报延长

网易伏羲

人机协作 网易伏羲 网易雷火 网易有灵

MCP+A2A协议如何推动AI智能体进化为超级分布式网络

测试人

人工智能 软件测试

webgl技术在3D展示中的应用

北京木奇移动技术有限公司

软件外包公司 webgl技术 3D展示

昇腾910-PyTorch 实现 图神经网络GraphSage

永荣带你玩转昇腾

5月27日截止 | Volcano社区2025夏季LFX Mentorship欢迎你的加入

华为云原生团队

云计算 容器 云原生

StarRocks+Paimon落地阿里日志采集:万亿级实时数据秒级查询

StarRocks

flink OLAP StarRocks paimon Checkpoin

技术平权时代:灯塔低代码平台如何用CRM搭建,托起千万中小企业的星辰大海

中烟创新

零售企业库存管理的下一步发展需要打破孤岛

第七在线

【华为云MySQL技术专栏】TaurusDB存算分离,SAL组件的妙用

华为云开发者联盟

利用生成式 AI 加速应用程序 Operational Readiness Review(ORR)流程

亚马逊云科技 (Amazon Web Services)

Taro on Harmony C-API 版本正式开源

京东零售技术

关于OT & IIOT系统远程访问的零信任安全

权说安全

数据安全;工业互联网 零信任

2025深圳搞钱地图:按这张图找工作,房租少付1/3,工资多拿50%

测试人

人工智能 软件测试 内推

【HarmonyOS 5】多目标产物构建实践

深海的鲸同学 luvi

鸿蒙 HarmonyOS DevEco Studio HarmonyOS SDK应用服务

Sass 3兼容CSS3,支持选择器继承_Ruby_Paul Blair_InfoQ精选文章