2023年CSS Day:探讨CSS的持续挑战

发表时间: 2023-06-20 11:16

在HTML迅猛发展的 90 年代,不同的浏览器根据自身的 HTML 语法结构来支持实现不同的样式语言。随着 HTML 的发展,HTML 增加了很多功能,代码也越来越臃肿,HTML 就变得越来越乱。网页也失去了语义化,维护代码很艰难,于是 CSS 宛如救星,就这样诞生了。

然而历经 20 年的发展,有开发者发现,CSS 的特性在不断加码中,也丢失了初心。

链接:https://paulrobertlloyd.com/2023/162/a1/css_day/

未经允许,禁止转载!


作者 | Paul Robert Lloyd 译者 | 弯月
责编 | 夏萌
出品 | CSDN(ID:CSDNnews)

我曾向自己保证今年坚决不参加任何Web大会,然而如今我却坐在这里,写着一篇关于 CSS Day的文章,而两周后我就要在 UX London 2023 上发表演说了。

也许是我的意志太过于薄弱吧,但机会就摆在眼前时,我实在无法说No。希望我不会后悔答应在 UX London 上发表演讲。我从不后悔答应在八年前的 CSS Day 上发言,至少他们还给我发了徽章。

上一次接受他们的邀请是在 2019 年。此后发生了很多事情。

在之前的版本中,我们讨论的重点是 CSS 新提出的特性,或者是如何解决仍然令人痛苦的缺失特性。今年感觉情况完全相反。事实上,在休息期间,我听到有人抱怨现在 CSS 的特性太多了。


特性增多

举个例子,最初的 CSS 规范包含 3 个用于定义长度的相对单位:

  • 像素(px):相对于画布的分辨率。

  • x-height(ex):相对于字母“x”的高度。

  • ems(em):相对于父容器的字体大小。

再加上很少使用的绝对单位(in、cm、mm、pt 和 pc)和百分比,只有几个长度单位需要记住。

而如今,长度有 18 个相对单位(像素被视为绝对度量),增加了六倍。

这些数字表明了一个问题:如今网站的形状、大小和维度千变万化,CSS 需要考虑到这一点。

如此发展的不仅仅是 CSS 的基础知识,不论是新功能还是扩展已有功能,在布局、排版、动画、音频等模块,哪怕精通其中之一,都有可能成为专家。然而,雇主们通常会认为不涉及JavaScript的前端开发可有可无,所以这类专家没有机会得到发展。


Google敞开怀抱

如今开发人员不再需要了解预处理器或其他工具,这部分抵消了 CSS 的特性数量不断增长带来的困难。虽然 Sass 很好地服务于社区,但随着 CSS 慢慢变成一种编程语言,Sass 的日子似乎快到头了。由浏览器承担更多繁重的工作有一定的好处。

然而,我们不免还是会有一种感觉,即负责 CSS 以及其他开放标准实现的群体日渐缩小。

今年的 CSS Day 由 Google 独家赞助。这不仅反映了当前的经济环境,也反映了他们在网络标准领域的绝对主导地位。

虽然欢呼声仍不绝于耳,但我根本不信任 Google。虽然 Chrome 敞开了怀抱,Blink 带来了扩展(或“实验”),但 Google 为了走到今天这一步付出了大量努力,他们甚至利用 AMP 来消灭开放网络。

Una以轻快的节奏简单介绍了 CSS,拉开了大会序幕。多张幻灯片显示了对四种主要浏览器的支持:Chrome、Edge、Firefox 和Safari,但这掩盖了现在只有三种渲染引擎的事实:Blink、Gecko 和 Webkit。庆祝采用率和兼容性很容易,但我们不得不担心实现。

Google的开发者倡导者提到了浏览器多样性的好处,并指出了苹果和 Mozilla 的贡献,但他们不过是一些例外罢了。

虽然 Google 占据主导地位,但 CSS 的发展却非常健康。甚至连 HTML 也参与了进来,使用<selectmenu>、<dialog> 和 popover 实现常见的 UI 模式更容易,因此 Web 的访问性也更好。

不论我们喜欢与否,网络一直在仁慈的独裁者的指导下蓬勃发展,无论是 Tim Berners-Lee、Ian Hickson,还是现在的 Chrome 开发团队。

网络在这些相互竞争之间的持续推拉中不断向前发展,不断宣告死亡,却又永远充满活力。


最后的一点想法


Una在结束演讲时,分享了奥斯卡·王尔德(英国作家)的一句话:

人生只有两种悲剧:一种是得不到想要的,一种是得到了。

如今我也有相同的感受。我一直在提倡接受平台的限制,CSS真的需要三角函数吗?然而,一个人的创意限制是另一个人完全忽略 CSS 的原因。也许这就是为什么 JavaScript 蓬勃发展,而 CSS 却沦为“玩具语言”的原因。

CSS Day 再次成为一个发人深省的活动。但是一次 CSS 会议是不够的。如今这门语言如此广泛和深入,浏览器中的实现从未像现在这样稳定和完整,因此发展社区的机会比比皆是。

另外,社区确实需要蓬勃发展,才能遏制硅谷的巨头。防止他们只注重自己的理论需求,同时也让他们专注于帮助开发人员满足用户需求。无论从哪个角度来看,一个由 Google 支配的网络都是一场真正的悲剧。