CSS 条件表达式,用 @when 还是 @if

User avatar

Happy Fire

CSSWG (CSS 工作组)正在筹划给 CSS 增加一个新的功能:条件表达式。 条件表达式这个想法是采用 CSS 已有的条件结构,比如 @supports和 @media,并允许更通用的条件句组合和增强这些结构。 举个例子:

@supports (display: grid) {
	@media (min-width: 33em) {
		…
	}
}

上面这段 CSS 代码会变成下面这样:

@conditional supports(display: grid) and media(min-width: 33em) {
	…
}

或者是这样:

@conditional supports(display: grid) and media(min-width: 33em) {
	…
} @otherwise {
	…
}

但是,问题是没有人愿意用 @conditional 和 @otherwise, 这两个关键字,因为太长了。

于是工作组准备寻找一个更短的关键字,现在有两个候选人: ● @when 和 @else ● @if 和 @else

那么到底是用 when 还是用 if ?目前看起来用 if 的呼声更高一些,因为 if 这个单词更加合理一些,而且只要你有其他编程语言的基础,你就对 if 很熟悉。

那么为什么不定下来就用 if 呢?因为 SCSS 已经用了 if 这个关键字。如果 CSS 也采用了 if, 那么 SCSS 就得能分清到底是 SCSS 的 if, 还是 CSS 的 if。

鉴于 SCSS 的用户和项目有很多,如果采用了 if, 可能这些人就不满意了。

但是如果用 when , 就和现在其他编程语言的关键字不一样,也会造成初学者的抵抗。但是也有人认为,任何一个语言都有自己的“怪癖“,为了和现有的工具(SCSS)产生冲突,这种牺牲是值得的。

各有各的理由,最终会采用哪个,我们就静静的等待吧!

原文:https://meyerweb.com/eric/thoughts/2022/03/14/if-or-when/?utm_source=pocket_mylist


🙏MU5735🙏

#程序员
  • Loading comments...