news 2026/1/13 13:40:15

我发现了人人都在吹的 CSS 神技——然后我的写法彻底变了

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
我发现了人人都在吹的 CSS 神技——然后我的写法彻底变了

我有一支技术全面、经验丰富的小型团队,专注高效交付中等规模外包项目,有需要外包项目的可以联系我

你又花了 45 分钟和垂直对齐死磕。又一次。 标题莫名其妙换成三行,旁边那个却刚好“看起来很舒服”。你试了line-height,试了各种 padding 玄学,还至少嘀咕过两次:“CSS 怎么这么反人类?”

我懂。我也经历过。

但关键在于:CSS 其实已经悄悄变得强得离谱。当你还在用老套路硬扛时,语言本身已经升级了。只是大多数开发者还在用 2015 年的方式写 2025 年的 CSS。

你以为的 CSS vs 真实存在的 CSS

2015 年的 CSS:

/* 暗黑模式 */ :root { --bg: white; } @media (prefers-color-scheme: dark) { :root { --bg: black; } } /* 父元素根据子元素来改样式 */ /* 用 JavaScript */ /* 固定宽高比 */ .container { padding-bottom: 56.25%; /* 数学! */ } /* 动画高度 */ /* 用 max-height 然后祈祷 */

2025 年的 CSS:

/* 暗黑模式 */ background: light-dark(white, black); /* 父元素根据子元素来改样式 */ .card:has(img) { } /* 固定宽高比 */ aspect-ratio: 16/9; /* 动画高度 */ height: auto; /* 是的,真的 */

《State of CSS 2025》刚发布,里面有个很有意思的现象:那些能解决你日常痛点的功能,其实就摆在那儿——只是你没用。不是因为它们不好,而是你根本不知道它们存在。

我带你把这些漏掉的东西捡起来。

人人都在用的那个功能

:has()是目前最常用、也是最受喜爱的 CSS 新特性。

那个从远古时代就被求了无数次的“父选择器”,终于来了。能用。好用。用过的人都很爱。

以前你得写这种东西:

/* 如果 card 里有图片,就给它一个特殊 class */ .card.has-image { }

然后你还得手动加 class——或者用 JavaScript——像在受刑。

有了:has()之后:

/* 任何包含 img 的 card 都自动匹配 */ .card:has(img) { }

一句话。纯 CSS。零 JavaScript。

我是在 6 个月前给客户重建组件库时彻底被震到:我们有 19 种卡片变体,每一种都靠 class 标记“有图 / 有视频 / 空内容”。代码像垃圾场。后来用:has()直接删掉 200 行 JS,换成 6 行 CSS。包体积还少了 18KB。

那一刻我才意识到:我这些年 CSS 写错了。

开发者真心喜欢的 Top 5 功能

调查里最“省命”的几个赢家大概是这些:

1):has():我们一直想要的父选择器

最常用、最受喜爱。不是营销,是大家真的在用。

2)Subgrid:喜爱度第二名

嵌套网格终于能跟父网格对齐了。Subgrid 在“最受喜爱”排名里拿了第二。

旧办法(祈祷对齐):

/* 旧:靠算,靠蒙 */ .child { margin-left: calc(var(--gap) * 2); }

新办法(subgrid):

.child-grid { display: grid; grid-template-columns: subgrid; }
3)aspect-ratio:使用率第二、喜爱度第三

从此告别 padding-bottom 黑魔法。它在使用率是 #2、情绪排名 #3。

.video-container { aspect-ratio: 16 / 9; }
4)text-wrap: pretty:年度增幅最大

使用增长最快的就是它。 ([2025.stateofcss.com][1])

h1 { text-wrap: pretty; }
5)light-dark():认知增长最大

认知度提升最大的就是light-dark()

旧写法:

:root { --text-color: #333; } @media (prefers-color-scheme: dark) { :root { --text-color: #fff; } } .text { color: var(--text-color); }

新写法:

.text { color: light-dark(#333, #fff); }

那些几乎没人用、但你应该知道的东西

  • ::target-text82% 的人甚至没听过,却是“阅读列表”好奇度第一名。 这个伪元素可以在用户分享“文本片段链接”(#:~:text=)时,把被命中的文字高亮做得更友好。

  • sibling-count/sibling-index:使用率垫底(支持度还很新)。 你可以根据兄弟元素数量/位置来写样式,对动态布局很猛。

也有大家不喜欢的东西

  • 三角函数(sin()/cos()/tan())是“最不受喜爱”之一——因为“要算三角”这件事本身就够劝退。

  • Anchor positioning 的“正向期待 vs 实际使用”出现-12% 的落差,可能说明 API 没想象中友好。

开发者真实在痛什么

调查里问的痛点,基本就是我们的日常:

1)布局:Grid 太强,但每次都要 Google 2)排版:垂直对齐还是像没修完的坑(text-box-edge/text-box-trim在路上) 3)颜色:不仅要 light/dark,还要更完整的主题系统,外加对比度难题 4)交互:“高度动画到 auto”曾经是头号难题——好消息:现在“终于可以做到了”。 5)形状:非矩形(多边形、复杂图形)依旧折磨人,很多人还是逃去 SVG 6)数学:calc()的单位混算依旧容易踩雷

旧办法 vs 新办法(示意):

/* 旧:max-height 然后祈祷 */ .accordion { max-height: 0; transition: max-height 0.3s; } .accordion.open { max-height: 500px; }
/* 新:尝试直接过渡到 auto(需要关注新方案/支持情况) */ .accordion { height: 0; transition: height 0.3s; } .accordion.open { height: auto; }

这对你的工作流意味着什么

我读完调查再去实测,得到一个结论:工具都在,我们只是习惯太旧。

现在的 CSS,能用更少代码解决我们以前硬塞给 JS 的问题::has()做条件样式,text-wrap做排版,light-dark()做主题,甚至动画都能更“原生”。

你现在可以做三件事:

1)先用调查里的 Baseline Status 过滤,优先看 “Widely Available”。 2)每个项目只学一个功能 3)先读痛点,再反推“解决方案”

今天就值得学的功能

立刻有收益:

  • :has()

  • text-wrap: balance / pretty

  • aspect-ratio

  • “auto 尺寸动画”的新方案(关注浏览器实现)

下一步:

  • Subgrid

  • light-dark()

更长期:

  • Anchor positioning(现在有点硬,但未来可能会成为基础设施)

  • 新颜色函数(例如oklch()


真正的问题不是 CSS

读完调查后我才意识到:CSS 不是问题,我们的习惯才是。

我们在 2010/2015/2018 学的那套写法太顺手,以至于我们不再质疑它。可 CSS 一直在进化。那个曾经“连 div 都居中不了”的语言,现在已经强到能替你删掉一堆框架级别的补丁代码。

你的下一步很简单: 打开《State of CSS 2025》,挑一个你没用过的功能,玩 15 分钟。 不用全学,一个就够。

因为此刻,某个开发者正在用 6 行现代 CSS 解决你正在用 200 行 JavaScript 硬扛的问题。

全栈AI·探索:涵盖动效、React Hooks、Vue 技巧、LLM 应用、Python 脚本等专栏,案例驱动实战学习,点击二维码了解更多详情。

最后:

CSS终极指南

Vue 设计模式实战指南

20个前端开发者必备的响应式布局

深入React:从基础到最佳实践完整攻略

python 技巧精讲

React Hook 深入浅出

CSS技巧与案例详解

vue2与vue3技巧合集

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/13 0:35:20

手把手教你使用STM32CubeMX配置硬件I2C外设

从零开始玩转STM32硬件I2C:CubeMX配置实战与避坑指南你有没有遇到过这样的场景?接了个温湿度传感器,代码写得飞起,结果HAL_I2C_Mem_Read()一直返回错误;或者系统跑着跑着I2C总线就“死锁”了,MCU再也无法通…

作者头像 李华
网站建设 2026/1/12 22:54:29

终极Patreon下载攻略:10分钟搞定创作者内容备份

终极Patreon下载攻略:10分钟搞定创作者内容备份 【免费下载链接】PatreonDownloader Powerful tool for downloading content posted by creators on patreon.com. Supports content hosted on patreon itself as well as external sites (additional plugins might…

作者头像 李华
网站建设 2025/12/23 0:31:02

LangFlow Prompt模板管理技巧:提高提示词复用率

LangFlow Prompt模板管理技巧:提高提示词复用率 在构建大语言模型(LLM)应用的过程中,开发者常常陷入一个看似简单却极具重复性的困境:每次面对相似任务——比如生成摘要、翻译文本或撰写客服回复——都要重新编写几乎一…

作者头像 李华
网站建设 2025/12/23 0:28:48

【金猿技术展】一种物化视图构建方法——基于智能预计算的实时OLAP查询加速引擎

镜舟科技技术该技术由镜舟科技投递并参与金猿组委会数据猿上海大数据联盟共同推出的《2025大数据产业年度创新技术》榜单/奖项评选。大数据产业创新服务媒体——聚焦数据 改变商业本发明公开了一种高效的物化视图构建方法及数据处理系统,专为解决大规模分布式数据库…

作者头像 李华
网站建设 2026/1/13 13:12:56

抖音无水印下载终极指南:3步搞定高清视频保存

还在为抖音上的精彩视频无法保存而烦恼吗?想要永久收藏那些触动心灵的短视频却总是被水印困扰?douyin_downloader抖音下载器正是为您量身打造的解决方案,这款开源工具能够完美去除抖音视频水印,让您轻松保存高清原画质内容&#x…

作者头像 李华