首页 > web前端 > css教程 > 现在有太多CSS吗?

现在有太多CSS吗?

William Shakespeare
发布: 2025-03-10 12:17:09
原创
161 人浏览过

Is There Too Much CSS Now?

前端开发者多年来一直渴望许多功能——CSS 中的居中方法、样式封装、元素纵横比设置、更精细的色彩控制、基于子元素属性选择元素、管理特异性层级、使元素响应父元素宽度……等等不一而足。

如今,我们如愿以偿,甚至得到了更多,但一些人开始质疑——我们现在是不是拥有 太多 CSS 了?

曾经的黑暗时代

如果你像我一样,在 CSS 发展的初期就参与了 Web 开发,那么拥有太多 CSS 的想法似乎很荒谬。

在过去,前端开发者的工作几乎完全围绕着 CSS 的局限性。例如使用 clearfix hack 来清除浮动,使用 100% padding hack 来创建正方形 div,更不用说随机应用不相关的属性来欺骗 Internet Explorer 执行你的命令了。

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

CSS 的新时代

但如今情况大不相同:不仅发展速度快得多,浏览器厂商也 真正关心 开发者的感受!我知道,我一开始也不相信。但我每年都会进行 CSS 现状开发者调查(顺便说一下,现在正在进行中——快去参与吧!),我知道浏览器开发团队会使用调查结果(以及许多其他数据点)来确定他们的路线图。

除此之外,Google 还资助了我的调查工作,甚至聘请 Lea Verou 负责选择今年的调查问题。

不仅仅是 Google。抨击 Safari 和 Apple(有时是应该的)已经成为一种时尚,但你不能否认 Jen Simmons 对于倾听开发者意见和改进 Web 的热情。

浏览器厂商不仅在自行改进 CSS;他们还在通过 Interop 2023 等倡议跨越竞争界限进行合作,以帮助减少浏览器之间的不一致性和不兼容性。

好东西太多?

所有这些的结果是,我们现在面临着 CSS 资源过剩的问题,难以跟上进度。CSS Grid 在主要浏览器中获得支持已近五年,但我每次使用它时仍然需要查阅参考文档。虽然 subgrid 看起来很酷,但我还没有尝试过。

在选择哪些 CSS 功能包含在 CSS 现状调查中时,Lea 和我考虑了许多功能,但也拒绝了一些。我们 没有 包含的一些功能示例包括:

  • linear() 缓动函数,它允许你更精细地定义缓动曲线。
  • env() 函数,它允许你使用浏览器或设备定义的变量。
  • scrollbar-width 属性,它有助于控制滚动条的外观。
  • margin-trim 属性,它允许你控制容器子元素的边距行为。

这些都可能非常有用,并且在过去 CSS 短缺的年代都会成为重大新闻。但在今天的背景下,它们必须与更大的公告(如 has() 选择器或 CSS 嵌套!)竞争关注度。

缺乏兴奋

正如 Silvestar Bistrović 所写,他对所有这些新的 CSS 功能“并不那么兴奋”。Sara Soueidan 在 Twitter 上回应说,她关心的是“实用性,而不是某个功能目前看起来有多炫”。

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

另一个意外(或者可能是故意的?)后果是,CSS 越复杂,任何想要开发浏览器引擎的新公司面临的门槛就越高——更不用说维护和记录所有这些新功能带来的额外工作量了。

CSS 的过度扩展

还有一种非常合理的担忧,即 CSS 可能正在扩展到它不太适合处理的领域。Sara Soueidan 在对新的 CSS 切换实验性实现做出反应时也指出了这一点(这是一个讨论它的工单):

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

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

新的期望

也许这才是需要改变的地方:也许我们应该放弃 CSS 开发者必须了解 所有 CSS 的期望?

这种期望源于 CSS 曾被视为事后考虑的时代,那是一种你必须学习的令人讨厌的语法,以便根据客户的要求使你的按钮变为蓝色并加粗。但我认为我们需要接受,今天的 CSS 对于一个人来说可能过于庞大而无法掌握,尤其是在其他前端任务之外。

正如 Michelle Barker 所说:

这就是我最终的结论。我已经接受了这样一个事实:我可能永远不会使用——甚至不知道——所有可能的 CSS 功能。而这还是来自 进行关于 CSS 调查的人

但这些新功能肯定对 某些人 有用。有人会写关于它们的博客文章,用它们创建酷炫的 CodePen,并就它们发表演讲。这个人将是一位很酷、年轻、精力充沛的开发者,仍然留着全部头发。换句话说,不会是我——这很好。

也许你担心这位新开发者会因为一下子要学习太多东西而不知所措。但请记住,他们 不必 学习的东西,正是因为这些更新的替代方案而被取代了。我知道我随时都会接受这个交易。

但想想看:在过去几年中,我们不仅看到了需要适应的设备数量大幅增加,我们还开始认识到,我们每个人都以略微不同的方式消费网络,这可能是由于残疾、当前环境或仅仅是个人偏好造成的。CSS 不应该适应这种新的现实吗?

现在,我必须承认这一切都让我感到有点怀旧……所以请原谅我,我要去清除几个浮动,仅仅是为了旧时的回忆。

正如我提到的,年度 CSS 现状调查现已开放。无论你是否认为 CSS 太多,这项调查都是让浏览器开发者了解你感受的好方法,所以如果你有 10 分钟时间,请填写它。

以上是现在有太多CSS吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板