2026 年前端必须掌握的 4 个 CSS 新特性!

1. 前言

2026 年已经到来,前端技术又迎来了新一轮的革新。

今天,我为你精选了 4 个在 2025 年正式发布、2026 年必须掌握的 CSS 新特性,让你的技术更上一层楼!

2. 兄弟元素定位:sibling-index() 与 sibling-count()

早些时候这些还只是实验性质的功能,现在它们已经在稳定的 Chrome 和 Safari 浏览器中可用了!

记得以前实现列表项交错动画时,要手动给每个元素设置不同的延迟吗?现在,用 sibling-index() 一行代码就能搞定!

css 复制代码
li {
  transition: opacity 0.3s ease;
  transition-delay: calc((sibling-index() - 1) * 100ms);
}

这个函数会自动获取元素在兄弟节点中的位置(从 1 开始计数),通过简单的计算就能实现流畅的交错动画效果

如果再搭配 @starting-style,连入场动画都能轻松搞定:

css 复制代码
li {
  transition: opacity 0.3s ease;
  transition-delay: calc((sibling-index() - 1) * 100ms);

  @starting-style {
    opacity: 0;
  }
}

实现效果如下:

3. 滚动状态查询:@container scroll-state()

现在你可以精确地知道用户正在如何滚动页面。

不仅如此,你还可以查询滚动条的三种状态:粘附、贴靠、可滚动。

首先,给需要监测的容器加上 container-type: scroll-state,然后就可以用 @container scroll-state() 来查询它的状态了。

3.1. 粘附状态:stuck

css 复制代码
/* 当导航栏被"粘住"时 */
@container scroll-state(stuck) {
  .inner-navbar {
    box-shadow: var(--shadow-3);
  }
}

使用效果如下:

3.2. 贴靠状态:snapped

css 复制代码
section {
  overflow: auto hidden;
  scroll-snap-type: x mandatory;

  > article {
    container-type: scroll-state;
    scroll-snap-align: center;

    @supports (container-type: scroll-state) {
      > * {
        transition: opacity 0.5s ease;

        @container not scroll-state(snapped: x) {
          opacity: 0.25;
        }
      }
    }
  }
}

使用效果如下:

3.3. 可滚动状态:scrollable

而且你可以查询滚动方向:

css 复制代码
@container scroll-state(scrollable: top) {
}
@container scroll-state(scrollable: right) {
}
@container scroll-state(scrollable: bottom) {
}
@container scroll-state(scrollable: left) {
}

我们来举一个例子:

css 复制代码
.scroll-container {
  container-type: scroll-state size;
  overflow: auto;

  &::after {
    content: " ";

    background: var(--_shadow-top), var(--_shadow-bottom);
    transition: --_scroll-shadow-color-1-opacity 0.5s ease, --_scroll-shadow-color-2-opacity 0.5s ease;

    @container scroll-state(scrollable: top) {
      --_scroll-shadow-color-1-opacity: var(--_shadow-color-opacity, 25%);
    }

    @container scroll-state(scrollable: bottom) {
      --_scroll-shadow-color-2-opacity: var(--_shadow-color-opacity, 25%);
    }
  }
}

使用效果如下:

你可以发现,在滚动的时候,容器顶部和底部有一层阴影。

4. 文字精准对齐:text-box

text-box 可以精确控制文字的边界框,实现像素级的对齐效果。

Web 字体渲染时会在字形上下方预留"安全间距":

但有时我们需要进行像素级精确对齐,此时就需要使用 text-box:

css 复制代码
h1 {
  text-box: trim-both cap alphabetic;
}

这一行代码就能:

  • trim-both:同时修剪上下方的空白
  • cap:修剪到大写字母高度线以上
  • alphabetic:修剪到字母基线以下

使用效果如下:

5. 类型安全:typed attr()

这是 attr() 函数的升级版,支持类型检查和回退值,在 HTML 和 CSS 之间搭建了强大的桥梁。

5.1. 传递颜色

html 复制代码
<div data-bg="white" data-fg="deeppink"></div>
css 复制代码
.theme {
  background: attr(data-bg color, black); /* 类型:颜色,默认:黑色 */
  color: attr(data-fg color, white);
}

5.2. 传递数字

html 复制代码
<div class="grid" data-columns="3">...</div>
css 复制代码
.grid {
  --_columns: attr(data-columns number, 3);
  grid-template-columns: repeat(var(--_columns), 1fr);
}

5.3. 类型验证(枚举值)

html 复制代码
<li scroll-snap="start"></li>
<li scroll-snap="center"></li>
<li scroll-snap="end"></li>
<li scroll-snap="nothing"></li>
css 复制代码
[scroll-snap] {
  scroll-snap-align: attr(scroll-snap type(start | center | end));
}

type() 函数会验证属性值是否在允许的关键字列表中,无效值会被优雅地回退。

6. 浏览器支持现状

你可能会说:"这些功能就像那些时髦衣服......等我们能用了,它们可能已经过时了 😂"

确实,浏览器兼容性是每一位前端开发者需要关注的问题。

但这些功能其实大多属于渐进增强,我们可以先在支持的浏览器中提供更好的体验,不支持的浏览器回退。

7. 最后

这 4 个 CSS 新特性其实也代表了 CSS 的未来方向:

  1. 更智能的布局控制(sibling-index)
  2. 更精细的交互感知(scroll-state)
  3. 更精准的视觉设计(text-box)
  4. 更强大的 HTML-CSS 桥梁(typed attr)

2026 年,前端开发不再只是"让页面显示出来",而是"让体验完美起来"。

这些工具让我们能够创造出更精致、更智能、更用户友好的网页体验。

我是冴羽,10 年笔耕不辍,专注前端领域,更新了 10+ 系列、300+ 篇原创技术文章,翻译过 Svelte、Solid.js、TypeScript 文档,著有小册《Next.js 开发指南》、《Svelte 开发指南》、《Astro 实战指南》。

欢迎围观我的"网页版朋友圈",关注我的公众号:冴羽(或搜索 yayujs),每天分享前端知识、AI 干货。

相关推荐
hpoenixf1 小时前
2026 年前端面试问什么
前端·面试
还是大剑师兰特1 小时前
Vue3 中的 defineExpose 完全指南
前端·javascript·vue.js
泯泷2 小时前
阶段一:从 0 看懂 JSVMP 架构,先在脑子里搭出一台最小 JSVM
前端·javascript·架构
mengchanmian2 小时前
前端node常用配置
前端
华洛3 小时前
利好打工人,openclaw不是企业提效工具,而是个人助理
前端·javascript·产品经理
xkxnq3 小时前
第六阶段:Vue生态高级整合与优化(第93天)Element Plus进阶:自定义主题(变量覆盖)+ 全局配置与组件按需加载优化
前端·javascript·vue.js
A黄俊辉A4 小时前
vue css中 :global的使用
前端·javascript·vue.js
小码哥_常4 小时前
被EdgeToEdge适配折磨疯了,谁懂!
前端
小码哥_常4 小时前
从Groovy到KTS:Android Gradle脚本的华丽转身
前端
灵感__idea4 小时前
Hello 算法:复杂问题的应对策略
前端·javascript·算法