当前位置: 首页 > news >正文

css:`target-before and :target-after 和 scroll-target-group`

:target-before / :target-current / :target-after 与 scroll-target-group 的组合用法。
这些特性目前(截至 2025)在 Chrome Canary、Safari TP 等新版本浏览器中才开始支持

  1. scroll-target-group: auto;

这行代码是新 CSS 的关键:

.nav {
scroll-target-group: auto;
}

它的作用是:

把一组锚点(a[href=“#id”])注册成“滚动目标组”。

换句话说:

浏览器会自动识别这些链接对应的目标(例如 #slide-1 对应 .slide#slide-1)。

当用户滚动时,浏览器会跟踪哪个目标元素是“当前可见的”(in view),哪些在它之前或之后。

这为 :target-before / :target-current / :target-after 提供了数据来源

  1. :target-before / :target-current / :target-after

这三个伪类是新的 “滚动状态选择器”,用来根据滚动位置对链接样式化。

在这个例子中:

a:target-current {background-color: black; /* 当前 slide 的导航点 */
}
a:target-before {background-color: lavender; /* 已经滑过的 slide 导航点 */
}
a:target-after {outline: 1px solid gray; /* 尚未滑到的 slide 导航点 */
}

含义:

:target-before:对应的 section 已经在滚动视图的前面(用户已经滚过)。

:target-current:对应的 section 当前在视口中(或是滚动位置聚焦的目标)。

:target-after:对应的 section 还在后面,尚未滚到。

机制如下:

.slides 是一个横向可滚动容器 (overflow-x: auto; scroll-snap-type: x mandatory;)

每个 .slide 都有一个唯一的 ID,比如 #slide-1

.nav a 链接对应这些 ID

通过 scroll-target-group: auto,浏览器自动把 .nav a 和 .slide 对应起来。

当用户滚动时,浏览器计算出哪个 slide 当前“被选中”,并动态为对应的 添加伪类状态(:target-before, :target-current, :target-after)。

整个过程 无 JS 参与。

See the Pen :target-before and :target-after with scroll-target-group by liu874396180 ( @liu874396180) on CodePen.
http://www.dtcms.com/a/485848.html

相关文章:

  • 项目中执行SQL报错oracle.jdbc.OracleDatabaseException: ORA-00942: 表或视图不存在
  • 上门养老小程序源码 uniapp PHP MySQL
  • 供应链数据分析:Excel+Power BI双引擎打造智能供应链
  • 从零开始部署 GitLab CE 18.4.2:Docker Compose 新手教程
  • 高并发内存池日志
  • 使用PyTorch实现自定义损失函数以FocalLoss为例的详细教程
  • 《彻底理解C语言指针全攻略(4)--数组与指针的关系专题(下)》
  • app模板网站网站的源代码有什么用
  • Vue3的Pinia状态管理库【8】
  • 网站建设后台做网站难
  • 禅城区响应式网站怎么做企业网站推广
  • K8S(九)—— Kubernetes持久化存储深度解析:从Volume到PV/PVC与动态存储
  • 【课堂笔记】概率论-1
  • Java 大视界 -- Java 大数据在智能金融区块链跨境支付与结算中的应用
  • 面试_项目问题_RPC调用异常
  • 金融分析师核心能力构建:从数据解读到战略洞察
  • 【八股笔记】SSM
  • Selenium WebDriver自动化测试(框架篇)--数据驱动测试
  • WUJIE VS QIANKUN 微前端框架选型(一)
  • 中国万网域名官网官网优化包括什么内容
  • MySQL相关知识总结
  • 实战GPT-5:用“XML三明治”和“完美循环”重构你的提示
  • 德阳网站网站建设网页设计课程心得体会500字
  • 鸿蒙Harmony实战开发教学Day1-IDE新版本安装篇
  • K8s学习笔记(十九) K8s资源限制
  • claude-sonnet-4-5,IDE中集成,白嫖Claude Code代理,AnyRouter公益站
  • 【SSRF漏洞】Server-Side Request Forgery 服务器端请求伪造
  • 【国内电子数据取证厂商龙信科技】手机在纯净模式下如何安装客户端软件
  • Flink 算子性能优化深度解析
  • Flink受管状态自定义序列化的可演进设计与未来趋势