现在CSS太多了吗? Plato区块链数据智能。垂直搜索。人工智能。

现在 CSS 太多了吗?

作为前端开发人员,多年来我们一直希望得到很多东西——在 CSS 中将内容居中、封装样式、设置元素的长宽比、对颜色进行更细粒度的控制、根据元素选择元素的方法子级属性、管理特殊性层、允许元素响应其父级的宽度……这样的例子不胜枚举。

现在我们已经得到了我们想要的一切,甚至更多,我们中的一些人会问——我们现在有吗? 太多 CSS?

黑暗时代

如果你和我一样,是在 CSS 刚刚起步的时候接触到 Web 开发的,那么拥有太多 CSS 的想法似乎是可笑的。

过去,前端开发人员的整个工作描述实际上就是处理 CSS 的限制。这 清除修复黑客 为了清除浮动, 100% 填充破解 制作方形 div,更不用说半随机地应用不相关的属性来欺骗 Internet Explorer 执行您的命令。

当时,浏览器是一个狡猾的敌人,需要通过纯粹的狡猾和神秘的咒语来击败。如今,完美的属性正在等待您,只需在 MDN 上复制粘贴即可。

CSS的新时代

但如今情况已大不相同:不仅事情发展得更快,而且浏览器供应商也变得更快。 其实关心 让开发者开心!我知道,我也不敢相信。但我每年都会举办 CSS 现状 开发者调查(即 顺便说一句,现在就打开——去拿吧!)并且我知道浏览器开发团队使用调查结果(以及许多其他数据点)来告知他们的路线图。

除此之外,谷歌还资助了我的调查工作,甚至聘请了 莱维鲁 牵头选定今年的调查问题。

不仅仅是谷歌。总体来说,抨击 Safari 和 Apple 已成为一种时尚(有时是理所当然的),但你不能否认有人有多么热情 詹·西蒙斯(Jen Simmons) 是关于倾听开发人员的意见并改进网络。

浏览器供应商不仅自己改进 CSS,而且还自行改进 CSS。他们甚至跨战线开展合作,发起诸如 互操作性2023 帮助减少浏览器之间的不一致和不兼容性。

好东西太多了吗?

这一切的结果就是我们现在面临着 CSS 丰富、难以追赶的尴尬。 CSS网格 大约五年前,主流浏览器开始支持它,但我每次使用它时仍然会检查参考。和一样酷 子网格 看来我还没有尝试过。

在选择的过程中 CSS 状态中包含或不包含哪些 CSS 功能,Lea 和我自己考虑了很多功能,但我们也拒绝了相当多的功能。我们的功能的一些示例 没有做 包括:

这些都可能非常有用,并且在过去几年 CSS 干旱期间都会成为大新闻。但在今天的背景下,他们必须通过更大的公告来争取注意力,比如 has() 选择器或 CSS 嵌套!

不兴奋

饰演 Silvestar Bistrović 写入,他“对所有这些新的 CSS 功能并不那么兴奋。”这在推特上得到了回应, 萨拉·索伊丹(Sara Soueidan) 表示她关心的是“实用性,而不是功能目前看起来有多闪亮。”

这似乎是一种消极态度,但我认为这是可以理解的。没有人能够跟上这么多新功能!

另一个意想不到的(或者可能是有意的?)结果是,CSS 变得越复杂,对于任何想要开发浏览器引擎的新公司来说,它的门槛就越高——更不用说在维护和记录所有内容时增加的工作量了。这些新功能。 

CSS 越界

还有一个非常合理的担忧,即 CSS 可能会扩展到它不太适合处理的领域。这是 Sara Soueidan 在对新的 CSS Toggles 实验实现做出反应时指出的另一件事(这是一张讨论它的票):

许多人提出了非常合理的观点,即这种行为最好通过新的 HTML 元素来处理,而不是纯粹通过 CSS 管理切换状态,并且 CSS 可能不是确保正确解决可访问性问题的最佳媒介。 

当 CSS 接管以前通过 JavaScript 处理的某些内容时,这通常被视为一件好事,因为它通常会减少浏览器必须加载的代码量。所以,我对 CSS Toggles 持谨慎乐观的态度,相信 CSS 工作组会妥善解决社区所关心的问题。但也许有一天我们会开始担心 CSS 可能会超出其边界并侵犯 HTML 和 JavaScript 的职责。

新的期望

也许这就是需要改变的地方:也许我们应该放弃 CSS 开发人员必须知道的期望 所有 CSS 的? 

这种期望源于 CSS 是事后才想到的那些日子,你必须学习那种令人讨厌的语法,才能像客户要求的那样使按钮变成蓝色和粗体。但我认为我们需要接受这样一个事实:今天的 CSS 对于一个人来说可能太大而难以掌握,尤其是除了其他前端职责之外。

As 米歇尔·巴克 所说的那样:

这就是我自己最终的落脚点。我已经接受了这样一个事实:我可能永远不会使用(甚至不会了解)所有可能的 CSS 功能。这是来自某人 进行有关 CSS 的调查!

但这些新功能肯定会对 有人。有人会写关于他们的博客文章,与他们一起创建很酷的 CodePens,进行有关他们的演讲。那个人将是一个很酷、年轻、精力充沛的开发人员,头发还留着。换句话说,这不会是我——但这没关系。 

也许您担心这位新开发人员会被他们必须立即学习的所有内容淹没。但请记住他们所做的一切 不会 必须了解,正是因为它已被这些更新的替代品所取代。我知道我随时都会接受这笔交易。

但想一想:在过去的几年里,我们不仅看到我们需要满足的设备数量大幅增加,我们还开始认识到我们使用网络的方式略有不同,无论是由于残疾、当前环境或个人喜好。 CSS 不应该适应这个新的现实吗?

现在,我必须承认这一切让我感到有点怀旧……所以请原谅我清理几个花车,只是为了旧时光。


正如我提到的,每年 CSS 现状调查 现已开放。无论您是否认为 CSS 太多,该调查都是让浏览器开发人员了解您的感受的好方法,因此 去填写一下 如果你有10分钟的话。 

时间戳记:

更多来自 CSS技巧