为CSS正名
摘要
本文讨论了CSS作为编程语言所面临的历史和文化偏见,强调了其演变、能力以及与其他网络技术相比所受到的不公正待遇。
为最女性化的编程语言辩护。
查看缓存全文
缓存时间: 2026/09/21 14:56
# 为CSS正名
来源:https://www.wired.com/story/justice-for-css/
CSS中的第一个S代表“样式”(style)。它涉及色彩与字体、边框与阴影、行与列、动画与过渡效果。这种让网站变得美观(或往往相当丑陋)的编程语言,正是让当前这个网页呈现其风貌——展现WIRED独特风格——的关键所在。
读到此处,某些读者或许已对我的描述感到不适。“它是一种样式表语言,”我能听见他们如此反驳,“不是编程语言。”(第二个S确实代表“样式表”,而C若有人在意的话,则代表“层叠”。)或者,“它是领域特定语言,而非通用语言。”还有,“它不具备执行能力”,当然,“它不是图灵完备的”(尽管... [https://notlaura.com/is-css-turing-complete/](https://notlaura.com/is-css-turing-complete/))。诚然,CSS有些与众不同。它没有编译步骤,也不会像其他语言那样在运行时抛出错误。但这一切都偏离了重点。
关于CSS是否属于“真正”编程语言的守门现象,部分源于它极低的入门门槛——任何人都能立即理解“background: red”的含义。但正如程序员作家杰里米·基思(Jeremy Keith)所观察到的([https://adactio.com/journal/12571](https://adactio.com/journal/12571)),“简单”不等于“容易”,而将CSS称为简单或不严肃的观点早已过时。1996年初始CSS规范中仅有约50个属性(如“color”和“font-size”);如今这个数字至少增长了十倍(准备好见识“hanging-punctuation”吧)。这门语言在三十年间发生了翻天覆地的变化,如今已变得无比强大。最近一位程序员仅用CSS就复刻了《毁灭战士》([https://cssdoom.wtf/](https://cssdoom.wtf/))。其他人则用它构建了全息宝可梦卡牌([https://poke-holo.simey.me/](https://poke-holo.simey.me/))和3D渲染引擎([https://polycss.com/gallery/](https://polycss.com/gallery/))。卡西迪·威廉姆斯(Cassidy Williams)在今年首届March MadCSS锦标赛([https://madcss.com/](https://madcss.com/))中,完全使用CSS构建了一个实验性数据库查询引擎。当她在微软Build大会上演示时,连那些资深程序员出身的主持人都不忘贬低CSS:“你是喜欢CSS的人之一,”他们讥讽道,“你可能是唯一一个。”
为何JavaScript诞生的传说如此著名(布兰登·艾克、网景公司、十天时间),而CSS创造者哈康·维姆·李(Håkon Wium Lie)的名字却几乎无人知晓?这或许与李是名字带变音符号的挪威人有关,既不像艾克那样是硅谷的美国人,也不像发明HTML的蒂姆·伯纳斯-李([https://www.wired.com/2017/04/tim-berners-lee-inventor-web-plots-radical-overhaul-creation/](https://www.wired.com/2017/04/tim-berners-lee-inventor-web-plots-radical-overhaul-creation/))是英国人。平心而论,JavaScript([https://www.wired.com/story/javascript-runs-the-world-maybe-literally/](https://www.wired.com/story/javascript-runs-the-world-maybe-literally/))和HTML([https://www.wired.com/story/html-is-actually-a-programming-language-fight-me/](https://www.wired.com/story/html-is-actually-a-programming-language-fight-me/))各自都有需要在意的“偏见”。但在浏览器神圣的JavaScript-HTML-CSS三元体系中,人们往往视CSS为次等或纯粹装饰性的存在。样式设计*可以*是装饰性的——且极其美妙——但它赋予的可读性与丰富设计至关重要。人们在乎事物的外观!
对于CSS所受的轻视,还有另一个更丑陋的解释:它被视为“女性化”的语言。CSS开发者从事前端工作——即网站中用户可见的部分。这隐含着“处理样式与美感属于女性工作”的潜台词,以及“CSS开发者是样式表里的怪胎”这种老生常谈的笑话。一门语言被重视的程度,直接影响程序员薪资水平、求职面试中考察的技能类型,以及残障人士访问网站的便利程度。
最近我与一位才华横溢的后端工程师朋友谈及此事。她在大学期间曾在旧金山一家知名软件公司实习,从事纯后端开发。“我从未表达过对前端的任何兴趣,几乎到了极端的程度,”她告诉我,“我不喜欢前端。”然而,当她毕业后正式入职时,却立即被分配到...前端岗位。她最终设法回归后端,如今已习惯这种质疑。“我经历过无数次与典型男性工程师的对话,他们直到与我共事六个月、看到我的第一个后端项目,才相信我的专业能力。”
当我最初询问这位朋友是否曾被人假设为“CSS女孩”时,并不知道这个具体故事。但这种“巧合”实则更像一种常态。为了纠正这类情况,她开始将自己明确定位为纯粹的后端工程师。我们共事时,每当分配团队任务,她总会明确表示*不愿*接触前端。(虽然我们没玩过“指鼻子”的游戏,但精神内核相似。)若我像她经理那样犯同样的错误,那就太迟钝了。
这位朋友曾在Kode With Klossy([https://www.kodewithklossy.com/](https://www.kodewithklossy.com/))执教,这是一个由超模卡莉·克劳斯(Karlie Kloss)创立、面向年轻女性及性别扩展学生的科技训练营。她的经历展现了积极的一面:CSS可以成为那些不符合“电脑宅男”刻板印象者进入软件领域的入口。“那些女孩原本对编程毫无兴趣,只是觉得卡莉·克劳斯很酷,但她们玩得非常开心,”她说道,“她们逐渐开始关心:这个原理是如何运作的?”
行业内,Klossy的理念体现在前端工程岗位(相比后端及纯后端岗位)稍好(但仍很糟糕)的性别多样性上。去年CSS状况调查的数千名受访者中,11%为女性,3%为非二元性别或性别非常规者。虽然可悲,但JavaScript状况报告仅显示6%女性和1%非二元性别。
CSS被忽视的另一个后果是互联网网站的同质化,尤其在创业圈。如果说CSS让网站呈现独特风貌,那么近期框架(frameworks)的“快时尚”则让它们千篇一律。从Bootstrap时代到Tailwind风格,再到如今独特的“Claude风”审美。框架就像运动休闲装,若你不追求时尚,它们能让你快速“看起来不错”。这无可厚非,但这确实让我沮丧,就像美国汽车颜色单调化对比旧时彩色停车场照片那样令人失落。
WIRED是最早采用CSS的主要高流量网站之一。“为您的双眼打造的网站([https://www.wired.com/2002/10/wired-news-a-site-for-your-eyes/](https://www.wired.com/2002/10/wired-news-a-site-for-your-eyes/))”——WIRED当年如此宣称,事实也的确如此。但当时既没有Flexbox也没有Grid,没有自定义属性,也没有@keyframes、过渡和变换这些实现无JavaScript动画的功能。仅在过去十年间,浏览器已支持大量强大的CSS特性,令人目不暇接。我虽非CSS专家,但已越过达克效应(Dunning-Kruger)曲线的自负高峰,进入敬畏与尊重的深谷。我既钟情于“text-wrap: pretty”(防止孤立单词单独成行终结段落)这类精妙功能,也欣赏嵌套声明等广泛改进。近年我们迎来了容器查询、:has()伪类以及oklch()等新色彩空间。CSS支持从右到左的语言(如希伯来语和阿拉伯语)。它通过网页元素位置的插值实现丝滑动画与渐变。如今,随着if()条件语句和@function函数的开发,即使“技术上来说”CSS不是正统编程语言的辩解,也终将画上句号。这已不再是你们母亲时代的CSS。
CSS易于上手却难以精通的特质,正是我如此热爱它的部分原因。它是我们拥有的最接近最终用户编程的语言——即软件应允许任何用户自定义的理念。样式表在这方面类似于电子表格:新手一小时内就能构建实用作品,而专家则能打造出*毁灭战士*那样的神作。
相似文章
CSS 依然很棒
本文赞美了CSS的演进、特性和向后兼容性,强调了它在Web开发中的持续相关性和改进。
CSS历史趣闻
本文探讨了历史上的CSS技巧和怪癖,详述了早期网页开发中使用的浏览器特定利用方法,例如属性解析和文档级别的检测方法。
过时的CSS及其为何需要它
本文回顾了针对Internet Explorer版本的过时CSS技巧,如条件注释和解析器利用,突出了过去开发者如何应对浏览器不一致性。
CSS的未来
Josh W. Comeau 预览了他在 Interop 2027 中投票支持的顶级 CSS 特性,重点介绍了跨浏览器的 Interop 项目如何推动 CSS 函数和 corner-shape 等新 Web 标准的快速采用。
引用Julia Evans
Julia Evans分享了她学会爱上CSS的见解,解释了许多常见的烦恼已经得到解决,CSS的复杂性反映了布局问题的难度。